10 #include <QStringList> 13 #include <boost/optional.hpp> 16 #include <unordered_set> 22 template <
typename... T>
34 : id(jsonObject.value(
"id").toString())
35 , login(jsonObject.value(
"login").toString())
36 , displayName(jsonObject.value(
"display_name").toString())
37 , createdAt(jsonObject.value(
"created_at").toString())
38 , description(jsonObject.value(
"description").toString())
39 , profileImageUrl(jsonObject.value(
"profile_image_url").toString())
61 : fromId(jsonObject.value(
"from_id").toString())
62 , fromName(jsonObject.value(
"from_name").toString())
63 , toId(jsonObject.value(
"to_id").toString())
64 , toName(jsonObject.value(
"to_name").toString())
65 , followedAt(jsonObject.value(
"followed_at").toString())
72 std::vector<HelixUsersFollowsRecord>
data;
74 : total(jsonObject.value(
"total").toInt())
76 const auto &jsonData = jsonObject.value(
"data").toArray();
77 std::transform(jsonData.begin(), jsonData.end(),
78 std::back_inserter(this->data),
79 [](
const QJsonValue &record) {
116 : id(jsonObject.value(
"id").toString())
117 , userId(jsonObject.value(
"user_id").toString())
118 , userLogin(jsonObject.value(
"user_login").toString())
119 , userName(jsonObject.value(
"user_name").toString())
120 , gameId(jsonObject.value(
"game_id").toString())
121 , gameName(jsonObject.value(
"game_name").toString())
122 , type(jsonObject.value(
"type").toString())
123 , title(jsonObject.value(
"title").toString())
124 , viewerCount(jsonObject.value(
"viewer_count").toInt())
125 , startedAt(jsonObject.value(
"started_at").toString())
126 , language(jsonObject.value(
"language").toString())
127 , thumbnailUrl(jsonObject.value(
"thumbnail_url").toString())
138 : id(jsonObject.value(
"id").toString())
139 , name(jsonObject.value(
"name").toString())
140 , boxArtUrl(jsonObject.value(
"box_art_url").toString())
150 : id(jsonObject.value(
"id").toString())
151 , editUrl(jsonObject.value(
"edit_url").toString())
165 : userId(jsonObject.value(
"broadcaster_id").toString())
166 , name(jsonObject.value(
"broadcaster_name").toString())
167 , language(jsonObject.value(
"broadcaster_language").toString())
168 , gameId(jsonObject.value(
"game_id").toString())
169 , gameName(jsonObject.value(
"game_name").toString())
170 , title(jsonObject.value(
"title").toString())
182 : createdAt(jsonObject.value(
"created_at").toString())
183 , description(jsonObject.value(
"description").toString())
184 , id(jsonObject.value(
"id").toString())
185 , positionSeconds(jsonObject.value(
"position_seconds").toInt())
196 : userId(jsonObject.value(
"user_id").toString())
197 , userName(jsonObject.value(
"user_login").toString())
198 , displayName(jsonObject.value(
"display_name").toString())
209 : imageURL1x(Url{jsonObject.value(
"1").toString()})
210 , imageURL2x(Url{jsonObject.value(
"2").toString()})
211 , imageURL4x(Url{jsonObject.value(
"4").toString()})
226 : id(jsonObject.value(
"id").toString())
227 , color(jsonObject.value(
"color").toString())
228 , minBits(jsonObject.value(
"min_bits").toInt())
229 , darkAnimated(jsonObject.value(
"images")
235 , darkStatic(jsonObject.value(
"images")
241 , lightAnimated(jsonObject.value(
"images")
247 , lightStatic(jsonObject.value(
"images")
260 std::vector<HelixCheermoteTier>
tiers;
263 : prefix(jsonObject.value(
"prefix").toString())
264 , type(jsonObject.value(
"type").toString())
266 for (
const auto &tier : jsonObject.value(
"tiers").toArray())
268 this->tiers.emplace_back(tier.toObject());
279 : setId(jsonObject.value(
"emote_set_id").toString())
280 , ownerId(jsonObject.value(
"owner_id").toString())
281 , emoteType(jsonObject.value(
"emote_type").toString())
294 : emoteId(jsonObject.value(
"id").toString())
295 , name(jsonObject.value(
"name").toString())
296 , type(jsonObject.value(
"emote_type").toString())
297 , setId(jsonObject.value(
"emote_set_id").toString())
299 .replace(
"{id}", this->emoteId)
300 .replace(
"{scale}",
"3.0"))
310 const boost::optional<int>
317 : broadcasterId(jsonObject.value(
"broadcaster_id").toString())
318 , emoteMode(jsonObject.value(
"emote_mode").toBool())
319 , followerModeDuration(boost::make_optional(
320 jsonObject.value(
"follower_mode").toBool(),
321 jsonObject.value(
"follower_mode_duration").toInt()))
322 , nonModeratorChatDelayDuration(boost::make_optional(
323 jsonObject.value(
"non_moderator_chat_delay").toBool(),
324 jsonObject.value(
"non_moderator_chat_delay_duration").toInt()))
325 , slowModeWaitTime(boost::make_optional(
326 jsonObject.value(
"slow_mode").toBool(),
327 jsonObject.value(
"slow_mode_wait_time").toInt()))
328 , subscriberMode(jsonObject.value(
"subscriber_mode").toBool())
329 , uniqueChatMode(jsonObject.value(
"unique_chat_mode").toBool())
345 : userId(jsonObject.value(
"user_id").toString())
346 , userName(jsonObject.value(
"user_name").toString())
347 , userLogin(jsonObject.value(
"user_login").toString())
360 : total(jsonObject.value(
"total").toInt())
361 , cursor(jsonObject.value(
"pagination")
366 const auto &data = jsonObject.value(
"data").toArray();
367 for (
const auto &chatter : data)
369 auto userLogin = chatter.toObject().value(
"user_login").toString();
370 this->chatters.insert(userLogin);
384 : cursor(jsonObject.value(
"pagination")
389 const auto &data = jsonObject.value(
"data").toArray();
390 for (
const auto &mod : data)
394 this->moderators.push_back(moderator);
612 auto jsonData = jsonObject.value(
"data").toArray().at(0).toObject();
613 this->length = jsonData.value(
"length").toInt();
614 this->message = jsonData.value(
"message").toString();
615 this->retryAfter = jsonData.value(
"retry_after").toInt();
634 template <
typename... T>
638 virtual void fetchUsers(
639 QStringList userIds, QStringList userLogins,
640 ResultCallback<std::vector<HelixUser>> successCallback,
642 virtual void getUserByName(QString userName,
645 virtual void getUserById(QString userId,
650 virtual void fetchUsersFollows(
651 QString fromId, QString toId,
655 virtual void getUserFollowers(
661 virtual void fetchStreams(
662 QStringList userIds, QStringList userLogins,
663 ResultCallback<std::vector<HelixStream>> successCallback,
665 std::function<
void()> finallyCallback) = 0;
667 virtual void getStreamById(
670 std::function<
void()> finallyCallback) = 0;
672 virtual void getStreamByName(
675 std::function<
void()> finallyCallback) = 0;
678 virtual void fetchGames(
679 QStringList gameIds, QStringList gameNames,
680 ResultCallback<std::vector<HelixGame>> successCallback,
684 virtual void searchGames(
686 ResultCallback<std::vector<HelixGame>> successCallback,
689 virtual void getGameById(QString gameId,
694 virtual void createClip(QString channelId,
697 std::function<
void()> finallyCallback) = 0;
700 virtual void getChannel(QString broadcasterId,
705 virtual void createStreamMarker(
711 virtual void loadBlocks(
712 QString userId, ResultCallback<std::vector<HelixBlock>> successCallback,
716 virtual void blockUser(QString targetUserId,
717 std::function<
void()> successCallback,
721 virtual void unblockUser(QString targetUserId,
722 std::function<
void()> successCallback,
726 virtual void updateChannel(
727 QString broadcasterId, QString gameId, QString language, QString title,
732 virtual void manageAutoModMessages(
733 QString userID, QString msgID, QString action,
734 std::function<
void()> successCallback,
738 virtual void getCheermotes(
739 QString broadcasterId,
740 ResultCallback<std::vector<HelixCheermoteSet>> successCallback,
744 virtual void getEmoteSetData(
749 virtual void getChannelEmotes(
750 QString broadcasterId,
751 ResultCallback<std::vector<HelixChannelEmote>> successCallback,
755 virtual void updateUserChatColor(
758 failureCallback) = 0;
761 virtual void deleteChatMessages(
762 QString broadcasterID, QString moderatorID, QString messageID,
765 failureCallback) = 0;
768 virtual void addChannelModerator(
771 failureCallback) = 0;
774 virtual void removeChannelModerator(
777 failureCallback) = 0;
780 virtual void sendChatAnnouncement(
781 QString broadcasterID, QString moderatorID, QString message,
784 failureCallback) = 0;
787 virtual void addChannelVIP(
792 virtual void removeChannelVIP(
795 failureCallback) = 0;
800 virtual void unbanUser(
801 QString broadcasterID, QString moderatorID, QString userID,
807 virtual void startRaid(
808 QString fromBroadcasterID, QString toBroadcasterID,
814 virtual void cancelRaid(
821 virtual void updateEmoteMode(
822 QString broadcasterID, QString moderatorID,
bool emoteMode,
825 failureCallback) = 0;
829 virtual void updateFollowerMode(
830 QString broadcasterID, QString moderatorID,
831 boost::optional<int> followerModeDuration,
834 failureCallback) = 0;
838 virtual void updateNonModeratorChatDelay(
839 QString broadcasterID, QString moderatorID,
840 boost::optional<int> nonModeratorChatDelayDuration,
843 failureCallback) = 0;
847 virtual void updateSlowMode(
848 QString broadcasterID, QString moderatorID,
849 boost::optional<int> slowModeWaitTime,
852 failureCallback) = 0;
856 virtual void updateSubscriberMode(
857 QString broadcasterID, QString moderatorID,
bool subscriberMode,
860 failureCallback) = 0;
864 virtual void updateUniqueChatMode(
865 QString broadcasterID, QString moderatorID,
bool uniqueChatMode,
868 failureCallback) = 0;
872 virtual void banUser(
873 QString broadcasterID, QString moderatorID, QString userID,
874 boost::optional<int> duration, QString reason,
880 virtual void sendWhisper(
881 QString fromUserID, QString toUserID, QString message,
888 virtual void getChatters(
889 QString broadcasterID, QString moderatorID,
int maxChattersToFetch,
896 virtual void getModerators(
897 QString broadcasterID,
int maxModeratorsToFetch,
898 ResultCallback<std::vector<HelixModerator>> successCallback,
902 virtual void getChannelVIPs(
903 QString broadcasterID,
904 ResultCallback<std::vector<HelixVip>> successCallback,
908 virtual void startCommercial(
909 QString broadcasterID,
int length,
912 failureCallback) = 0;
914 virtual void update(QString clientId, QString oauthToken) = 0;
918 virtual void updateChatSettings(
919 QString broadcasterID, QString moderatorID, QJsonObject json,
922 failureCallback) = 0;
929 void fetchUsers(QStringList userIds, QStringList userLogins,
930 ResultCallback<std::vector<HelixUser>> successCallback,
932 void getUserByName(QString userName,
939 void fetchUsersFollows(
940 QString fromId, QString toId,
944 void getUserFollowers(
950 void fetchStreams(QStringList userIds, QStringList userLogins,
951 ResultCallback<std::vector<HelixStream>> successCallback,
953 std::function<
void()> finallyCallback)
final;
955 void getStreamById(QString userId,
958 std::function<
void()> finallyCallback)
final;
960 void getStreamByName(QString userName,
963 std::function<
void()> finallyCallback)
final;
966 void fetchGames(QStringList gameIds, QStringList gameNames,
967 ResultCallback<std::vector<HelixGame>> successCallback,
971 void searchGames(QString gameName,
972 ResultCallback<std::vector<HelixGame>> successCallback,
979 void createClip(QString channelId,
982 std::function<
void()> finallyCallback)
final;
985 void getChannel(QString broadcasterId,
990 void createStreamMarker(
991 QString broadcasterId, QString description,
996 void loadBlocks(QString userId,
997 ResultCallback<std::vector<HelixBlock>> successCallback,
1001 void blockUser(QString targetUserId, std::function<
void()> successCallback,
1005 void unblockUser(QString targetUserId,
1006 std::function<
void()> successCallback,
1010 void updateChannel(QString broadcasterId, QString gameId, QString language,
1016 void manageAutoModMessages(
1017 QString userID, QString msgID, QString action,
1018 std::function<
void()> successCallback,
1023 QString broadcasterId,
1024 ResultCallback<std::vector<HelixCheermoteSet>> successCallback,
1028 void getEmoteSetData(QString emoteSetId,
1033 void getChannelEmotes(
1034 QString broadcasterId,
1035 ResultCallback<std::vector<HelixChannelEmote>> successCallback,
1039 void updateUserChatColor(
1045 void deleteChatMessages(
1046 QString broadcasterID, QString moderatorID, QString messageID,
1052 void addChannelModerator(
1058 void removeChannelModerator(
1061 failureCallback)
final;
1064 void sendChatAnnouncement(
1065 QString broadcasterID, QString moderatorID, QString message,
1068 failureCallback)
final;
1071 void addChannelVIP(QString broadcasterID, QString userID,
1074 failureCallback)
final;
1077 void removeChannelVIP(QString broadcasterID, QString userID,
1080 failureCallback)
final;
1086 QString broadcasterID, QString moderatorID, QString userID,
1093 QString fromBroadcasterID, QString toBroadcasterID,
1106 void updateEmoteMode(QString broadcasterID, QString moderatorID,
1110 failureCallback)
final;
1114 void updateFollowerMode(
1115 QString broadcasterID, QString moderatorID,
1116 boost::optional<int> followerModeDuration,
1123 void updateNonModeratorChatDelay(
1124 QString broadcasterID, QString moderatorID,
1125 boost::optional<int> nonModeratorChatDelayDuration,
1132 void updateSlowMode(QString broadcasterID, QString moderatorID,
1133 boost::optional<int> slowModeWaitTime,
1136 failureCallback)
final;
1140 void updateSubscriberMode(
1141 QString broadcasterID, QString moderatorID,
bool subscriberMode,
1148 void updateUniqueChatMode(
1149 QString broadcasterID, QString moderatorID,
bool uniqueChatMode,
1157 QString broadcasterID, QString moderatorID, QString userID,
1158 boost::optional<int> duration, QString reason,
1165 QString fromUserID, QString toUserID, QString message,
1173 QString broadcasterID, QString moderatorID,
int maxChattersToFetch,
1181 QString broadcasterID,
int maxModeratorsToFetch,
1182 ResultCallback<std::vector<HelixModerator>> successCallback,
1187 void getChannelVIPs(
1188 QString broadcasterID,
1189 ResultCallback<std::vector<HelixVip>> successCallback,
1193 void startCommercial(
1194 QString broadcasterID,
int length,
1199 void update(QString clientId, QString oauthToken)
final;
1201 static void initialize();
1205 void updateChatSettings(
1206 QString broadcasterID, QString moderatorID, QJsonObject json,
1212 void onFetchChattersSuccess(
1213 std::shared_ptr<HelixChatters> finalChatters, QString broadcasterID,
1214 QString moderatorID,
int maxChattersToFetch,
1222 QString broadcasterID, QString moderatorID,
int first, QString after,
1227 void onFetchModeratorsSuccess(
1228 std::shared_ptr<std::vector<HelixModerator>> finalModerators,
1229 QString broadcasterID,
int maxModeratorsToFetch,
1230 ResultCallback<std::vector<HelixModerator>> successCallback,
1236 void fetchModerators(
1237 QString broadcasterID,
int first, QString after,
QString startedAt
Definition: Helix.hpp:95
QString userId
Definition: Helix.hpp:336
QString cursor
Definition: Helix.hpp:355
HelixAddChannelModeratorError
Definition: Helix.hpp:457
const bool subscriberMode
Definition: Helix.hpp:313
HelixUpdateChatSettingsError
Definition: Helix.hpp:535
HelixRemoveChannelVIPError
Definition: Helix.hpp:490
HelixRemoveChannelModeratorError
Definition: Helix.hpp:469
int minBits
Definition: Helix.hpp:219
QString ownerId
Definition: Helix.hpp:275
Definition: Helix.hpp:175
QString userName
Definition: Helix.hpp:89
HelixChatters(const QJsonObject &jsonObject)
Definition: Helix.hpp:359
int viewerCount
Definition: Helix.hpp:94
Definition: Helix.hpp:132
Definition: NetworkRequest.hpp:13
QString boxArtUrl
Definition: Helix.hpp:135
HelixStartCommercialResponse(const QJsonObject &jsonObject)
Definition: Helix.hpp:610
HelixBlock(QJsonObject jsonObject)
Definition: Helix.hpp:195
const boost::optional< int > nonModeratorChatDelayDuration
Definition: Helix.hpp:311
QString id
Definition: Helix.hpp:26
QString profileImageUrl
Definition: Helix.hpp:31
Definition: Helix.hpp:305
Url imageURL2x
Definition: Helix.hpp:205
HelixWhisperError
Definition: Helix.hpp:560
Definition: Helix.hpp:925
QString type
Definition: Helix.hpp:92
HelixClipError
Definition: Helix.hpp:409
Url imageURL4x
Definition: Helix.hpp:206
HelixCheermoteImage lightStatic
Definition: Helix.hpp:223
Definition: Helix.hpp:216
HelixSendChatAnnouncementError
Definition: Helix.hpp:449
HelixChannel(QJsonObject jsonObject)
Definition: Helix.hpp:164
QString cursor
Definition: Helix.hpp:379
QString description
Definition: Helix.hpp:177
HelixAddChannelVIPError
Definition: Helix.hpp:480
QString description
Definition: Helix.hpp:30
QString fromName
Definition: Helix.hpp:46
HelixUpdateUserChatColorError
Definition: Helix.hpp:429
std::vector< HelixCheermoteTier > tiers
Definition: Helix.hpp:260
HelixModerators(const QJsonObject &jsonObject)
Definition: Helix.hpp:383
const bool uniqueChatMode
Definition: Helix.hpp:314
const bool emoteMode
Definition: Helix.hpp:307
Definition: Helix.hpp:203
Definition: Application.cpp:48
QString userLogin
Definition: Helix.hpp:342
QString title
Definition: Helix.hpp:93
Definition: Helix.hpp:156
QString id
Definition: Helix.hpp:217
std::function< void(T...)> FailureCallback
Definition: Helix.hpp:635
HelixClip(QJsonObject jsonObject)
Definition: Helix.hpp:149
HelixUsersFollowsRecord()
Definition: Helix.hpp:51
QString toName
Definition: Helix.hpp:48
HelixBanUserError
Definition: Helix.hpp:547
QString setId
Definition: Helix.hpp:274
std::function< void()> HelixFailureCallback
Definition: Helix.hpp:21
HelixCheermoteImage darkAnimated
Definition: Helix.hpp:220
QString id
Definition: Helix.hpp:178
Definition: Helix.hpp:602
QString userId
Definition: Helix.hpp:191
Definition: Helix.hpp:257
HelixUser(QJsonObject jsonObject)
Definition: Helix.hpp:33
Definition: Helix.hpp:631
HelixGame(QJsonObject jsonObject)
Definition: Helix.hpp:137
QString id
Definition: Helix.hpp:133
void initializeHelix(IHelix *_instance)
Definition: Helix.cpp:2500
HelixUsersFollowsResponse(QJsonObject jsonObject)
Definition: Helix.hpp:73
QString createdAt
Definition: Helix.hpp:176
QString editUrl
Definition: Helix.hpp:147
std::function< void(T...)> ResultCallback
Definition: IvrApi.hpp:15
HelixEmoteSetData(QJsonObject jsonObject)
Definition: Helix.hpp:278
QString thumbnailUrl
Definition: Helix.hpp:97
HelixStreamMarkerError
Definition: Helix.hpp:415
int positionSeconds
Definition: Helix.hpp:179
Definition: NetworkResult.hpp:9
const boost::optional< int > slowModeWaitTime
Definition: Helix.hpp:312
QString userName
Definition: Helix.hpp:192
QString userLogin
Definition: Helix.hpp:88
HelixCheermoteImage(QJsonObject jsonObject)
Definition: Helix.hpp:208
HelixCheermoteTier(QJsonObject jsonObject)
Definition: Helix.hpp:225
HelixStreamMarker(QJsonObject jsonObject)
Definition: Helix.hpp:181
QString title
Definition: Helix.hpp:162
QString name
Definition: Helix.hpp:158
QString toId
Definition: Helix.hpp:47
std::vector< HelixUsersFollowsRecord > data
Definition: Helix.hpp:72
Definition: Helix.hpp:286
std::unordered_set< QString > chatters
Definition: Helix.hpp:353
int retryAfter
Definition: Helix.hpp:608
QString id
Definition: Helix.hpp:86
int total
Definition: Helix.hpp:354
HelixUsersFollowsRecord(QJsonObject jsonObject)
Definition: Helix.hpp:60
const QString url
Definition: Helix.hpp:291
HelixListVIPsError
Definition: Helix.hpp:591
HelixCheermoteImage darkStatic
Definition: Helix.hpp:221
Url imageURL1x
Definition: Helix.hpp:204
QString userName
Definition: Helix.hpp:339
HelixChatSettings(QJsonObject jsonObject)
Definition: Helix.hpp:316
const QString type
Definition: Helix.hpp:289
const QString broadcasterId
Definition: Helix.hpp:306
HelixChannelEmote(QJsonObject jsonObject)
Definition: Helix.hpp:293
#define TWITCH_EMOTE_TEMPLATE
Definition: TwitchEmotes.hpp:15
QString prefix
Definition: Helix.hpp:258
HelixCheermoteSet(QJsonObject jsonObject)
Definition: Helix.hpp:262
int length
Definition: Helix.hpp:604
HelixVip(const QJsonObject &jsonObject)
Definition: Helix.hpp:344
HelixStartRaidError
Definition: Helix.hpp:513
QString displayName
Definition: Helix.hpp:193
QString userId
Definition: Helix.hpp:157
QString gameName
Definition: Helix.hpp:91
std::vector< HelixModerator > moderators
Definition: Helix.hpp:378
Definition: Helix.hpp:377
QString gameName
Definition: Helix.hpp:161
HelixUnbanUserError
Definition: Helix.hpp:501
QString userId
Definition: Helix.hpp:87
const QString setId
Definition: Helix.hpp:290
Definition: Helix.hpp:145
QString emoteType
Definition: Helix.hpp:276
HelixStream()
Definition: Helix.hpp:99
QString id
Definition: Helix.hpp:146
Definition: Helix.hpp:190
const QString emoteId
Definition: Helix.hpp:287
HelixStream(QJsonObject jsonObject)
Definition: Helix.hpp:115
Definition: Helix.hpp:334
HelixAutoModMessageError
Definition: Helix.hpp:421
HelixCancelRaidError
Definition: Helix.hpp:524
QString gameId
Definition: Helix.hpp:90
const boost::optional< int > followerModeDuration
Definition: Helix.hpp:309
QString login
Definition: Helix.hpp:27
HelixGetChattersError
Definition: Helix.hpp:573
QString createdAt
Definition: Helix.hpp:29
int total
Definition: Helix.hpp:71
QString gameId
Definition: Helix.hpp:160
QString color
Definition: Helix.hpp:218
QString displayName
Definition: Helix.hpp:28
HelixAnnouncementColor
Definition: Helix.hpp:399
QString language
Definition: Helix.hpp:159
HelixCheermoteImage lightAnimated
Definition: Helix.hpp:222
QString fromId
Definition: Helix.hpp:45
QString followedAt
Definition: Helix.hpp:49
HelixDeleteChatMessagesError
Definition: Helix.hpp:438
const QString name
Definition: Helix.hpp:288
QString message
Definition: Helix.hpp:606
QString type
Definition: Helix.hpp:259
QString name
Definition: Helix.hpp:134
IHelix * getHelix()
Definition: Helix.cpp:2507
QString language
Definition: Helix.hpp:96
Definition: Helix.hpp:352
HelixGetModeratorsError
Definition: Helix.hpp:582
Definition: Helix.hpp:273
HelixStartCommercialError
Definition: Helix.hpp:619