summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2021-01-07 10:06:39 +0000
committerlain <lain@soykaf.club>2021-01-07 10:06:39 +0000
commitf1ca2ac64bf5a308401f3155360e94a058e99e4e (patch)
tree283c7bdbeff9e3bb0a65b9cea1b459f76daaf88d
parent5e128a6be30563adc3b8a938aa68d18ac04cdfa0 (diff)
parent48cd336a720086695613decc2a1a6852245c1df5 (diff)
Merge branch 'upstream/remote-emoji-support' into 'develop'
Upstream external emoji support See merge request pleroma/pleroma!3238
-rw-r--r--config/emoji.txt1
-rw-r--r--lib/pleroma/emoji/formatter.ex3
-rw-r--r--test/pleroma/web/common_api_test.exs13
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"})