Move emoji glob setting to config.exs

Also, a bit of formatting, and the glob includes an "/emoji/" prefix to
make it more intuitive to users
This commit is contained in:
Jorty 2018-06-30 17:20:08 -04:00
parent 0bfbf15b37
commit c171f9790b
2 changed files with 23 additions and 14 deletions

View file

@ -12,6 +12,8 @@ config :pleroma, Pleroma.Repo, types: Pleroma.PostgresTypes
config :pleroma, Pleroma.Upload, uploads: "uploads"
config :pleroma, :emoji, shortcode_glob: "/emoji/by-shortcode/**/*.png"
# Configures the endpoint
config :pleroma, Pleroma.Web.Endpoint,
url: [host: "localhost"],

View file

@ -173,23 +173,30 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
end
def emoji(conn, _params) do
emoji_dir = Path.join(:code.priv_dir(:pleroma), "static/emoji")
static_dir = Path.join(:code.priv_dir(:pleroma), "static")
emoji_shortcode_glob =
Application.get_env(:pleroma, :emoji, [])
|> Keyword.get(:shortcode_glob)
shortcode_emoji_glob =
Path.join(
emoji_dir,
Application.get_env(:pleroma, :emoji, []) |>
Keyword.get(:glob, "by-shortcode/**/*.png")
)
shortcode_emoji =
Path.wildcard(shortcode_emoji_glob) |>
Enum.map(fn path ->
shortcode = Path.basename(path, ".png")
serve_path = Path.join("/emoji", Path.relative_to(path, emoji_dir))
{shortcode, serve_path}
end)
case emoji_shortcode_glob do
nil ->
[]
emoji = Enum.into(Formatter.get_custom_emoji(), shortcode_emoji) |> Enum.into(%{})
glob ->
Path.join(static_dir, glob)
|> Path.wildcard()
|> Enum.map(fn path ->
shortcode = Path.basename(path, ".png")
serve_path = Path.join("/", Path.relative_to(path, static_dir))
{shortcode, serve_path}
end)
end
emoji =
Enum.into(Formatter.get_custom_emoji(), shortcode_emoji)
|> Enum.into(%{})
json(conn, emoji)
end