Fixed channels not being set as offline (#3767)

This commit is contained in:
Kasia
2022-05-28 20:10:10 +02:00
committed by GitHub
parent 57f92f5eaa
commit 74ec310228
6 changed files with 92 additions and 53 deletions
+9 -6
View File
@@ -145,7 +145,7 @@ void Helix::getUserFollowers(
void Helix::fetchStreams(
QStringList userIds, QStringList userLogins,
ResultCallback<std::vector<HelixStream>> successCallback,
HelixFailureCallback failureCallback)
HelixFailureCallback failureCallback, std::function<void()> finallyCallback)
{
QUrlQuery urlQuery;
@@ -186,19 +186,21 @@ void Helix::fetchStreams(
// TODO: make better xd
failureCallback();
})
.finally(finallyCallback)
.execute();
}
void Helix::getStreamById(QString userId,
ResultCallback<bool, HelixStream> successCallback,
HelixFailureCallback failureCallback)
HelixFailureCallback failureCallback,
std::function<void()> finallyCallback)
{
QStringList userIds{std::move(userId)};
QStringList userLogins;
this->fetchStreams(
userIds, userLogins,
[successCallback, failureCallback](const auto &streams) {
[successCallback](const auto &streams) {
if (streams.empty())
{
successCallback(false, HelixStream());
@@ -206,12 +208,13 @@ void Helix::getStreamById(QString userId,
}
successCallback(true, streams[0]);
},
failureCallback);
failureCallback, finallyCallback);
}
void Helix::getStreamByName(QString userName,
ResultCallback<bool, HelixStream> successCallback,
HelixFailureCallback failureCallback)
HelixFailureCallback failureCallback,
std::function<void()> finallyCallback)
{
QStringList userIds;
QStringList userLogins{std::move(userName)};
@@ -226,7 +229,7 @@ void Helix::getStreamByName(QString userName,
}
successCallback(true, streams[0]);
},
failureCallback);
failureCallback, finallyCallback);
}
///
+12 -6
View File
@@ -352,15 +352,18 @@ public:
virtual void fetchStreams(
QStringList userIds, QStringList userLogins,
ResultCallback<std::vector<HelixStream>> successCallback,
HelixFailureCallback failureCallback) = 0;
HelixFailureCallback failureCallback,
std::function<void()> finallyCallback) = 0;
virtual void getStreamById(
QString userId, ResultCallback<bool, HelixStream> successCallback,
HelixFailureCallback failureCallback) = 0;
HelixFailureCallback failureCallback,
std::function<void()> finallyCallback) = 0;
virtual void getStreamByName(
QString userName, ResultCallback<bool, HelixStream> successCallback,
HelixFailureCallback failureCallback) = 0;
HelixFailureCallback failureCallback,
std::function<void()> finallyCallback) = 0;
// https://dev.twitch.tv/docs/api/reference#get-games
virtual void fetchGames(
@@ -469,15 +472,18 @@ public:
// https://dev.twitch.tv/docs/api/reference#get-streams
void fetchStreams(QStringList userIds, QStringList userLogins,
ResultCallback<std::vector<HelixStream>> successCallback,
HelixFailureCallback failureCallback) final;
HelixFailureCallback failureCallback,
std::function<void()> finallyCallback) final;
void getStreamById(QString userId,
ResultCallback<bool, HelixStream> successCallback,
HelixFailureCallback failureCallback) final;
HelixFailureCallback failureCallback,
std::function<void()> finallyCallback) final;
void getStreamByName(QString userName,
ResultCallback<bool, HelixStream> successCallback,
HelixFailureCallback failureCallback) final;
HelixFailureCallback failureCallback,
std::function<void()> finallyCallback) final;
// https://dev.twitch.tv/docs/api/reference#get-games
void fetchGames(QStringList gameIds, QStringList gameNames,