config :pleroma, Pleroma.Upload, uploads: "uploads"
-config :pleroma, :emoji, shortcode_glob: "/emoji/by-shortcode/**/*.png"
+config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png"]
# Configures the endpoint
config :pleroma, Pleroma.Web.Endpoint,
_ -> []
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
end
def emoji(conn, _params) do
- static_dir = Path.join(:code.priv_dir(:pleroma), "static")
-
- emoji_shortcode_glob =
- Application.get_env(:pleroma, :emoji, [])
- |> Keyword.get(:shortcode_glob)
-
- shortcode_emoji =
- 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(%{})
-
- json(conn, emoji)
+ json(conn, Enum.into(Formatter.get_custom_emoji(), %{}))
end
def follow_import(conn, %{"list" => %Plug.Upload{} = listfile}) do