X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser.ex;h=714ec9a4bac3dd74964f13a5212bfe246bcbe6e5;hb=250e0369c72292a255b0fe078e5a2202c00fa4c7;hp=711258ac703f1fd7e57d16788b255a40b98f1f1b;hpb=777a7edc6b4bf8b9e0ff3b86bdb780f8f2ae2610;p=akkoma diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 711258ac7..714ec9a4b 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -530,11 +530,21 @@ defmodule Pleroma.User do end defp put_emoji(changeset) do - bio = get_change(changeset, :bio) - name = get_change(changeset, :name) + emojified_fields = [:bio, :name, :raw_fields] + + if Enum.any?(changeset.changes, fn {k, _} -> k in emojified_fields end) do + bio = Emoji.Formatter.get_emoji_map(get_field(changeset, :bio)) + name = Emoji.Formatter.get_emoji_map(get_field(changeset, :name)) + + emoji = Map.merge(bio, name) + + emoji = + changeset + |> get_field(:raw_fields) + |> Enum.reduce(emoji, fn x, acc -> + Map.merge(acc, Emoji.Formatter.get_emoji_map(x["name"] <> x["value"])) + end) - if bio || name do - emoji = Map.merge(Emoji.Formatter.get_emoji_map(bio), Emoji.Formatter.get_emoji_map(name)) put_change(changeset, :emoji, emoji) else changeset