diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 2e5ca70fd..698cfa0a9 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -122,18 +122,23 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do if object = Object.get_by_ap_id(id), do: {:ok, object}, else: nil end - @doc - """ - internal -> Mastodon - """ - def prepare_outgoing(%{"type" => "Create", "object" => %{"type" => "Note"} = object} = data) do - object = object + def prepare_object(object) do + object |> set_sensitive |> add_hashtags |> add_mention_tags |> add_attributed_to |> prepare_attachments |> set_conversation + end + + @doc + """ + internal -> Mastodon + """ + def prepare_outgoing(%{"type" => "Create", "object" => %{"type" => "Note"} = object} = data) do + object = object + |> prepare_object data = data |> Map.put("object", object) diff --git a/lib/pleroma/web/activity_pub/views/object_view.ex b/lib/pleroma/web/activity_pub/views/object_view.ex index c39f99454..cc0b0556b 100644 --- a/lib/pleroma/web/activity_pub/views/object_view.ex +++ b/lib/pleroma/web/activity_pub/views/object_view.ex @@ -1,5 +1,6 @@ defmodule Pleroma.Web.ActivityPub.ObjectView do use Pleroma.Web, :view + alias Pleroma.Web.ActivityPub.Transmogrifier def render("object.json", %{object: object}) do base = %{ @@ -20,8 +21,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectView do ] } - additional = Map.take(object.data, ["id", "to", "cc", "actor", "content", "summary", "type"]) - |> Map.put("attributedTo", object.data["actor"]) + additional = Transmogrifier.prepare_object(object.data) Map.merge(base, additional) end end