|
|
|
@ -43,7 +43,7 @@ defmodule Pleroma.Formatter do
|
|
|
|
|
|
|
|
|
|
def emojify(text, nil), do: text
|
|
|
|
|
|
|
|
|
|
def emojify(text, emoji) do
|
|
|
|
|
def emojify(text, emoji, strip \\ false) do
|
|
|
|
|
Enum.reduce(emoji, text, fn {emoji, file}, text ->
|
|
|
|
|
emoji = HTML.strip_tags(emoji)
|
|
|
|
|
file = HTML.strip_tags(file)
|
|
|
|
@ -51,14 +51,24 @@ defmodule Pleroma.Formatter do
|
|
|
|
|
String.replace(
|
|
|
|
|
text,
|
|
|
|
|
":#{emoji}:",
|
|
|
|
|
"<img height='32px' width='32px' alt='#{emoji}' title='#{emoji}' src='#{
|
|
|
|
|
MediaProxy.url(file)
|
|
|
|
|
}' />"
|
|
|
|
|
if not strip do
|
|
|
|
|
"<img height='32px' width='32px' alt='#{emoji}' title='#{emoji}' src='#{
|
|
|
|
|
MediaProxy.url(file)
|
|
|
|
|
}' />"
|
|
|
|
|
else
|
|
|
|
|
""
|
|
|
|
|
end
|
|
|
|
|
)
|
|
|
|
|
|> HTML.filter_tags()
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def demojify(text) do
|
|
|
|
|
emojify(text, Emoji.get_all(), true)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def demojify(text, nil), do: text
|
|
|
|
|
|
|
|
|
|
def get_emoji(text) when is_binary(text) do
|
|
|
|
|
Enum.filter(Emoji.get_all(), fn {emoji, _} -> String.contains?(text, ":#{emoji}:") end)
|
|
|
|
|
end
|
|
|
|
@ -185,6 +195,9 @@ defmodule Pleroma.Formatter do
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def truncate(text, max_length \\ 200, omission \\ "...") do
|
|
|
|
|
# Remove trailing whitespace
|
|
|
|
|
text = Regex.replace(~r/([^ \t\r\n])([ \t]+$)/u, text, "\\g{1}")
|
|
|
|
|
|
|
|
|
|
if String.length(text) < max_length do
|
|
|
|
|
text
|
|
|
|
|
else
|
|
|
|
|