diff --git a/config/emoji.txt b/config/emoji.txt new file mode 100644 index 000000000..0e668e609 --- /dev/null +++ b/config/emoji.txt @@ -0,0 +1 @@ +firefox, /emoji/Firefox.gif diff --git a/lib/pleroma/formatter.ex b/lib/pleroma/formatter.ex index e9f4bf06b..728d2b3e8 100644 --- a/lib/pleroma/formatter.ex +++ b/lib/pleroma/formatter.ex @@ -93,7 +93,19 @@ def parse_mentions(text) do {finmoji, "/finmoji/128px/#{finmoji}-128.png"} end) - @emoji @finmoji_with_filenames + @emoji_from_file (with {:ok, file} <- File.read("config/emoji.txt") do + file + |> String.trim + |> String.split("\n") + |> Enum.map(fn(line) -> + [name, file] = String.split(line, ", ") + {name, file} + end) + else + _ -> [] + end) + + @emoji @finmoji_with_filenames ++ @emoji_from_file def emojify(text, additional \\ nil) do all_emoji = if additional do diff --git a/lib/pleroma/web/endpoint.ex b/lib/pleroma/web/endpoint.ex index e869448de..a1b4108cd 100644 --- a/lib/pleroma/web/endpoint.ex +++ b/lib/pleroma/web/endpoint.ex @@ -11,7 +11,7 @@ defmodule Pleroma.Web.Endpoint do at: "/media", from: "uploads", gzip: false plug Plug.Static, at: "/", from: :pleroma, - only: ~w(index.html static finmoji) + only: ~w(index.html static finmoji emoji) # Code reloading can be explicitly enabled under the # :code_reloader configuration of your endpoint. diff --git a/priv/static/emoji/Firefox.gif b/priv/static/emoji/Firefox.gif new file mode 100644 index 000000000..27e29b97a Binary files /dev/null and b/priv/static/emoji/Firefox.gif differ diff --git a/test/support/httpoison_mock.ex b/test/support/httpoison_mock.ex index 091fb9ded..21607ba95 100644 --- a/test/support/httpoison_mock.ex +++ b/test/support/httpoison_mock.ex @@ -240,6 +240,13 @@ def get("https://social.sakamoto.gq/.well-known/webfinger?resource=https://socia }} end + def get("https://pleroma.soykaf.com/.well-known/webfinger?resource=https://pleroma.soykaf.com/users/shp", [Accept: "application/xrd+xml"], []) do + {:ok, %Response{ + status_code: 200, + body: File.read!("test/fixtures/httpoison_mock/shp@pleroma.soykaf.com.webfigner") + }} + end + def get("https://squeet.me/xrd/?uri=lain@squeet.me", [Accept: "application/xrd+xml"], []) do {:ok, %Response{ status_code: 200, @@ -259,7 +266,13 @@ def get("https://social.sakamoto.gq/objects/0ccc1a2c-66b0-4305-b23a-7f7f2b040056 status_code: 200, body: File.read!("test/fixtures/httpoison_mock/sakamoto.atom") }} + end + def get("https://pleroma.soykaf.com/users/shp/feed.atom", _, _) do + {:ok, %Response{ + status_code: 200, + body: File.read!("test/fixtures/httpoison_mock/shp@pleroma.soykaf.com.feed") + }} end def get("http://social.heldscal.la/.well-known/host-meta", [], [follow_redirect: true]) do