commit: 14054dd582f905439bb73368335f93bbb9bc23c7
parent: 33b033421649f6a7354616ff3458b856ca89637c
Author: lambda <pleromagit@rogerbraun.net>
Date: Thu, 12 Jul 2018 05:56:29 +0000
Merge branch 'feature/auto-shortcodes' into 'develop'
Feature: automatic shortcodes for emoji
See merge request pleroma/pleroma!245
Diffstat:
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/config/config.exs b/config/config.exs
@@ -12,6 +12,8 @@ config :pleroma, Pleroma.Repo, types: Pleroma.PostgresTypes
config :pleroma, Pleroma.Upload, uploads: "uploads"
+config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png"]
+
# Configures the endpoint
config :pleroma, Pleroma.Web.Endpoint,
url: [host: "localhost"],
diff --git 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