mirror of
https://akkoma.dev/AkkomaGang/akkoma.git
synced 2024-11-11 03:39:13 +00:00
Unify object representation.
This commit is contained in:
parent
2b5d265954
commit
82e34cae95
2 changed files with 13 additions and 8 deletions
|
@ -122,18 +122,23 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|
||||||
if object = Object.get_by_ap_id(id), do: {:ok, object}, else: nil
|
if object = Object.get_by_ap_id(id), do: {:ok, object}, else: nil
|
||||||
end
|
end
|
||||||
|
|
||||||
@doc
|
def prepare_object(object) do
|
||||||
"""
|
object
|
||||||
internal -> Mastodon
|
|
||||||
"""
|
|
||||||
def prepare_outgoing(%{"type" => "Create", "object" => %{"type" => "Note"} = object} = data) do
|
|
||||||
object = object
|
|
||||||
|> set_sensitive
|
|> set_sensitive
|
||||||
|> add_hashtags
|
|> add_hashtags
|
||||||
|> add_mention_tags
|
|> add_mention_tags
|
||||||
|> add_attributed_to
|
|> add_attributed_to
|
||||||
|> prepare_attachments
|
|> prepare_attachments
|
||||||
|> set_conversation
|
|> set_conversation
|
||||||
|
end
|
||||||
|
|
||||||
|
@doc
|
||||||
|
"""
|
||||||
|
internal -> Mastodon
|
||||||
|
"""
|
||||||
|
def prepare_outgoing(%{"type" => "Create", "object" => %{"type" => "Note"} = object} = data) do
|
||||||
|
object = object
|
||||||
|
|> prepare_object
|
||||||
|
|
||||||
data = data
|
data = data
|
||||||
|> Map.put("object", object)
|
|> Map.put("object", object)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
defmodule Pleroma.Web.ActivityPub.ObjectView do
|
defmodule Pleroma.Web.ActivityPub.ObjectView do
|
||||||
use Pleroma.Web, :view
|
use Pleroma.Web, :view
|
||||||
|
alias Pleroma.Web.ActivityPub.Transmogrifier
|
||||||
|
|
||||||
def render("object.json", %{object: object}) do
|
def render("object.json", %{object: object}) do
|
||||||
base = %{
|
base = %{
|
||||||
|
@ -20,8 +21,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectView do
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
additional = Map.take(object.data, ["id", "to", "cc", "actor", "content", "summary", "type"])
|
additional = Transmogrifier.prepare_object(object.data)
|
||||||
|> Map.put("attributedTo", object.data["actor"])
|
|
||||||
Map.merge(base, additional)
|
Map.merge(base, additional)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue