diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-09-16 16:40:20 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-09-16 16:40:20 +0200 |
commit | 959e993c7d112d9a30baae3d403687903a7f6a27 (patch) | |
tree | 17f53270e885b983ae7b6467c894f3ebd1142dd1 /lib | |
parent | 16b1fcd2719b744c81851e778df2519dc0131010 (diff) | |
download | pleroma-959e993c7d112d9a30baae3d403687903a7f6a27.tar.gz |
Apply incoming custom emoji.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/formatter.ex | 10 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/representers/activity_representer.ex | 4 |
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/pleroma/formatter.ex b/lib/pleroma/formatter.ex index f85eb04b7..e9f4bf06b 100644 --- a/lib/pleroma/formatter.ex +++ b/lib/pleroma/formatter.ex @@ -95,8 +95,14 @@ defmodule Pleroma.Formatter do @emoji @finmoji_with_filenames - def emojify(text) do - Enum.reduce(@emoji, text, fn ({emoji, file}, text) -> + def emojify(text, additional \\ nil) do + all_emoji = if additional do + @emoji ++ Map.to_list(additional) + else + @emoji + end + + Enum.reduce(all_emoji, text, fn ({emoji, file}, text) -> String.replace(text, ":#{emoji}:", "<img height='32px' width='32px' alt='#{emoji}' title='#{emoji}' src='#{file}' />") end) end diff --git a/lib/pleroma/web/twitter_api/representers/activity_representer.ex b/lib/pleroma/web/twitter_api/representers/activity_representer.ex index 29a9f3941..929e26bf0 100644 --- a/lib/pleroma/web/twitter_api/representers/activity_representer.ex +++ b/lib/pleroma/web/twitter_api/representers/activity_representer.ex @@ -135,11 +135,13 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do tags = activity.data["object"]["tag"] || [] possibly_sensitive = Enum.member?(tags, "nsfw") + html = HtmlSanitizeEx.basic_html(content) |> Formatter.emojify(object["emoji"]) + %{ "id" => activity.id, "uri" => activity.data["object"]["id"], "user" => UserView.render("show.json", %{user: user, for: opts[:for]}), - "statusnet_html" => HtmlSanitizeEx.basic_html(content) |> Formatter.emojify, + "statusnet_html" => html, "text" => HtmlSanitizeEx.strip_tags(content), "is_local" => activity.local, "is_post_verb" => true, |