TwitterAPI.ActivityView: Ignore unhandled activities
[akkoma] / lib / pleroma / web / twitter_api / views / activity_view.ex
index 83e8fb765b3d4a3cd1a735763b3cfd467258d372..e4d364118ae55ecbd799d5a0d3134014c3a9160d 100644 (file)
@@ -14,6 +14,7 @@ defmodule Pleroma.Web.TwitterAPI.ActivityView do
   alias Pleroma.HTML
 
   import Ecto.Query
+  require Logger
 
   defp query_context_ids([]), do: []
 
@@ -190,6 +191,11 @@ defmodule Pleroma.Web.TwitterAPI.ActivityView do
 
     text = "#{user.nickname} favorited a status."
 
+    favorited_status =
+      if liked_activity,
+        do: render("activity.json", Map.merge(opts, %{activity: liked_activity})),
+        else: nil
+
     %{
       "id" => activity.id,
       "user" => UserView.render("show.json", %{user: user, for: opts[:for]}),
@@ -199,6 +205,7 @@ defmodule Pleroma.Web.TwitterAPI.ActivityView do
       "is_post_verb" => false,
       "uri" => "tag:#{activity.data["id"]}:objectType=Favourite",
       "created_at" => created_at,
+      "favorited_status" => favorited_status,
       "in_reply_to_status_id" => liked_activity_id,
       "external_url" => activity.data["id"],
       "activity_type" => "like"
@@ -270,6 +277,11 @@ defmodule Pleroma.Web.TwitterAPI.ActivityView do
     }
   end
 
+  def render("activity.json", %{activity: unhandled_activity}) do
+    Logger.warn("#{__MODULE__} unhandled activity: #{inspect(unhandled_activity)}")
+    nil
+  end
+
   def render_content(%{"type" => "Note"} = object) do
     summary = object["summary"]