aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2019-10-05 10:45:42 +0200
committerlain <lain@soykaf.club>2019-10-05 10:45:42 +0200
commit6a85f7d1eabd957588a2f9b8dfea5b7f982573be (patch)
tree8de2c89b3ac88f5c9dc617539ac37f47aa19210a
parent43a211bcb111720622a89da3016372f5a3a12184 (diff)
downloadpleroma-6a85f7d1eabd957588a2f9b8dfea5b7f982573be.tar.gz
Transmogrifier: Extend misskey like compatibility.
-rw-r--r--lib/pleroma/web/activity_pub/transmogrifier.ex5
-rw-r--r--test/web/activity_pub/transmogrifier_test.exs19
2 files changed, 22 insertions, 2 deletions
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
index 54c18bc0e..2c6edb0b1 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
@@ -570,7 +570,8 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
"angry" => "💢",
"confused" => "😥",
"rip" => "😇",
- "pudding" => "🍮"
+ "pudding" => "🍮",
+ "star" => "⭐"
}
@doc "Rewrite misskey likes into EmojiReactions"
@@ -583,7 +584,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
) do
data
|> Map.put("type", "EmojiReaction")
- |> Map.put("content", @misskey_reactions[reaction])
+ |> Map.put("content", @misskey_reactions[reaction] || reaction)
|> handle_incoming(options)
end
diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs
index 530a762fa..9156b23e3 100644
--- a/test/web/activity_pub/transmogrifier_test.exs
+++ b/test/web/activity_pub/transmogrifier_test.exs
@@ -359,6 +359,25 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
assert data["content"] == "🍮"
end
+ test "it works for incoming misskey likes that contain unicode emojis, turning them into EmojiReactions" do
+ user = insert(:user)
+ {:ok, activity} = CommonAPI.post(user, %{"status" => "hello"})
+
+ data =
+ File.read!("test/fixtures/misskey-like.json")
+ |> Poison.decode!()
+ |> Map.put("object", activity.data["object"])
+ |> Map.put("_misskey_reaction", "⭐")
+
+ {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data)
+
+ assert data["actor"] == data["actor"]
+ assert data["type"] == "EmojiReaction"
+ assert data["id"] == data["id"]
+ assert data["object"] == activity.data["object"]
+ assert data["content"] == "⭐"
+ end
+
test "it works for incoming emoji reactions" do
user = insert(:user)
{:ok, activity} = CommonAPI.post(user, %{"status" => "hello"})