diff options
author | Vitor Mattos <vitor@php.rio> | 2022-05-16 12:58:58 -0300 |
---|---|---|
committer | Vitor Mattos <vitor@php.rio> | 2022-05-16 12:58:58 -0300 |
commit | 12849196ad70d431cc6636b858eedd641035822d (patch) | |
tree | 6de457126794888900228878acb3e3e88056cdc8 /apps | |
parent | 762d1ff0507069b0d3f9d5535f33d324cbbb7a8a (diff) | |
download | nextcloud-server-12849196ad70d431cc6636b858eedd641035822d.tar.gz nextcloud-server-12849196ad70d431cc6636b858eedd641035822d.zip |
Replace isValidEmoji by method in EmojiHelper
Signed-off-by: Vitor Mattos <vitor@php.rio>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/user_status/lib/Service/EmojiService.php | 41 |
1 files changed, 3 insertions, 38 deletions
diff --git a/apps/user_status/lib/Service/EmojiService.php b/apps/user_status/lib/Service/EmojiService.php index 0f197933872..9254c250b6b 100644 --- a/apps/user_status/lib/Service/EmojiService.php +++ b/apps/user_status/lib/Service/EmojiService.php @@ -26,6 +26,7 @@ declare(strict_types=1); */ namespace OCA\UserStatus\Service; +use OC\Comments\EmojiHelper; use OCP\IDBConnection; /** @@ -60,43 +61,7 @@ class EmojiService { * @return bool */ public function isValidEmoji(string $emoji): bool { - $intlBreakIterator = \IntlBreakIterator::createCharacterInstance(); - $intlBreakIterator->setText($emoji); - - $characterCount = 0; - while ($intlBreakIterator->next() !== \IntlBreakIterator::DONE) { - $characterCount++; - } - - if ($characterCount !== 1) { - return false; - } - - $codePointIterator = \IntlBreakIterator::createCodePointInstance(); - $codePointIterator->setText($emoji); - - foreach ($codePointIterator->getPartsIterator() as $codePoint) { - $codePointType = \IntlChar::charType($codePoint); - - // If the current code-point is an emoji or a modifier (like a skin-tone) - // just continue and check the next character - if ($codePointType === \IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL || - $codePointType === \IntlChar::CHAR_CATEGORY_MODIFIER_LETTER || - $codePointType === \IntlChar::CHAR_CATEGORY_OTHER_SYMBOL || - $codePointType === \IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES) { - continue; - } - - // If it's neither a modifier nor an emoji, we only allow - // a zero-width-joiner or a variation selector 16 - $codePointValue = \IntlChar::ord($codePoint); - if ($codePointValue === 8205 || $codePointValue === 65039) { - continue; - } - - return false; - } - - return true; + $emojiHelper = new EmojiHelper($this->db); + return $emojiHelper->isValidEmoji($emoji); } } |