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..
Reads and writes resource files to disk, ensure that they're there and properly formatted.
Registers a new TwitchPlugin.Room as we join a channel, so there's always a state struct available.
Start any key generation terminal wizard(s) before connecting to the server.
Loads all resources from disk.
Bells on any message, if the TwitchSettings.bellOnMessage setting is set. Also counts emotes for ecount and records active viewers.
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.
Sets up various things after we have successfully logged onto the server.
Fetches global custom BetterTV, FrankerFaceZ and 7tv emotes.
Bells on any important event, like subscriptions, cheers and raids, if the TwitchSettings.bellOnImportant setting is set.
Sets up a fiber to periodically cache followers.
Fetches custom BetterTV, FrankerFaceZ and 7tv emotes for a any non-home channel iff version TwitchCustomEmotesEverywhere.
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).
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.
Initialises the response bucket, else its internal Mutex will be null and cause a segfault when trying to lock it.
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.
https://github.com/zorael/kameloso/wiki/Current-plugins#twitch, kameloso.plugins.twitch.api, kameloso.plugins.twitch.common, kameloso.plugins.twitch.providers.twitch, kameloso.plugins.twitch.providers.google, kameloso.plugins.twitch.providers.spotify, kameloso.plugins.common, kameloso.plugins.common.misc
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 Quotes plugin for streamer quotes, the Timer plugin for timed announcements, the Oneliners plugin for oneliner commands, etc.