logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 14054dd582f905439bb73368335f93bbb9bc23c7
parent: 33b033421649f6a7354616ff3458b856ca89637c
Author: lambda <pleromagit@rogerbraun.net>
Date:   Thu, 12 Jul 2018 05:56:29 +0000

Merge branch 'feature/auto-shortcodes' into 'develop'

Feature: automatic shortcodes for emoji

See merge request pleroma/pleroma!245

Diffstat:

Mconfig/config.exs2++
Mlib/pleroma/formatter.ex23++++++++++++++++++++++-
2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/config/config.exs b/config/config.exs @@ -12,6 +12,8 @@ config :pleroma, Pleroma.Repo, types: Pleroma.PostgresTypes config :pleroma, Pleroma.Upload, uploads: "uploads" +config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png"] + # Configures the endpoint config :pleroma, Pleroma.Web.Endpoint, url: [host: "localhost"], diff --git 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