diff options
author | lain <lain@soykaf.club> | 2021-01-07 10:06:39 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2021-01-07 10:06:39 +0000 |
commit | f1ca2ac64bf5a308401f3155360e94a058e99e4e (patch) | |
tree | 283c7bdbeff9e3bb0a65b9cea1b459f76daaf88d | |
parent | 5e128a6be30563adc3b8a938aa68d18ac04cdfa0 (diff) | |
parent | 48cd336a720086695613decc2a1a6852245c1df5 (diff) | |
download | pleroma-f1ca2ac64bf5a308401f3155360e94a058e99e4e.tar.gz |
Merge branch 'upstream/remote-emoji-support' into 'develop'
Upstream external emoji support
See merge request pleroma/pleroma!3238
-rw-r--r-- | config/emoji.txt | 1 | ||||
-rw-r--r-- | lib/pleroma/emoji/formatter.ex | 3 | ||||
-rw-r--r-- | test/pleroma/web/common_api_test.exs | 13 |
3 files changed, 16 insertions, 1 deletions
diff --git a/config/emoji.txt b/config/emoji.txt index 52b714ee5..a2c5add2e 100644 --- a/config/emoji.txt +++ b/config/emoji.txt @@ -1,3 +1,4 @@ firefox, /emoji/Firefox.gif, Gif,Fun blank, /emoji/blank.png, Fun dinosaur, /emoji/dino walking.gif, Gif +external_emoji, https://example.com/emoji.png diff --git a/lib/pleroma/emoji/formatter.ex b/lib/pleroma/emoji/formatter.ex index dc45b8a38..992b20e12 100644 --- a/lib/pleroma/emoji/formatter.ex +++ b/lib/pleroma/emoji/formatter.ex @@ -5,6 +5,7 @@ defmodule Pleroma.Emoji.Formatter do alias Pleroma.Emoji alias Pleroma.HTML + alias Pleroma.Web alias Pleroma.Web.MediaProxy def emojify(text) do @@ -43,7 +44,7 @@ defmodule Pleroma.Emoji.Formatter do Emoji.get_all() |> Enum.filter(fn {emoji, %Emoji{}} -> String.contains?(text, ":#{emoji}:") end) |> Enum.reduce(%{}, fn {name, %Emoji{file: file}}, acc -> - Map.put(acc, name, "#{Pleroma.Web.Endpoint.static_url()}#{file}") + Map.put(acc, name, to_string(URI.merge(Web.base_url(), file))) end) end diff --git a/test/pleroma/web/common_api_test.exs b/test/pleroma/web/common_api_test.exs index 585b2c174..b81035a9d 100644 --- a/test/pleroma/web/common_api_test.exs +++ b/test/pleroma/web/common_api_test.exs @@ -504,6 +504,19 @@ defmodule Pleroma.Web.CommonAPITest do end describe "posting" do + test "it adds an emoji on an external site" do + user = insert(:user) + {:ok, activity} = CommonAPI.post(user, %{status: "hey :external_emoji:"}) + + assert %{"external_emoji" => url} = Object.normalize(activity).data["emoji"] + assert url == "https://example.com/emoji.png" + + {:ok, activity} = CommonAPI.post(user, %{status: "hey :blank:"}) + + assert %{"blank" => url} = Object.normalize(activity).data["emoji"] + assert url == "#{Pleroma.Web.base_url()}/emoji/blank.png" + end + test "deactivated users can't post" do user = insert(:user, deactivated: true) assert {:error, _} = CommonAPI.post(user, %{status: "ye"}) |