[Pleroma.Web.ActivityPub.Transmogrifier]: Fix likes
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Fri, 3 Aug 2018 22:58:55 +0000 (00:58 +0200)
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Tue, 21 Aug 2018 16:26:12 +0000 (18:26 +0200)
lib/pleroma/web/activity_pub/transmogrifier.ex

index 279bf636586fea9edc696b6045ba9ecbae77415b..5e07d5ea95344c2da0df8919f95c2fe29d2014cb 100644 (file)
@@ -42,6 +42,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
     |> fix_emoji
     |> fix_tag
     |> fix_content_map
+    |> fix_likes
     |> fix_addressing
   end
 
@@ -67,6 +68,20 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
     |> Map.put("actor", get_actor(%{"actor" => actor}))
   end
 
+  def fix_likes(%{"likes" => likes} = object)
+      when is_bitstring(likes) do
+    # Check for standardisation
+    # This is what Peertube does
+    # curl -H 'Accept: application/activity+json' $likes | jq .totalItems
+    object
+    |> Map.put("likes", [])
+    |> Map.put("like_count", 0)
+  end
+
+  def fix_likes(object) do
+    object
+  end
+
   def fix_in_reply_to(%{"inReplyTo" => in_reply_to_id} = object)
       when not is_nil(in_reply_to_id) do
     case ActivityPub.fetch_object_from_id(in_reply_to_id) do