@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 =
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 ->
"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
]
| 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
]
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