fix: sanitize emoji input to handle variation selectors (#774)

Signed-off-by: ispik <ispik@ispik.dev>
This commit is contained in:
İspik
2026-05-21 18:21:43 +03:00
committed by GitHub
parent b38499a05b
commit 2d308e03d5

View File

@@ -12,7 +12,7 @@ use crate::Database;
static PERMISSIBLE_EMOJIS: Lazy<HashSet<String>> = Lazy::new(|| { static PERMISSIBLE_EMOJIS: Lazy<HashSet<String>> = Lazy::new(|| {
include_str!("unicode_emoji.txt") include_str!("unicode_emoji.txt")
.split('\n') .split('\n')
.map(|x| x.into()) .map(|x| x.replace('\u{FE0F}', ""))
.collect() .collect()
}); });
@@ -108,7 +108,8 @@ impl Emoji {
db.fetch_emoji(emoji).await?; db.fetch_emoji(emoji).await?;
Ok(true) Ok(true)
} else { } else {
Ok(PERMISSIBLE_EMOJIS.contains(emoji)) let sanitized_emoji = emoji.replace('\u{FE0F}', "");
Ok(PERMISSIBLE_EMOJIS.contains(&sanitized_emoji))
} }
} }
} }