From 8de890a0d9388979d7b86744dfbed7ac08635fee Mon Sep 17 00:00:00 2001
From: Roger Braun <roger@rogerbraun.net>
Date: Thu, 16 Nov 2017 09:40:06 +0100
Subject: [PATCH] Add custom emoji to Mastodon UI initial state.

---
 .../web/mastodon_api/mastodon_api_controller.ex       | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
index c15c47fa1..8b5714555 100644
--- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
+++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
@@ -113,8 +113,8 @@ def masto_instance(conn, _params) do
     json(conn, response)
   end
 
-  def custom_emojis(conn, _params) do
-    mastodon_emoji = Pleroma.Formatter.get_custom_emoji()
+  defp mastodonized_emoji do
+    Pleroma.Formatter.get_custom_emoji()
     |> Enum.map(fn {shortcode, relative_url} ->
       url = to_string URI.merge(Web.base_url(), relative_url)
       %{
@@ -123,6 +123,10 @@ def custom_emojis(conn, _params) do
         "url" => url
       }
     end)
+  end
+
+  def custom_emojis(conn, _params) do
+    mastodon_emoji = mastodonized_emoji()
     json conn, mastodon_emoji
   end
 
@@ -473,6 +477,7 @@ def index(%{assigns: %{user: user}} = conn, _params) do
     |> get_session(:oauth_token)
 
     if user && token do
+      mastodon_emoji = mastodonized_emoji()
       accounts = Map.put(%{}, user.id, AccountView.render("account.json", %{user: user}))
       initial_state = %{
         meta: %{
@@ -540,7 +545,7 @@ def index(%{assigns: %{user: user}} = conn, _params) do
         },
         push_subscription: nil,
         accounts: accounts,
-        custom_emojis: %{}
+        custom_emojis: mastodon_emoji
       } |> Poison.encode!
       conn
       |> put_layout(false)