public static void GetRoomsForChannelAsync(BilibiliChannel channel, Action <bool, BilibiliChannel> onCompleted) { Task.Run(() => { bool success = GetRoomsForChannel(channel) != null; onCompleted?.Invoke(success, channel); }); }
public static List <BilibiliRoom> GetRoomsForChannel(BilibiliChannel channel) { if (!TwitchWebSocketClient.LoggedIn) { return(null); } Plugin.Log($"Getting rooms for channel {channel.name}"); try { /*HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"https://api.twitch.tv/kraken/chat/{channel.roomId}/rooms"); * request.Credentials = CredentialCache.DefaultCredentials; * * request.Method = "GET"; * request.Accept = "application/vnd.twitchtv.v5+json"; * request.Headers.Set("Authorization", $"OAuth {TwitchLoginConfig.Instance.TwitchOAuthToken.Replace("oauth:", "")}"); * request.Headers.Set("Client-ID", ClientId); * * HttpWebResponse response = (HttpWebResponse)request.GetResponse(); * if (response.StatusCode == HttpStatusCode.OK) * { * Stream dataStream = response.GetResponseStream(); * StreamReader reader = new StreamReader(dataStream); * * channel.rooms = TwitchRoom.FromJson(reader.ReadToEnd()); * * foreach (TwitchRoom r in channel.rooms) * Plugin.Log($"Room: {r.name}, ChannelName: {r.channelName}"); * * reader.Close(); * } * response.Close();*/ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(BilibiliChannelInfoApi + channel.roomId); request.Method = "GET"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { Stream dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); channel.rooms = BilibiliRoom.FromJson(reader.ReadToEnd()); reader.Close(); } response.Close(); } catch (Exception ex) { Plugin.Log(ex.ToString()); } return(channel.rooms); }