aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJorty <jorty@jort.space>2018-06-30 20:35:34 -0400
committerJorty <jorty@jort.space>2018-06-30 21:31:08 -0400
commit748fff6544cc70476bb0892a661d4d8c7f6ee295 (patch)
tree7be2b78a8b44567d456329f00f2eb9b7b94c3021 /lib
parentc171f9790bc2d6a1b215792ade1b1cfc7e458ac4 (diff)
downloadpleroma-748fff6544cc70476bb0892a661d4d8c7f6ee295.tar.gz
Fix auto-shortcode emoji
Emoji were broken due to `Pleroma.Formatter` not knowing about the auto-shortcode emoji. This moves that logic from `Pleroma.Web.TwitterAPI.UtilController` to `Pleroma.Formatter`. Additionally, it's now possible to specify multiple shortcode globs, and the default globs were changed to `["/emoji/custom/**/*.png"]`, since that's in the .gitignore and the files there would have to be shortcode emoji anyway.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/formatter.ex23
-rw-r--r--lib/pleroma/web/twitter_api/controllers/util_controller.ex27
2 files changed, 23 insertions, 27 deletions
diff --git a/lib/pleroma/formatter.ex b/lib/pleroma/formatter.ex
index df7ffbc41..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
diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex
index 73a46bb5e..7a0c37ce9 100644
--- a/lib/pleroma/web/twitter_api/controllers/util_controller.ex
+++ b/lib/pleroma/web/twitter_api/controllers/util_controller.ex
@@ -173,32 +173,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
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