diff options
| author | Haelwenn (lanodan) Monnier <contact@hacktivis.me> | 2018-09-21 14:36:29 +0200 | 
|---|---|---|
| committer | Haelwenn (lanodan) Monnier <contact@hacktivis.me> | 2018-09-27 20:00:46 +0200 | 
| commit | 28e8a8ab36ea0bdb8f8412cb6192b2e728a96b90 (patch) | |
| tree | 5c75215f577292b27c0193e9cf32c850baa22b51 /lib | |
| parent | f8a0cb9c0be922a43ad9ccb6c712b4c598466573 (diff) | |
| download | pleroma-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
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/activity_pub/transmogrifier.ex | 24 | 
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"] || []) | 
