summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>2018-09-21 14:36:29 +0200
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>2018-09-27 20:00:46 +0200
commit28e8a8ab36ea0bdb8f8412cb6192b2e728a96b90 (patch)
tree5c75215f577292b27c0193e9cf32c850baa22b51
parentf8a0cb9c0be922a43ad9ccb6c712b4c598466573 (diff)
downloadpleroma-28e8a8ab36ea0bdb8f8412cb6192b2e728a96b90.tar.gz
pleroma-28e8a8ab36ea0bdb8f8412cb6192b2e728a96b90.zip
[Pleroma.Web.ActivityPub.Transmogrifier]: fix emoji in tag when it’s not in a array [kroeg]
Also simplified the code for name trimming. And not copying the Map.merge part as it looks buggy. See: https://queer.hacktivis.me/objects/a9f21ebc-9a12-4a6c-89d5-3d46955c6ee8
-rw-r--r--lib/pleroma/web/activity_pub/transmogrifier.ex24
1 files changed, 14 insertions, 10 deletions
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
index 8677bc208..a37c8477f 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
@@ -164,21 +164,13 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
object
end
- def fix_emoji(object) do
- tags = object["tag"] || []
+ def fix_emoji(%{"tag" => tags} = object) when is_list(tags) do
emoji = tags |> Enum.filter(fn data -> data["type"] == "Emoji" and data["icon"] end)
emoji =
emoji
|> Enum.reduce(%{}, fn data, mapping ->
- name = data["name"]
-
- name =
- if String.starts_with?(name, ":") do
- name |> String.slice(1..-2)
- else
- name
- end
+ name = String.trim(data["name"], ":")
mapping |> Map.put(name, data["icon"]["url"])
end)
@@ -190,6 +182,18 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|> Map.put("emoji", emoji)
end
+ def fix_emoji(%{"tag" => %{"type" => "Emoji"} = tag} = object) do
+ name = String.trim(tag["name"], ":")
+ emoji = %{name => tag["icon"]["url"]}
+
+ object
+ |> Map.put("emoji", emoji)
+ end
+
+ def fix_emoji(object) do
+ object
+ end
+
def fix_tag(object) do
tags =
(object["tag"] || [])