Use hash of attachment url as id.
[akkoma] / lib / pleroma / web / ostatus / activity_representer.ex
index 842e44ee4aa25dc909a5ca379dc4adaf753f35ca..dda29d3cf60fe664719ccba255b25b7504dcd0b7 100644 (file)
@@ -82,7 +82,7 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do
       {:content, [type: 'html'], h.(activity.data["object"]["content"] |> String.replace(~r/[\n\r]/, ""))},
       {:published, h.(inserted_at)},
       {:updated, h.(updated_at)},
-      {:"ostatus:conversation", [], h.(activity.data["context"])},
+      {:"ostatus:conversation", [ref: h.(activity.data["context"])], h.(activity.data["context"])},
       {:link, [ref: h.(activity.data["context"]), rel: 'ostatus:conversation'], []},
     ] ++ get_links(activity) ++ categories ++ attachments ++ in_reply_to ++ author ++ mentions
   end
@@ -108,7 +108,7 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do
         {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/note']},
         {:id, h.(activity.data["object"])}, # For notes, federate the object id.
       ]},
-      {:"ostatus:conversation", [], h.(activity.data["context"])},
+      {:"ostatus:conversation", [ref: h.(activity.data["context"])], h.(activity.data["context"])},
       {:link, [ref: h.(activity.data["context"]), rel: 'ostatus:conversation'], []},
       {:link, [rel: 'self', type: ['application/atom+xml'], href: h.(activity.data["id"])], []},
       {:"thr:in-reply-to", [ref: to_charlist(activity.data["object"])], []}
@@ -138,7 +138,7 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do
       {:content, [type: 'html'], ['RT #{retweeted_activity.data["object"]["content"]}']},
       {:published, h.(inserted_at)},
       {:updated, h.(updated_at)},
-      {:"ostatus:conversation", [], h.(activity.data["context"])},
+      {:"ostatus:conversation", [ref: h.(activity.data["context"])], h.(activity.data["context"])},
       {:link, [ref: h.(activity.data["context"]), rel: 'ostatus:conversation'], []},
       {:link, [rel: 'self', type: ['application/atom+xml'], href: h.(activity.data["id"])], []},
       {:"activity:object", retweeted_xml}
@@ -199,6 +199,25 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do
     ] ++ mentions ++ author
   end
 
+  def to_simple_form(%{data: %{"type" => "Delete"}} = activity, user, with_author) do
+    h = fn(str) -> [to_charlist(str)] end
+
+    updated_at = activity.data["published"]
+    inserted_at = activity.data["published"]
+
+    author = if with_author, do: [{:author, UserRepresenter.to_simple_form(user)}], else: []
+
+    [
+      {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/activity']},
+      {:"activity:verb", ['http://activitystrea.ms/schema/1.0/delete']},
+      {:id, h.(activity.data["object"])},
+      {:title, ['An object was deleted']},
+      {:content, [type: 'html'], ['An object was deleted']},
+      {:published, h.(inserted_at)},
+      {:updated, h.(updated_at)}
+    ]  ++ author
+  end
+
   def wrap_with_entry(simple_form) do
     [{
       :entry, [