This makes the Twitch plugin issue some API calls to fetch custom BetterTTV, FrankerFaceZ and 7tv emotes. With this information it can then detect them in messages, and embed them as emotes into IRCEvents. This in turn allows the Printer plugin to highlight them, much as it already does with official Twitch emotes.
The fetching is a one-time thing, done after connection established for global emotes (on GLOBALUSERSTATE) and upon joining home channels for channel-specific ones (on ROOMSTATE).
Detecting emotes is done manually by walking through channel message contents, word by word, checking if they exist in the custom emotes associative arrays.
edit: The setting to disable it was removed. The feature does incur a lot of AA lookups, but not an overwhelming amount, and the interplay between it and ecount makes it tricky to reason about when it should be disabled.
This makes the Twitch plugin issue some API calls to fetch custom BetterTTV, FrankerFaceZ and 7tv emotes. With this information it can then detect them in messages, and embed them as emotes into
IRCEvent
s. This in turn allows the Printer plugin to highlight them, much as it already does with official Twitch emotes.The fetching is a one-time thing, done after connection established for global emotes (on
GLOBALUSERSTATE
) and upon joining home channels for channel-specific ones (onROOMSTATE
).Detecting emotes is done manually by walking through channel message contents, word by word, checking if they exist in the custom emotes associative arrays.
edit: The setting to disable it was removed. The feature does incur a lot of AA lookups, but not an overwhelming amount, and the interplay between it and
ecount
makes it tricky to reason about when it should be disabled.