From fe7804e42d27ca46290cfe52ffc01d4e520849b5 Mon Sep 17 00:00:00 2001
From: eal <eal@waifu.club>
Date: Thu, 19 Oct 2017 22:51:56 +0300
Subject: [PATCH] Add an API endpoint for emoji.

---
 lib/pleroma/formatter.ex                                   | 5 +++++
 lib/pleroma/web/router.ex                                  | 7 ++++---
 lib/pleroma/web/twitter_api/controllers/util_controller.ex | 5 +++++
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/lib/pleroma/formatter.ex b/lib/pleroma/formatter.ex
index a5eb3b268..f062d9a58 100644
--- a/lib/pleroma/formatter.ex
+++ b/lib/pleroma/formatter.ex
@@ -122,4 +122,9 @@ def emojify(text, additional \\ nil) do
   def get_emoji(text) do
     Enum.filter(@emoji, fn ({emoji, _}) -> String.contains?(text, ":#{emoji}:") end)
   end
+
+  def get_custom_emoji() do
+    @emoji
+    |> Enum.into %{}
+  end
 end
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index 8497685a6..cb818b3cc 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -33,14 +33,15 @@ def user_fetcher(username) do
     plug :accepts, ["html", "json"]
   end
 
-  pipeline :password_reset do
-    plug :accepts, ["html"]
+  pipeline :pleroma_api do
+    plug :accepts, ["html", "json"]
   end
 
   scope "/api/pleroma", Pleroma.Web.TwitterAPI do
-    pipe_through :password_reset
+    pipe_through :pleroma_api
     get "/password_reset/:token", UtilController, :show_password_reset
     post "/password_reset", UtilController, :password_reset
+    get "/emoji", UtilController, :emoji
   end
 
   scope "/oauth", Pleroma.Web.OAuth do
diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex
index 11d8fa6c2..792ae2a64 100644
--- a/lib/pleroma/web/twitter_api/controllers/util_controller.ex
+++ b/lib/pleroma/web/twitter_api/controllers/util_controller.ex
@@ -1,6 +1,7 @@
 defmodule Pleroma.Web.TwitterAPI.UtilController do
   use Pleroma.Web, :controller
   alias Pleroma.Web
+  alias Pleroma.Formatter
 
   alias Pleroma.{Repo, PasswordResetToken, User}
 
@@ -68,4 +69,8 @@ def version(conn, _params) do
       _ -> json(conn, version)
     end
   end
+
+  def emoji(conn, _params) do
+    json conn, Formatter.get_custom_emoji()
+  end
 end