Use [] instead of nil
[akkoma] / lib / pleroma / web / ostatus / activity_representer.ex
index 2f28c456e941281104d711d03272482036039055..26d02a83111ca67586411dc0dd351c2b9333a750 100644 (file)
@@ -131,7 +131,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do
        h.(activity.data["object"]["content"] |> String.replace(~r/[\n\r]/, ""))},
       {:published, h.(inserted_at)},
       {:updated, h.(updated_at)},
-      {:"ostatus:conversation", [ref: h.(activity.data["context"])], h.(activity.data["context"])},
+      {:"ostatus:conversation", [ref: h.(activity.data["context"])],
+       h.(activity.data["context"])},
       {:link, [ref: h.(activity.data["context"]), rel: 'ostatus:conversation'], []}
     ] ++
       summary ++
@@ -162,7 +163,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do
          # For notes, federate the object id.
          {:id, h.(activity.data["object"])}
        ]},
-      {:"ostatus:conversation", [ref: h.(activity.data["context"])], 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"])], []}
@@ -193,7 +195,8 @@ 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", [ref: h.(activity.data["context"])], 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}
@@ -237,27 +240,39 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do
     inserted_at = activity.data["published"]
 
     author = if with_author, do: [{:author, UserRepresenter.to_simple_form(user)}], else: []
-    follow_activity = Activity.get_by_ap_id(activity.data["object"])
+
+    follow_activity =
+      if is_map(activity.data["object"]) do
+        Activity.get_by_ap_id(activity.data["object"]["id"])
+      else
+        Activity.get_by_ap_id(activity.data["object"])
+      end
 
     mentions = (activity.recipients || []) |> get_mentions
 
-    [
-      {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/activity']},
-      {:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']},
-      {:id, h.(activity.data["id"])},
-      {:title, ['#{user.nickname} stopped following #{follow_activity.data["object"]}']},
-      {:content, [type: 'html'],
-       ['#{user.nickname} stopped following #{follow_activity.data["object"]}']},
-      {:published, h.(inserted_at)},
-      {:updated, h.(updated_at)},
-      {:"activity:object",
-       [
-         {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/person']},
-         {:id, h.(follow_activity.data["object"])},
-         {:uri, h.(follow_activity.data["object"])}
-       ]},
-      {:link, [rel: 'self', type: ['application/atom+xml'], href: h.(activity.data["id"])], []}
-    ] ++ mentions ++ author
+    case follow_activity.data["type"] do
+      "Follow" ->
+        [
+          {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/activity']},
+          {:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']},
+          {:id, h.(activity.data["id"])},
+          {:title, ['#{user.nickname} stopped following #{follow_activity.data["object"]}']},
+          {:content, [type: 'html'],
+           ['#{user.nickname} stopped following #{follow_activity.data["object"]}']},
+          {:published, h.(inserted_at)},
+          {:updated, h.(updated_at)},
+          {:"activity:object",
+           [
+             {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/person']},
+             {:id, h.(follow_activity.data["object"])},
+             {:uri, h.(follow_activity.data["object"])}
+           ]},
+          {:link, [rel: 'self', type: ['application/atom+xml'], href: h.(activity.data["id"])],
+           []}
+        ] ++ mentions ++ author
+
+      _ -> []
+    end
   end
 
   def to_simple_form(%{data: %{"type" => "Delete"}} = activity, user, with_author) do