Files
chatterino2/src/providers/twitch/api
Paweł 776ce8bdbc Added subage and followage to usercard (#2023)
* Added subage and followage information to usercard

We are using Leppunen's API here to determine user's subage to the current channel and since that API call also returns followage information I decided to utilize that and save ourselves an extra Helix API call.
I also added new files specifying new class and methods for Ivr API, which can be very easily expanded with new methods in the future if we ever have to do that.
When I was coding I also saw couple unnecessary nitpicks which I fixed :)

* Added changelog entry

* remove empty lambda

* Update UserInfoPopup.cpp

* xd

Co-authored-by: fourtf <tf.four@gmail.com>
2020-10-04 18:32:52 +02:00
..

Twitch API

this folder describes what sort of API requests we do, what permissions are required for the requests etc

Kraken (V5)

We use a bunch of Kraken (V5) in Chatterino2.

Get User

URL: https://dev.twitch.tv/docs/v5/reference/users#get-user-by-id

Migration path: Unknown

  • We implement this in providers/twitch/api/Kraken.cpp getUser
    Used in:
    • UserInfoPopup to get the "created at" date of a user

Get Channel

URL: https://dev.twitch.tv/docs/v5/reference/channels#get-channel

Migration path: Unknown

  • We implement this in providers/twitch/api/Kraken.cpp getChannel
    Used in:
    • TwitchChannel::refreshTitle to check the current stream title/game of offline channels

Follow Channel

URL: https://dev.twitch.tv/docs/v5/reference/users#follow-channel
Requires user_follows_edit scope

Migration path: Unknown

  • We implement this API in providers/twitch/TwitchAccount.cpp followUser

Unfollow Channel

URL: https://dev.twitch.tv/docs/v5/reference/users#unfollow-channel
Requires user_follows_edit scope

Migration path: Unknown

  • We implement this API in providers/twitch/TwitchAccount.cpp unfollowUser

Get Cheermotes

URL: https://dev.twitch.tv/docs/v5/reference/bits#get-cheermotes

Migration path: Not checked

  • We implement this API in providers/twitch/TwitchChannel.cpp to resolve a chats available cheer emotes. This helps us parse incoming messages like pajaCheer1000

Get User Block List

URL: https://dev.twitch.tv/docs/v5/reference/users#get-user-block-list

Migration path: Unknown

  • We use this in providers/twitch/TwitchAccount.cpp loadIgnores

Block User

URL: https://dev.twitch.tv/docs/v5/reference/users#block-user
Requires user_blocks_edit scope

Migration path: Unknown

  • We use this in providers/twitch/TwitchAccount.cpp ignoreByID

Unblock User

URL: https://dev.twitch.tv/docs/v5/reference/users#unblock-user
Requires user_blocks_edit scope

Migration path: Unknown

  • We use this in providers/twitch/TwitchAccount.cpp unignoreByID

Get User Emotes

URL: https://dev.twitch.tv/docs/v5/reference/users#get-user-emotes
Requires user_subscriptions scope

Migration path: Unknown

  • We use this in providers/twitch/TwitchAccount.cpp loadEmotes to figure out which emotes a user is allowed to use!

AUTOMOD APPROVE

Unofficial documentation: https://discuss.dev.twitch.tv/t/allowing-others-aka-bots-to-use-twitchbot-reject/8508/2

  • We use this in providers/twitch/TwitchAccount.cpp autoModAllow to approve an automod deny/allow question

AUTOMOD DENY

Unofficial documentation: https://discuss.dev.twitch.tv/t/allowing-others-aka-bots-to-use-twitchbot-reject/8508/2

  • We use this in providers/twitch/TwitchAccount.cpp autoModDeny to deny an automod deny/allow question

Helix

Full Helix API reference: https://dev.twitch.tv/docs/api/reference

Get Users

URL: https://dev.twitch.tv/docs/api/reference#get-users

  • We implement this in providers/twitch/api/Helix.cpp fetchUsers.
    Used in:
    • UserInfoPopup to get ID and viewcount of username we clicked
    • CommandController to power any commands that need to get a user ID
    • Toasts to get the profile picture of a streamer who just went live
    • TwitchAccount ignore and unignore features to translate user name to user ID

Get Users Follows

URL: https://dev.twitch.tv/docs/api/reference#get-users-follows

  • We implement this in providers/twitch/api/Helix.cpp fetchUsersFollows
    Used in:
    • UserInfoPopup to get number of followers a user has

Get Streams

URL: https://dev.twitch.tv/docs/api/reference#get-streams

  • We implement this in providers/twitch/api/Helix.cpp fetchStreams
    Used in:
    • TwitchChannel to get live status, game, title, and viewer count of a channel
    • NotificationController to provide notifications for channels you might not have open in Chatterino, but are still interested in getting notifications for

TMI

The TMI api is undocumented.

Get Chatters

Undocumented

  • We use this in widgets/splits/Split.cpp showViewerList
  • We use this in providers/twitch/TwitchChannel.cpp refreshChatters