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"],
end
def emoji(conn, _params) do
- emoji_dir = Path.join(:code.priv_dir(:pleroma), "static/emoji")
-
- shortcode_emoji_glob =
- Path.join(
- emoji_dir,
- Application.get_env(:pleroma, :emoji, []) |>
- Keyword.get(:glob, "by-shortcode/**/*.png")
- )
+ static_dir = Path.join(:code.priv_dir(:pleroma), "static")
+
+ emoji_shortcode_glob =
+ Application.get_env(:pleroma, :emoji, [])
+ |> Keyword.get(:shortcode_glob)
+
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 ->
+ []
+
+ 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(%{})
+ emoji =
+ Enum.into(Formatter.get_custom_emoji(), shortcode_emoji)
+ |> Enum.into(%{})
json(conn, emoji)
end