Chatterino
|
this folder describes what sort of API requests we do, what permissions are required for the requests etc
Full Helix API reference: https://dev.twitch.tv/docs/api/reference
If you're adding support for a new endpoint, these are the things you should know.
IHelix
class. Naming should reflect the API name as best as possible.Helix
class.MockHelix
class in the tests/src/HighlightController.cpp
file.For a simple example, see the updateUserChatColor
function and its error enum HelixUpdateUserChatColorError
. The API is used in the "/color" command in CommandController.cpp
URL: https://dev.twitch.tv/docs/api/reference#get-users
Used in:
UserInfoPopup
to get ID, displayName, createdAt of username we clickedCommandController
to power any commands that need to get a user IDToasts
to get the profile picture of a streamer who just went liveTwitchAccount
block and unblock features to translate user name to user IDURL: https://dev.twitch.tv/docs/api/reference#get-users-follows
Used in:
UserInfoPopup
to get number of followers a user hasURL: https://dev.twitch.tv/docs/api/reference#get-streams
Used in:
TwitchChannel
to get live status, game, title, and viewer count of a channelNotificationController
to provide notifications for channels you might not have open in Chatterino, but are still interested in getting notifications forURL: https://dev.twitch.tv/docs/api/reference#create-clip Requires clips:edit
scope
Used in:
TwitchChannel
to create a clip of a live broadcastURL: https://dev.twitch.tv/docs/api/reference#get-channel-information
Used in:
TwitchChannel
to refresh stream titleURL: https://dev.twitch.tv/docs/api/reference#modify-channel-information Requires channel:manage:broadcast
scope
Used in:
/setgame
to update the game in the current channel/settitle
to update the title in the current channelURL: https://dev.twitch.tv/docs/api/reference/#create-stream-marker Requires user:edit:broadcast
scope
Used in:
controllers/commands/CommandController.cpp
in /marker commandURL: https://dev.twitch.tv/docs/api/reference#get-user-block-list Requires user:read:blocked_users
scope
Used in:
providers/twitch/TwitchAccount.cpp loadBlocks
to load list of blocked (blocked) users by current userURL: https://dev.twitch.tv/docs/api/reference#block-user Requires user:manage:blocked_users
scope
Used in:
widgets/dialogs/UserInfoPopup.cpp
to block a user via checkbox in the usercardcontrollers/commands/CommandController.cpp
to block a user via "/block" commandURL: https://dev.twitch.tv/docs/api/reference#unblock-user Requires user:manage:blocked_users
scope
Used in:
widgets/dialogs/UserInfoPopup.cpp
to unblock a user via checkbox in the usercardcontrollers/commands/CommandController.cpp
to unblock a user via "/unblock" commandURL: https://dev.twitch.tv/docs/api/reference#search-categories
Used in:
controllers/commands/CommandController.cpp
in /setgame
command to fuzzy search for game titlesURL: https://dev.twitch.tv/docs/api/reference#manage-held-automod-messages Requires moderator:manage:automod
scope
Used in:
providers/twitch/TwitchAccount.cpp
to approve/deny held AutoMod messagesURL: https://dev.twitch.tv/docs/api/reference/#get-cheermotes
Used in:
providers/twitch/TwitchChannel.cpp
to resolve a chats available cheer emotes. This helps us parse incoming messages like pajaCheer1000
URL: https://dev.twitch.tv/docs/api/reference#get-emote-sets
Not used anywhere at the moment. Could be useful in the future for loading emotes from Helix.
URL: https://dev.twitch.tv/docs/api/reference#get-channel-emotes
Not used anywhere at the moment.
The TMI api is undocumented.
Undocumented
widgets/splits/Split.cpp showViewerList
providers/twitch/TwitchChannel.cpp refreshChatters