diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 3781b212a..17cd3b1c2 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -104,6 +104,7 @@ def prepare_outgoing(%{"type" => "Create", "object" => %{"type" => "Note"} = obj |> add_mention_tags |> add_attributed_to |> prepare_attachments + |> set_conversation data = data |> Map.put("object", object) @@ -139,6 +140,10 @@ def add_mention_tags(object) do |> Map.put("tag", tags ++ mentions) end + def set_conversation(object) do + Map.put(object, "conversation", object["context"]) + end + def add_attributed_to(object) do attributedTo = object["attributedTo"] || object["actor"] diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index e2db615eb..ec608a86a 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -120,13 +120,14 @@ test "it turns mentions into tags" do assert Enum.member?(object["tag"], expected_mention) end - test "it adds the json-ld context" do + test "it adds the json-ld context and the conversation property" do user = insert(:user) {:ok, activity} = CommonAPI.post(user, %{"status" => "hey"}) {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) assert modified["@context"] == "https://www.w3.org/ns/activitystreams" + assert modified["object"]["conversation"] == modified["context"] end test "it sets the 'attributedTo' property to the actor of the object if it doesn't have one" do