Functions for accessing the Twitch API. For internal use.
Common Twitch bits and bobs.
Functions related to importing and embedding custom emotes.
Twitch plugin stub, to provide lines to the configuration file even when the bot isn't compiled in.
Alias to SRM.
The Twitch plugin is an example Twitch streamer bot. It contains some basic tools for streamers, and the audience thereof.
Song requests may be either disabled, or either in YouTube or Spotify mode.
Appends a Stream to the history file.
Helper function to complain about missing Twitch authorisation tokens..
Generates and delays Twitch authorisation token expiry reminders.
Retrieves the pointer to a TwitchPlugin.Room by name, creating it first if one doesn't exist.
Reads and writes resource files to disk, ensure that they're there and properly formatted.
Start any key generation terminal wizard(s) before connecting to the server.
Loads all resources from disk.
Bells on certain messages depending on the current settings.
Starts a commercial in the current channel.
!ecount; reporting how many times a Twitch emote has been seen.
Ends a Twitch poll.
Implements "Follow Age", or the ability to query the server how long you (or a specified user) have been a follower of the current channel.
Deletes recent messages containing a supplied word or phrase.
Repeats a given message n number of times.
Changes the game of the current channel.
Changes the title of the current channel.
Emits a shoutout to another streamer.
Implements !songrequest, allowing viewers to request songs (actually YouTube videos or Spotify tracks) to be added to the streamer's playlist.
Starts a Twitch poll.
Reports the number of subscribers of the current channel.
Reports how long the streamer has been streaming.
Hides a user's messages (making them "disappear") by briefly timing them out.
Implements !watchtime; the ability to query the bot for how long the user (or a specified user) has been watching any of the channel's streams.
Increments emote counters.
Sets up various things after we have successfully logged onto the server.
Fetches global custom BetterTV, FrankerFaceZ and 7tv emotes.
Sets up a fiber to periodically cache followers.
Fetches custom BetterTV, FrankerFaceZ and 7tv emotes for a any non-home channel iff version the relevant configuration bool is set.
Records the room ID of a home channel, and queries the Twitch servers for the display name of its broadcaster.
Registers a new TwitchPlugin.Room as we join a channel, so there's always a state struct available.
Removes a channel's corresponding TwitchPlugin.Room when we leave it.
Warns if we're not a moderator when we join a home channel.
Hijacks a reference to a IRCEvent and modifies the sender and target class based on their badges (and the current settings).
Infers a user's class based on their badge(s).
Re-imports custom emotes for all channels for which we have previously imported them.
Reloads the plugin, loading resources from disk and re-importing custom emotes.
Reports how long a broadcast has currently been ongoing, up until now lasted, or previously lasted.
Saves the passed resource to disk, but in JSON format.
Saves Twitch secrets to disk, in JSON format.
Sorts a comma-separated list of badges so that the badges in the badgeOrder array are placed first, in the order they appear in the array.
Starts room monitors as Fibers for a given channel.
Starts a saver routine.
Starts a validator routine.
De-initialises the plugin. Shuts down any persistent worker threads.
Credentials needed to access APIs like that of Google and Spotify.
Embodiment of the notion of someone following someone else on Twitch.
All Twitch plugin runtime settings.
This is a Twitch channel bot. It supports song requests, counting how many times an emote has been used, reporting how long a viewer has been a follower, how much time they have spent watching the stream, and some miscellanea.
For local use it can also emit some terminal bells on certain events, to draw attention.
If the promote* settings are toggled, some viewers will be automatically given privileges based on their channel "status"; one of broadcaster, moderator and VIPs. Viewers that don't fall into any of those categories are not given any special permissions unless awarded manually. Nothing promotes into the whitelist class as it's meant to be assigned to manually.
Mind that the majority of the other plugins still work on Twitch, so you also have the Counter plugin for death counters, the Quote plugin for streamer quotes, the Timer plugin for timed announcements, the Oneliner plugin for oneliner commands, etc.