diff options
| author | Jorty <jorty@jort.space> | 2018-06-30 20:35:34 -0400 | 
|---|---|---|
| committer | Jorty <jorty@jort.space> | 2018-06-30 21:31:08 -0400 | 
| commit | 748fff6544cc70476bb0892a661d4d8c7f6ee295 (patch) | |
| tree | 7be2b78a8b44567d456329f00f2eb9b7b94c3021 | |
| parent | c171f9790bc2d6a1b215792ade1b1cfc7e458ac4 (diff) | |
| download | pleroma-748fff6544cc70476bb0892a661d4d8c7f6ee295.tar.gz pleroma-748fff6544cc70476bb0892a661d4d8c7f6ee295.zip  | |
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.
| -rw-r--r-- | config/config.exs | 2 | ||||
| -rw-r--r-- | lib/pleroma/formatter.ex | 23 | ||||
| -rw-r--r-- | lib/pleroma/web/twitter_api/controllers/util_controller.ex | 27 | 
3 files changed, 24 insertions, 28 deletions
diff --git a/config/config.exs b/config/config.exs index 96350d064..0616fe4fb 100644 --- a/config/config.exs +++ b/config/config.exs @@ -12,7 +12,7 @@ config :pleroma, Pleroma.Repo, types: Pleroma.PostgresTypes  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, 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  | 
