aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-09-16 16:40:20 +0200
committerRoger Braun <roger@rogerbraun.net>2017-09-16 16:40:20 +0200
commit959e993c7d112d9a30baae3d403687903a7f6a27 (patch)
tree17f53270e885b983ae7b6467c894f3ebd1142dd1 /lib
parent16b1fcd2719b744c81851e778df2519dc0131010 (diff)
downloadpleroma-959e993c7d112d9a30baae3d403687903a7f6a27.tar.gz
Apply incoming custom emoji.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/formatter.ex10
-rw-r--r--lib/pleroma/web/twitter_api/representers/activity_representer.ex4
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,