summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2021-05-04 11:06:10 -0500
committerAlex Gleason <alex@alexgleason.me>2021-05-04 11:06:10 -0500
commitb045dc6058e689eb0936fd963edaff8ba6287533 (patch)
tree7b9e3fde8cb2722417acd5ac757c5995206dcb76
parent765bdfca7df52a5b2dd65804db2c05da37f3a03c (diff)
Make OEmbed discovery work
-rw-r--r--lib/pleroma/web/rich_media/parser.ex2
-rw-r--r--lib/pleroma/web/rich_media/parser/card.ex4
-rw-r--r--lib/pleroma/web/rich_media/parsers/o_embed.ex2
-rw-r--r--lib/pleroma/web/rich_media/parsers/twitter_card.ex1
4 files changed, 6 insertions, 3 deletions
diff --git a/lib/pleroma/web/rich_media/parser.ex b/lib/pleroma/web/rich_media/parser.ex
index d7b0cab6f..dee0f61ac 100644
--- a/lib/pleroma/web/rich_media/parser.ex
+++ b/lib/pleroma/web/rich_media/parser.ex
@@ -158,7 +158,7 @@ defmodule Pleroma.Web.RichMedia.Parser do
|> maybe_parse()
|> Map.put("url", url)
|> clean_parsed_data()
- |> Card.from_meta_tags(url)
+ |> Card.from_discovery(url)
|> check_card()
end
end
diff --git a/lib/pleroma/web/rich_media/parser/card.ex b/lib/pleroma/web/rich_media/parser/card.ex
index 5ea719485..da0acc789 100644
--- a/lib/pleroma/web/rich_media/parser/card.ex
+++ b/lib/pleroma/web/rich_media/parser/card.ex
@@ -41,7 +41,7 @@ defmodule Pleroma.Web.RichMedia.Parser.Card do
def from_oembed(_oembed, _url), do: nil
- def from_meta_tags(rich_media, page_url) do
+ def from_discovery(%{"type" => "link"} = rich_media, page_url) do
page_url_data = URI.parse(page_url)
page_url_data =
@@ -70,6 +70,8 @@ defmodule Pleroma.Web.RichMedia.Parser.Card do
}
end
+ def from_discovery(rich_media, url), do: from_oembed(rich_media, url)
+
defp proxy(url) when is_binary(url), do: Pleroma.Web.MediaProxy.url(url)
defp proxy(_), do: nil
end
diff --git a/lib/pleroma/web/rich_media/parsers/o_embed.ex b/lib/pleroma/web/rich_media/parsers/o_embed.ex
index 09eabec56..8dc378c3c 100644
--- a/lib/pleroma/web/rich_media/parsers/o_embed.ex
+++ b/lib/pleroma/web/rich_media/parsers/o_embed.ex
@@ -22,7 +22,7 @@ defmodule Pleroma.Web.RichMedia.Parsers.OEmbed do
end
defp get_oembed_data(url) do
- with {:ok, %Tesla.Env{body: json}} <- Pleroma.Web.RichMedia.Helpers.rich_media_get(url) do
+ with {:ok, %Tesla.Env{body: json}} <- Pleroma.Web.RichMedia.Helpers.oembed_get(url) do
Jason.decode(json)
end
end
diff --git a/lib/pleroma/web/rich_media/parsers/twitter_card.ex b/lib/pleroma/web/rich_media/parsers/twitter_card.ex
index 0adf84159..31546819e 100644
--- a/lib/pleroma/web/rich_media/parsers/twitter_card.ex
+++ b/lib/pleroma/web/rich_media/parsers/twitter_card.ex
@@ -11,5 +11,6 @@ defmodule Pleroma.Web.RichMedia.Parsers.TwitterCard do
|> MetaTagsParser.parse(html, "og", "property")
|> MetaTagsParser.parse(html, "twitter", "name")
|> MetaTagsParser.parse(html, "twitter", "property")
+ |> Map.put("type", "link")
end
end