diff options
author | kaniini <nenolod@gmail.com> | 2019-06-21 22:28:46 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2019-06-21 22:28:46 +0000 |
commit | 720412bf2471f3528c82ead581e26341360d27db (patch) | |
tree | 2d819d3735c34d636ae540deeb518b4256549d76 /lib | |
parent | 4d69d066c4cf4c7896ee39a1e9ec5667333ca48c (diff) | |
parent | b6af80f769195b5047ee8da07166f022c2e29b0a (diff) | |
download | pleroma-720412bf2471f3528c82ead581e26341360d27db.tar.gz |
Merge branch 'revert-6f5a0cc1' into 'develop'
Revert "Merge branch 'fix/ogp-title' into 'develop'"
See merge request pleroma/pleroma!1317
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex index 82f1cce29..4a7c5eae0 100644 --- a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex +++ b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex @@ -1,19 +1,15 @@ defmodule Pleroma.Web.RichMedia.Parsers.MetaTagsParser do def parse(html, data, prefix, error_message, key_name, value_name \\ "content") do - meta_data = - html - |> get_elements(key_name, prefix) - |> Enum.reduce(data, fn el, acc -> - attributes = normalize_attributes(el, prefix, key_name, value_name) + with elements = [_ | _] <- get_elements(html, key_name, prefix), + meta_data = + Enum.reduce(elements, data, fn el, acc -> + attributes = normalize_attributes(el, prefix, key_name, value_name) - Map.merge(acc, attributes) - end) - |> maybe_put_title(html) - - if Enum.empty?(meta_data) do - {:error, error_message} - else + Map.merge(acc, attributes) + end) do {:ok, meta_data} + else + _e -> {:error, error_message} end end @@ -31,17 +27,4 @@ defmodule Pleroma.Web.RichMedia.Parsers.MetaTagsParser do %{String.to_atom(data[key_name]) => data[value_name]} end - - defp maybe_put_title(%{title: _} = meta, _), do: meta - - defp maybe_put_title(meta, html) do - case get_page_title(html) do - "" -> meta - title -> Map.put_new(meta, :title, title) - end - end - - defp get_page_title(html) do - Floki.find(html, "title") |> Floki.text() - end end |