From f9bff8f5e5408e0b8eee9a7b0019e4c92c54e1f9 Mon Sep 17 00:00:00 2001
From: Lain Soykaf <lain@lain.com>
Date: Wed, 19 Mar 2025 16:00:27 +0400
Subject: [PATCH] Transmogrifier: Keep likes as likes if the content is
 obviously wrong

---
 lib/pleroma/web/activity_pub/transmogrifier.ex               | 5 +++--
 .../web/activity_pub/transmogrifier/like_handling_test.exs   | 3 ++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
index 19d036c0d..6517f5eff 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
@@ -495,10 +495,11 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
   defp handle_incoming_normalized(
          %{
            "type" => "Like",
-           "content" => _
+           "content" => content
          } = data,
          options
-       ) do
+       )
+       when is_binary(content) do
     data
     |> Map.put("type", "EmojiReact")
     |> handle_incoming_normalized(options)
diff --git a/test/pleroma/web/activity_pub/transmogrifier/like_handling_test.exs b/test/pleroma/web/activity_pub/transmogrifier/like_handling_test.exs
index 023c2530f..fc04c1391 100644
--- a/test/pleroma/web/activity_pub/transmogrifier/like_handling_test.exs
+++ b/test/pleroma/web/activity_pub/transmogrifier/like_handling_test.exs
@@ -140,6 +140,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.LikeHandlingTest do
 
     _actor = insert(:user, ap_id: data["actor"], local: false)
 
-    assert {:error, _} = Transmogrifier.handle_incoming(data)
+    assert {:ok, activity} = Transmogrifier.handle_incoming(data)
+    assert activity.data["type"] == "Like"
   end
 end