public string ResolveNameFromId(string id) { if (oldId == id) { return(game); } else { if (JsonGrabber.GrabJson(new Uri("https://api.twitch.tv/helix/games?id=" + id), RequestHeaders, "application/json", "application/vnd.twitchtv.v3+json", "GET", out string res)) { oldId = id; var jObjectNode = JObject.Parse(res); var dataNode = jObjectNode["data"].First; if (dataNode["name"] != null) { return(dataNode["name"].ToString()); } } return(""); } }
public void GetStatus() { if (JsonGrabber.GrabJson(sUrlTwitchStatus, RequestHeaders, "application/json", "application/vnd.twitchtv.v3+json", "GET", out string res)) { try { var response = JObject.Parse(res); if (response["data"] != null && response["data"].Children().Count() > 0) { var dataNode = response["data"].First; if (dataNode["title"] != null) { isOnline = true; var title = dataNode["title"].ToString(); TitleHasChanged = OldTitle != title; OldTitle = title; if (dataNode["type"] != null) { var streamType = dataNode["type"].ToString(); if (streamType == "live") { isOnline = true; } else { isOnline = false; } } if (dataNode["started_at"] != null) { var dateTimeStartAsstring = dataNode["started_at"].ToString(); //"2020-02-25t13:42:32z" if (DateTime.TryParse(dateTimeStartAsstring, out DateTime ParsedTime)) { StartTime = ParsedTime.ToUniversalTime(); } else { StartTime = DateTime.MinValue; } } if (dataNode["game_id"] != null) { var gameIdAsString = dataNode["game_id"].ToString(); game = ResolveNameFromId(gameIdAsString); if (game == "ul") { game = String.Empty; } Console.WriteLine(string.Format("{0} - Checked stream status. Is online, playing {1}", channelName, game)); } else { Console.WriteLine(string.Format("{0} - Checked stream status. Is online (no game?)", channelName)); } if (dataNode["viewer_count"] != null) { var viewers = dataNode["viewer_count"].ToString(); if (uint.TryParse(viewers, out uint Value)) { this.LastViewers = Value; } } } else { isOnline = false; Console.WriteLine(string.Format("{0} - Checked stream status. Is offline.", channelName)); } } else { isOnline = false; Console.WriteLine(string.Format("{0} - Checked stream status. Is offline.", channelName)); } } catch (Exception e) { ErrorLogging.WriteLine("Error trying to parse Json when doing stream update request: " + e.Message); isOnline = false; } } else { Console.WriteLine("Error checking Json"); } }