diff options
author | Lain Soykaf <lain@lain.com> | 2024-06-12 12:40:01 +0400 |
---|---|---|
committer | Lain Soykaf <lain@lain.com> | 2024-06-12 12:41:33 +0400 |
commit | 1ae5c2b020810eda7243e7e6b52cf89e6bb7f8d0 (patch) | |
tree | 3844903798e80281d694f19cde6ca1d04c0dced6 | |
parent | 4a28b81b591d6b87fa27378744052ccf8be44308 (diff) | |
download | pleroma-1ae5c2b020810eda7243e7e6b52cf89e6bb7f8d0.tar.gz pleroma-1ae5c2b020810eda7243e7e6b52cf89e6bb7f8d0.zip |
Transmogrifier: Encode Emoji id to be valid.
-rw-r--r-- | changelog.d/3280-fix-emoji-ids.fix | 1 | ||||
-rw-r--r-- | lib/pleroma/web/activity_pub/transmogrifier.ex | 6 | ||||
-rw-r--r-- | test/pleroma/web/activity_pub/transmogrifier/emoji_tag_building_test.exs | 14 |
3 files changed, 19 insertions, 2 deletions
diff --git a/changelog.d/3280-fix-emoji-ids.fix b/changelog.d/3280-fix-emoji-ids.fix new file mode 100644 index 000000000..1bce5b653 --- /dev/null +++ b/changelog.d/3280-fix-emoji-ids.fix @@ -0,0 +1 @@ +Fix Emoji object IDs not always being valid diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index edfe73a25..4d851559f 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -913,9 +913,11 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do 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 <> ":", "type" => "Emoji", "updated" => "1970-01-01T00:00:00Z", diff --git a/test/pleroma/web/activity_pub/transmogrifier/emoji_tag_building_test.exs b/test/pleroma/web/activity_pub/transmogrifier/emoji_tag_building_test.exs new file mode 100644 index 000000000..c632c199c --- /dev/null +++ b/test/pleroma/web/activity_pub/transmogrifier/emoji_tag_building_test.exs @@ -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 |