Update emote parsing (#1714)

Fixes #1707
This commit is contained in:
pajlada
2020-09-26 08:21:46 -04:00
committed by GitHub
parent d9e6488be3
commit 20e4d6b3d2
4 changed files with 147 additions and 84 deletions
+14 -9
View File
@@ -18,6 +18,13 @@ using EmotePtr = std::shared_ptr<const Emote>;
class Channel;
class TwitchChannel;
struct TwitchEmoteOccurence {
int start;
int end;
EmotePtr ptr;
EmoteName name;
};
class TwitchMessageBuilder : public SharedMessageBuilder
{
public:
@@ -52,19 +59,17 @@ private:
void parseMessageID();
void parseRoomID();
void appendUsername();
void runIgnoreReplaces(
std::vector<std::tuple<int, EmotePtr, EmoteName>> &twitchEmotes);
void runIgnoreReplaces(std::vector<TwitchEmoteOccurence> &twitchEmotes);
boost::optional<EmotePtr> getTwitchBadge(const Badge &badge);
void appendTwitchEmote(
const QString &emote,
std::vector<std::tuple<int, EmotePtr, EmoteName>> &vec,
std::vector<int> &correctPositions);
void appendTwitchEmote(const QString &emote,
std::vector<TwitchEmoteOccurence> &vec,
std::vector<int> &correctPositions);
Outcome tryAppendEmote(const EmoteName &name);
void addWords(
const QStringList &words,
const std::vector<std::tuple<int, EmotePtr, EmoteName>> &twitchEmotes);
void addWords(const QStringList &words,
const std::vector<TwitchEmoteOccurence> &twitchEmotes);
void addTextOrEmoji(EmotePtr emote) override;
void addTextOrEmoji(const QString &value) override;