Emoji: Also accept regional indicators
authorlain <lain@soykaf.club>
Thu, 3 Dec 2020 15:17:39 +0000 (16:17 +0100)
committerlain <lain@soykaf.club>
Thu, 3 Dec 2020 15:17:39 +0000 (16:17 +0100)
lib/pleroma/emoji.ex
test/pleroma/emoji_test.exs

index 201212779793f2cba1c5ad6899bbd4658a814613..513fb59f8fc3aceb3028187935d12d8d61d54828 100644 (file)
@@ -104,6 +104,11 @@ defmodule Pleroma.Emoji do
 
   @external_resource "lib/pleroma/emoji-test.txt"
 
+  regional_indicators =
+    Enum.map(127_462..127_487, fn codepoint ->
+      <<codepoint::utf8>>
+    end)
+
   emojis =
     @external_resource
     |> File.read!()
@@ -125,6 +130,8 @@ defmodule Pleroma.Emoji do
     end)
     |> Enum.uniq()
 
+  emojis = emojis ++ regional_indicators
+
   for emoji <- emojis do
     def is_unicode_emoji?(unquote(emoji)), do: true
   end
index 97af252808434e773f9be1a253e21da27aa18c89..9cfd7b46b3d93ca14c98294e445085dce2357259 100644 (file)
@@ -20,6 +20,11 @@ defmodule Pleroma.EmojiTest do
       assert Emoji.is_unicode_emoji?("🤰")
       assert Emoji.is_unicode_emoji?("❤️")
       assert Emoji.is_unicode_emoji?("🏳️‍⚧️")
+
+      # Additionally, we accept regional indicators.
+      assert Emoji.is_unicode_emoji?("🇵")
+      assert Emoji.is_unicode_emoji?("🇴")
+      assert Emoji.is_unicode_emoji?("🇬")
     end
   end