Implement workaround for combined emoji (#3469)

This commit is contained in:
Mm2PL
2022-01-11 00:18:02 +00:00
committed by GitHub
parent dfa3818a70
commit 820099821a
5 changed files with 47 additions and 7 deletions
+8 -2
View File
@@ -106,9 +106,11 @@ namespace {
for (const auto jsonMessage : jsonMessages)
{
auto content = jsonMessage.toString().toUtf8();
auto content = jsonMessage.toString();
content.replace(COMBINED_FIXER, ZERO_WIDTH_JOINER);
auto message = Communi::IrcMessage::fromData(content, nullptr);
auto message =
Communi::IrcMessage::fromData(content.toUtf8(), nullptr);
if (message->command() == "CLEARCHAT")
{
@@ -365,6 +367,10 @@ void TwitchChannel::sendMessage(const QString &message)
// Do last message processing
QString parsedMessage = app->emotes->emojis.replaceShortCodes(message);
// This is to make sure that combined emoji go through properly, see
// https://github.com/Chatterino/chatterino2/issues/3384 and
// https://mm2pl.github.io/emoji_rfc.pdf for more details
parsedMessage.replace(ZERO_WIDTH_JOINER, ESCAPE_TAG);
parsedMessage = parsedMessage.simplified();
if (parsedMessage.isEmpty())