AP: Fix incoming conversations.
authorlain <lain@soykaf.club>
Mon, 19 Feb 2018 09:39:03 +0000 (10:39 +0100)
committerlain <lain@soykaf.club>
Mon, 19 Feb 2018 09:39:03 +0000 (10:39 +0100)
lib/pleroma/web/activity_pub/transmogrifier.ex
test/web/activity_pub/transmogrifier_test.exs

index 076bd2ea8bac10f0cb01e4d1aeb6da15471c9996..075250aa5e8f8d2517dcd2ac5e02992e58572da7 100644 (file)
@@ -14,6 +14,12 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
     object
     |> Map.put("actor", object["attributedTo"])
     |> fix_attachments
+    |> fix_context
+  end
+
+  def fix_context(object) do
+    object
+    |> Map.put("context", object["conversation"])
   end
 
   def fix_attachments(object) do
@@ -130,7 +136,8 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
   end
 
   def add_mention_tags(object) do
-    mentions = object["to"]
+    recipients = object["to"] ++ (object["cc"] || [])
+    mentions = recipients
     |> Enum.map(fn (ap_id) -> User.get_cached_by_ap_id(ap_id) end)
     |> Enum.filter(&(&1))
     |> Enum.map(fn(user) -> %{"type" => "Mention", "href" => user.ap_id, "name" => "@#{user.nickname}"} end)
index 08f8e8206962089a3b2c38663e7a9439851bf3c1..45e284157c7321c138c67ce814ea36e75b538d7f 100644 (file)
@@ -33,6 +33,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
       ]
       assert object["actor"] == "http://mastodon.example.org/users/admin"
       assert object["attributedTo"] == "http://mastodon.example.org/users/admin"
+      assert object["context"] == "tag:mastodon.example.org,2018-02-12:objectId=20:objectType=Conversation"
       assert object["sensitive"] == true
     end
 
@@ -111,6 +112,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
         "name" => "@#{other_user.nickname}",
         "type" => "Mention"
       }
+
       expected_tag = %{
         "href" => Pleroma.Web.Endpoint.url <> "/tags/2hu",
         "type" => "Hashtag",