Transmogrifier: Encode Emoji id to be valid.

This commit is contained in:
Lain Soykaf 2024-06-12 12:40:01 +04:00
parent 4a28b81b59
commit 1ae5c2b020
3 changed files with 19 additions and 2 deletions

View file

@ -0,0 +1 @@
Fix Emoji object IDs not always being valid

View file

@ -913,9 +913,11 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
def add_emoji_tags(object), do: object def add_emoji_tags(object), do: object
defp build_emoji_tag({name, url}) do def build_emoji_tag({name, url}) do
url = URI.encode(url)
%{ %{
"icon" => %{"url" => "#{URI.encode(url)}", "type" => "Image"}, "icon" => %{"url" => "#{url}", "type" => "Image"},
"name" => ":" <> name <> ":", "name" => ":" <> name <> ":",
"type" => "Emoji", "type" => "Emoji",
"updated" => "1970-01-01T00:00:00Z", "updated" => "1970-01-01T00:00:00Z",

View file

@ -0,0 +1,14 @@
defmodule Pleroma.Web.ActivityPub.Transmogrifier.EmojiTagBuildingTest do
use Pleroma.DataCase, async: true
alias Pleroma.Web.ActivityPub.Transmogrifier
test "it encodes the id to be a valid url" do
name = "hanapog"
url = "https://misskey.local.live/emojis/hana pog.png"
tag = Transmogrifier.build_emoji_tag({name, url})
assert tag["id"] == "https://misskey.local.live/emojis/hana%20pog.png"
end
end