logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://anongit.hacktivis.me/git/pleroma.git/
commit: f9bff8f5e5408e0b8eee9a7b0019e4c92c54e1f9
parent 950bf60765cd4eff8f29717dd7a487b8cdf395f8
Author: Lain Soykaf <lain@lain.com>
Date:   Wed, 19 Mar 2025 16:00:27 +0400

Transmogrifier: Keep likes as likes if the content is obviously wrong

Diffstat:

Mlib/pleroma/web/activity_pub/transmogrifier.ex5+++--
Mtest/pleroma/web/activity_pub/transmogrifier/like_handling_test.exs3++-
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 @@ -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 @@ -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