summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorfeld <feld@feld.me>2025-03-01 02:01:22 +0000
committerfeld <feld@feld.me>2025-03-01 02:01:22 +0000
commita8e863e0d627b6ed9563d953ee2cc8c9f4c9ee7a (patch)
tree3d03c844a0dbc1c651a17e0873bbf20a917aa61e /lib
parentb77085090335f0cf3a24fd5dd82e52f8a24c1752 (diff)
parentac0882e3483d6ad4d82e9a9ce88c80933bf9efe6 (diff)
downloadpleroma-a8e863e0d627b6ed9563d953ee2cc8c9f4c9ee7a.tar.gz
pleroma-a8e863e0d627b6ed9563d953ee2cc8c9f4c9ee7a.zip
Merge branch 'rich-media-ordering' into 'develop'
Rich Media Parser should use first image found Closes #3356 See merge request pleroma/pleroma!4329
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex2
-rw-r--r--lib/pleroma/web/rich_media/parsers/twitter_card.ex11
2 files changed, 12 insertions, 1 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 320a5f515..c42e2c96b 100644
--- a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex
+++ b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex
@@ -9,7 +9,7 @@ defmodule Pleroma.Web.RichMedia.Parsers.MetaTagsParser do
|> Enum.reduce(data, fn el, acc ->
attributes = normalize_attributes(el, prefix, key_name, value_name)
- Map.merge(acc, attributes)
+ Map.merge(attributes, acc)
end)
|> maybe_put_title(html)
end
diff --git a/lib/pleroma/web/rich_media/parsers/twitter_card.ex b/lib/pleroma/web/rich_media/parsers/twitter_card.ex
index cc653729d..6f6f8b2ae 100644
--- a/lib/pleroma/web/rich_media/parsers/twitter_card.ex
+++ b/lib/pleroma/web/rich_media/parsers/twitter_card.ex
@@ -11,5 +11,16 @@ defmodule Pleroma.Web.RichMedia.Parsers.TwitterCard do
|> MetaTagsParser.parse(html, "og", "property")
|> MetaTagsParser.parse(html, "twitter", "name")
|> MetaTagsParser.parse(html, "twitter", "property")
+ |> filter_tags()
+ end
+
+ defp filter_tags(tags) do
+ Map.filter(tags, fn {k, _v} ->
+ cond do
+ k in ["card", "description", "image", "title", "ttl", "type", "url"] -> true
+ String.starts_with?(k, "image:") -> true
+ true -> false
+ end
+ end)
end
end