aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/mastodon_api/controllers/status_controller.ex2
-rw-r--r--lib/pleroma/web/mastodon_api/views/status_view.ex9
-rw-r--r--lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex2
-rw-r--r--lib/pleroma/web/rich_media/parser/card.ex3
4 files changed, 10 insertions, 6 deletions
diff --git a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex
index d1a58d5e1..3be805fa2 100644
--- a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex
+++ b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex
@@ -312,7 +312,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
with %Activity{} = activity <- Activity.get_by_id(status_id),
true <- Visibility.visible_for_user?(activity, user) do
data = Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
- render(conn, "card.json", data)
+ render(conn, "card.json", %{embed: data})
else
_ -> render_error(conn, :not_found, "Record not found")
end
diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex
index 427476695..9605c8329 100644
--- a/lib/pleroma/web/mastodon_api/views/status_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/status_view.ex
@@ -271,7 +271,10 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
summary = object.data["summary"] || ""
- card = render("card.json", Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity))
+ card =
+ render("card.json", %{
+ embed: Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
+ })
url =
if user.local do
@@ -369,7 +372,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
nil
end
- def render("card.json", %Embed{url: _, meta: _} = embed) do
+ def render("card.json", %{embed: %Embed{} = embed}) do
with {:ok, %Card{} = card} <- Card.parse(embed) do
Card.to_map(card)
else
@@ -377,7 +380,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
end
end
- def render("card.json", %Card{} = card), do: Card.to_map(card)
+ def render("card.json", %{embed: %Card{} = card}), do: Card.to_map(card)
def render("card.json", _), do: nil
def render("attachment.json", %{attachment: attachment}) do
diff --git a/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex b/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex
index 2e4355992..32fe0b229 100644
--- a/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex
+++ b/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex
@@ -37,7 +37,7 @@ defmodule Pleroma.Web.PleromaAPI.Chat.MessageReferenceView do
card:
StatusView.render(
"card.json",
- Pleroma.Web.RichMedia.Helpers.fetch_data_for_object(object)
+ %{embed: Pleroma.Web.RichMedia.Helpers.fetch_data_for_object(object)}
)
}
|> put_idempotency_key()
diff --git a/lib/pleroma/web/rich_media/parser/card.ex b/lib/pleroma/web/rich_media/parser/card.ex
index 1eb3ddbdd..f6193728a 100644
--- a/lib/pleroma/web/rich_media/parser/card.ex
+++ b/lib/pleroma/web/rich_media/parser/card.ex
@@ -33,7 +33,7 @@ defmodule Pleroma.Web.RichMedia.Parser.Card do
type: oembed["type"],
author_name: oembed["author_name"],
author_url: oembed["author_url"],
- provider_name: oembed["provider_name"],
+ provider_name: oembed["provider_name"] || URI.parse(url).host,
provider_url: oembed["provider_url"],
html: oembed["html"],
width: oembed["width"],
@@ -50,6 +50,7 @@ defmodule Pleroma.Web.RichMedia.Parser.Card do
title: get_title(embed),
description: get_description(embed),
type: "link",
+ provider_name: URI.parse(url).host,
image: get_image(embed) |> proxy()
}
|> validate()