Skip to content

Commit 939e0c5

Browse files
committed
Stop using my cloudflare worker
1 parent 2a32b9c commit 939e0c5

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

TwitchChannelPoints/frmMain.cs

+24-12
Original file line numberDiff line numberDiff line change
@@ -164,18 +164,30 @@ private async void timerMain_Tick(object sender, EventArgs e)
164164
JArray userObj = JArray.Parse(userRes);
165165
userId = userObj[0]["data"]["currentUser"]["id"].ToString();
166166
}
167-
JObject liveRes = JObject.Parse(await clientTwitch.DownloadStringTaskAsync("https://twitch-api.twitcharchives.workers.dev/streams?user_login=" + String.Join("&user_login=", dataGridSource.List.OfType<Streamer>().Select(x => x.Name))));
167+
JObject liveRes = JObject.Parse(await clientTwitch.UploadStringTaskAsync("https://gql.twitch.tv/gql", "{\"query\":\"query {users(logins: [" + String.Join(',', dataGridSource.List.OfType<Streamer>().Select(x => "\\\"" + x.Name + "\\\"")) + "]) {id,login,displayName,stream{id}}}\"}"));
168168
List<Streamer> streamerList = new List<Streamer>();
169169

170-
foreach (var streamData in liveRes["data"])
170+
for (int i = 0; i < liveRes["data"]["users"].Count(); i++)
171+
{
172+
if (liveRes["data"]["users"][i]["stream"].Type == JTokenType.Null)
173+
{
174+
liveRes["data"]["users"][i].Remove();
175+
i--;
176+
}
177+
}
178+
179+
foreach (var streamData in liveRes["data"]["users"])
171180
{
172181
if (streamerList.Count == 2)
173182
break;
174183

175-
string broadcastId = streamData["id"].ToString();
184+
if (streamData["stream"].Type == JTokenType.Null)
185+
continue;
186+
187+
string broadcastId = streamData["stream"]["id"].ToString();
176188
if (!broadcastCount.ContainsKey(broadcastId) || broadcastCount[broadcastId] < 6)
177189
{
178-
streamerList.Add(dataGridSource.List.OfType<Streamer>().Where(x => x.Name.ToLower() == streamData["user_name"].ToString().ToLower()).First());
190+
streamerList.Add(dataGridSource.List.OfType<Streamer>().Where(x => x.Name.ToLower() == streamData["login"].ToString().ToLower()).First());
179191
}
180192
}
181193

@@ -192,23 +204,23 @@ private async void timerMain_Tick(object sender, EventArgs e)
192204
if (streamerList.Count == 2)
193205
break;
194206

195-
if (liveRes["data"].Any(x => x["user_name"].ToString().ToLower() == ((Streamer)dataGridSource[i]).Name.ToLower()))
207+
if (liveRes["data"]["users"].Any(x => x["login"].ToString().ToLower() == ((Streamer)dataGridSource[i]).Name.ToLower()))
196208
{
197209
streamerList.Add((Streamer)dataGridSource[i]);
198210
}
199211
}
200212

201213
for (int i = 0; i < streamerList.Count; i++)
202214
{
203-
JToken streamData = liveRes["data"].Where(x => x["user_name"].ToString().ToLower() == streamerList[i].Name.ToLower()).First();
215+
JToken streamData = liveRes["data"]["users"].Where(x => x["login"].ToString().ToLower() == streamerList[i].Name.ToLower()).First();
204216
string gqlRes = await clientTwitch.UploadStringTaskAsync("https://gql.twitch.tv/gql", "{\"operationName\": \"ChannelPointsContext\",\"variables\": {\"channelLogin\": \"" + streamerList[i].Name.ToLower() + "\"},\"extensions\": {\"persistedQuery\": {\"version\": 1, \"sha256Hash\": \"9988086babc615a918a1e9a722ff41d98847acac822645209ac7379eecb27152\"}}}");
205217
JObject res = JObject.Parse(gqlRes);
206218
int newPoints = res["data"]["community"]["channel"]["self"]["communityPoints"]["balance"].ToObject<int>();
207219
streamerList[i].Points = newPoints;
208220
if (res["data"]["community"]["channel"]["self"]["communityPoints"]["availableClaim"].ToString() != "")
209221
{
210222
string claim_id = res["data"]["community"]["channel"]["self"]["communityPoints"]["availableClaim"]["id"].ToString();
211-
await clientTwitch.UploadStringTaskAsync("https://gql.twitch.tv/gql", "{\"operationName\": \"ClaimCommunityPoints\",\"variables\": {\"input\": {\"channelID\": \"" + streamData["user_id"].ToString() + "\", \"claimID\": \"" + claim_id + "\"}},\"extensions\": {\"persistedQuery\": {\"version\": 1, \"sha256Hash\": \"46aaeebe02c99afdf4fc97c7c0cba964124bf6b0af229395f1f6d1feed05b3d0\"}}}");
223+
await clientTwitch.UploadStringTaskAsync("https://gql.twitch.tv/gql", "{\"operationName\": \"ClaimCommunityPoints\",\"variables\": {\"input\": {\"channelID\": \"" + streamData["id"].ToString() + "\", \"claimID\": \"" + claim_id + "\"}},\"extensions\": {\"persistedQuery\": {\"version\": 1, \"sha256Hash\": \"46aaeebe02c99afdf4fc97c7c0cba964124bf6b0af229395f1f6d1feed05b3d0\"}}}");
212224
}
213225

214226
if (streamerList[i].SpadeUrl == null)
@@ -219,8 +231,8 @@ private async void timerMain_Tick(object sender, EventArgs e)
219231
}
220232

221233
JObject data = new JObject();
222-
data["channel_id"] = streamData["user_id"].ToString();
223-
data["broadcast_id"] = streamData["id"].ToString();
234+
data["channel_id"] = streamData["id"].ToString();
235+
data["broadcast_id"] = streamData["stream"]["id"].ToString();
224236
data["player"] = "site";
225237
data["user_id"] = userId;
226238
JObject data_root = new JObject();
@@ -229,13 +241,13 @@ private async void timerMain_Tick(object sender, EventArgs e)
229241
string payload = Convert.ToBase64String(Encoding.UTF8.GetBytes(data_root.ToString(Newtonsoft.Json.Formatting.None)));
230242
await clientTwitch.UploadStringTaskAsync(streamerList[i].SpadeUrl, payload);
231243

232-
if (broadcastCount.ContainsKey(streamData["id"].ToString()))
244+
if (broadcastCount.ContainsKey(streamData["stream"]["id"].ToString()))
233245
{
234-
broadcastCount[streamData["id"].ToString()] += 1;
246+
broadcastCount[streamData["stream"]["id"].ToString()] += 1;
235247
}
236248
else
237249
{
238-
broadcastCount[streamData["id"].ToString()] = 1;
250+
broadcastCount[streamData["stream"]["id"].ToString()] = 1;
239251
}
240252

241253
if (oldPoints.ContainsKey(streamerList[i].Name))

0 commit comments

Comments
 (0)