Merge branch 'hotfix/delete-activities' into 'develop'
[akkoma] / lib / pleroma / web / metadata / twitter_card.ex
index 13fa22240649832e4baa015a0e3dba79f8257733..040b872e7034d840705ffb324628d223a9f197b3 100644 (file)
@@ -12,10 +12,11 @@ defmodule Pleroma.Web.Metadata.Providers.TwitterCard do
 
   @impl Provider
   def build_tags(%{
+        activity_id: id,
         object: object,
         user: user
       }) do
-    attachments = build_attachments(object)
+    attachments = build_attachments(id, object)
     scrubbed_content = Utils.scrub_html_and_truncate(object)
     # Zero width space
     content =
@@ -65,7 +66,7 @@ defmodule Pleroma.Web.Metadata.Providers.TwitterCard do
     end
   end
 
-  defp build_attachments(%{data: %{"attachment" => attachments}}) do
+  defp build_attachments(id, %{data: %{"attachment" => attachments}}) do
     Enum.reduce(attachments, [], fn attachment, acc ->
       rendered_tags =
         Enum.reduce(attachment["url"], [], fn url, acc ->
@@ -79,8 +80,9 @@ defmodule Pleroma.Web.Metadata.Providers.TwitterCard do
             "audio" ->
               [
                 {:meta, [property: "twitter:card", content: "player"], []},
-                {:meta, [property: "twitter:player", content: Utils.attachment_url(url["href"])],
-                 []}
+                {:meta, [property: "twitter:player:width", content: "480"], []},
+                {:meta, [property: "twitter:player:height", content: "80"], []},
+                {:meta, [property: "twitter:player", content: player_url(id)], []}
                 | acc
               ]
 
@@ -95,14 +97,14 @@ defmodule Pleroma.Web.Metadata.Providers.TwitterCard do
                 | acc
               ]
 
-            # TODO: Need the true width and height values here or Twitter renders an iFrame with a bad aspect ratio
+            # TODO: Need the true width and height values here or Twitter renders an iFrame with
+            # a bad aspect ratio
             "video" ->
               [
                 {:meta, [property: "twitter:card", content: "player"], []},
-                {:meta, [property: "twitter:player", content: Utils.attachment_url(url["href"])],
-                 []},
-                {:meta, [property: "twitter:player:width", content: "1280"], []},
-                {:meta, [property: "twitter:player:height", content: "720"], []}
+                {:meta, [property: "twitter:player", content: player_url(id)], []},
+                {:meta, [property: "twitter:player:width", content: "480"], []},
+                {:meta, [property: "twitter:player:height", content: "480"], []}
                 | acc
               ]
 
@@ -114,4 +116,8 @@ defmodule Pleroma.Web.Metadata.Providers.TwitterCard do
       acc ++ rendered_tags
     end)
   end
+
+  defp player_url(id) do
+    Pleroma.Web.Router.Helpers.o_status_url(Pleroma.Web.Endpoint, :notice_player, id)
+  end
 end