X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fformatter.ex;h=0aaf215383c6168f32fe4b4e06a988a9e6f27f5a;hb=1c40a631e809ed7ab7bdd0ef46ff97a124b858e8;hp=d23a284caf1966414a322e9a0eb3ad66a55d35e0;hpb=a8df7fc69041e8d7a6ed71621159d2f7487e1ce7;p=akkoma diff --git a/lib/pleroma/formatter.ex b/lib/pleroma/formatter.ex index d23a284ca..0aaf21538 100644 --- a/lib/pleroma/formatter.ex +++ b/lib/pleroma/formatter.ex @@ -116,7 +116,28 @@ defmodule Pleroma.Formatter do _ -> [] end) - @emoji @finmoji_with_filenames ++ @emoji_from_file + @emoji_from_globs ( + static_path = Path.join(:code.priv_dir(:pleroma), "static") + + globs = + Application.get_env(:pleroma, :emoji, []) + |> Keyword.get(:shortcode_globs, []) + + paths = + Enum.map(globs, fn glob -> + Path.join(static_path, glob) + |> Path.wildcard() + end) + |> Enum.concat() + + Enum.map(paths, fn path -> + shortcode = Path.basename(path, Path.extname(path)) + external_path = Path.join("/", Path.relative_to(path, static_path)) + {shortcode, external_path} + end) + ) + + @emoji @finmoji_with_filenames ++ @emoji_from_globs ++ @emoji_from_file def emojify(text, emoji \\ @emoji) def emojify(text, nil), do: text @@ -200,7 +221,9 @@ defmodule Pleroma.Formatter do ap_id = info["source_data"]["url"] || ap_id short_match = String.split(match, "@") |> tl() |> hd() - {uuid, "@#{short_match}"} + + {uuid, + "@#{short_match}"} end) {subs, uuid_text}