diff options
author | lain <lain@soykaf.club> | 2020-12-02 16:46:19 +0100 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-12-02 16:46:19 +0100 |
commit | 8fb259e7395d4dd2bdac407b7eca0840ce490a99 (patch) | |
tree | 627c4fd718c1a6ea307be30c3b5069c5ed3ebe19 | |
parent | 3b3cf63118b12e7dc57b65225ea96510d9ce48ab (diff) | |
download | pleroma-8fb259e7395d4dd2bdac407b7eca0840ce490a99.tar.gz |
Emoji: Only accept RGI emoji.
"recommended for general interchange"
-rw-r--r-- | lib/pleroma/emoji.ex | 5 | ||||
-rw-r--r-- | test/pleroma/emoji_test.exs | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/pleroma/emoji.ex b/lib/pleroma/emoji.ex index 98644f84e..201212779 100644 --- a/lib/pleroma/emoji.ex +++ b/lib/pleroma/emoji.ex @@ -108,7 +108,10 @@ defmodule Pleroma.Emoji do @external_resource |> File.read!() |> String.split("\n") - |> Enum.filter(fn line -> line != "" and not String.starts_with?(line, "#") end) + |> Enum.filter(fn line -> + line != "" and not String.starts_with?(line, "#") and + String.contains?(line, "fully-qualified") + end) |> Enum.map(fn line -> line |> String.split(";", parts: 2) diff --git a/test/pleroma/emoji_test.exs b/test/pleroma/emoji_test.exs index 3070fb19f..97af25280 100644 --- a/test/pleroma/emoji_test.exs +++ b/test/pleroma/emoji_test.exs @@ -11,7 +11,11 @@ defmodule Pleroma.EmojiTest do refute Emoji.is_unicode_emoji?("X") refute Emoji.is_unicode_emoji?("ね") - assert Emoji.is_unicode_emoji?("☂") + # Only accept fully-qualified (RGI) emoji + # See http://www.unicode.org/reports/tr51/ + refute Emoji.is_unicode_emoji?("❤") + refute Emoji.is_unicode_emoji?("☂") + assert Emoji.is_unicode_emoji?("🥺") assert Emoji.is_unicode_emoji?("🤰") assert Emoji.is_unicode_emoji?("❤️") |