Show images, video, and audio attachments to notices.
This commit is contained in:
parent
1d8950798c
commit
748d800acb
5 changed files with 50 additions and 8 deletions
|
|
@ -19,6 +19,8 @@ defmodule Pleroma.Web.StaticFE.ActivityRepresenter do
|
|||
|> set_content(object)
|
||||
|> set_link(activity.id)
|
||||
|> set_published(object)
|
||||
|> set_sensitive(object)
|
||||
|> set_attachment(object.data["attachment"])
|
||||
|> set_attachments(object)
|
||||
end
|
||||
|
||||
|
|
@ -39,17 +41,23 @@ defmodule Pleroma.Web.StaticFE.ActivityRepresenter do
|
|||
|
||||
defp set_content(data, _), do: Map.put(data, :content, nil)
|
||||
|
||||
defp set_attachment(data, attachment), do: Map.put(data, :attachment, attachment)
|
||||
|
||||
defp set_link(data, activity_id),
|
||||
do: Map.put(data, :link, Helpers.o_status_url(Pleroma.Web.Endpoint, :notice, activity_id))
|
||||
|
||||
defp set_published(data, %Object{data: %{"published" => published}}),
|
||||
do: Map.put(data, :published, published)
|
||||
|
||||
defp set_sensitive(data, %Object{data: %{"sensitive" => sensitive}}),
|
||||
do: Map.put(data, :sensitive, sensitive)
|
||||
|
||||
# TODO: attachments
|
||||
defp set_attachments(data, _), do: Map.put(data, :attachments, [])
|
||||
|
||||
def represent(activity_id) do
|
||||
with %Activity{data: %{"type" => "Create"}} = activity <- Activity.get_by_id(activity_id),
|
||||
with %Activity{data: %{"type" => "Create"}} = activity <-
|
||||
Activity.get_by_id_with_object(activity_id),
|
||||
true <- Visibility.is_public?(activity),
|
||||
{:ok, %User{} = user} <- User.get_or_fetch(activity.data["actor"]) do
|
||||
{:ok, prepare_activity(user, activity)}
|
||||
|
|
|
|||
|
|
@ -8,10 +8,13 @@ defmodule Pleroma.Web.StaticFE.StaticFEView do
|
|||
alias Pleroma.User
|
||||
alias Pleroma.Web.MediaProxy
|
||||
alias Pleroma.Formatter
|
||||
alias Pleroma.Web.Metadata.Utils
|
||||
alias Pleroma.Web.Router.Helpers
|
||||
|
||||
import Phoenix.HTML
|
||||
|
||||
@media_types ["image", "audio", "video"]
|
||||
|
||||
def emoji_for_user(%User{} = user) do
|
||||
(user.source_data["tag"] || [])
|
||||
|> Enum.filter(fn %{"type" => t} -> t == "Emoji" end)
|
||||
|
|
@ -19,4 +22,8 @@ defmodule Pleroma.Web.StaticFE.StaticFEView do
|
|||
{String.trim(name, ":"), url}
|
||||
end)
|
||||
end
|
||||
|
||||
def fetch_media_type(url) do
|
||||
Utils.fetch_media_type(@media_types, url["mediaType"])
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue