Transmogrifier: Extend misskey like compatibility.

This commit is contained in:
lain 2019-10-05 10:45:42 +02:00
parent 43a211bcb1
commit 6a85f7d1ea
2 changed files with 22 additions and 2 deletions

View file

@ -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

View file

@ -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"})