protected override async Task OnInitializedAsync() { var channel = TwitchService.TwitchUsers.FirstOrDefault(x => string.Equals(x.LoginName, ChannelLogin, System.StringComparison.InvariantCultureIgnoreCase)); if (channel == null) { await TwitchService.LoadChannelData(ChannelLogin); } model = new TwitchChannelModel { ChannelName = channel.DisplayName, ImageUrl = channel.ProfileImageUrl, IsFollowerSubscribed = channel.IsFollowSubscribed, IsStreamSubscribed = channel.IsStreamSubscribed }; initialState = model; }
public async Task <TwitchChannelModel> UpdateStreamInfo(TwitchChannelModel stream) { try { using (var client = new HttpClient()) { var str = await SendGetRequest($"{updateStreamLink}{stream._id}", false); var o = JObject.Parse(str); string streamStatusString = ""; string prevStatus = stream.channel_status; try { streamStatusString = (string)o["stream"]["stream_type"]; } catch { streamStatusString = (string)o["stream"]; } if (streamStatusString == null) { stream.channel_status = "offline"; stream.viewers = ""; stream.dotcolor = "Transpatent"; } else if (streamStatusString == "rerun") //Если повтор { stream.channel_status = "rerun"; stream.viewers = (string)o["stream"]["viewers"]; stream.game = (string)o["stream"]["channel"]["game"]; stream.dotcolor = "#504b57"; } else if (streamStatusString == "live") //ЕСЛИ ОНЛАЙН { stream.channel_status = "live"; stream.livetime = GetStreamLength((DateTime)o["stream"]["created_at"]); stream.viewers = (string)o["stream"]["viewers"]; stream.game = (string)o["stream"]["channel"]["game"]; stream.dotcolor = "Red"; } //ALERTS if (prevStatus != streamStatusString) { if (streamStatusString == "live") { MainWindowViewModel.instance.Alert(stream.logo_image, "Twitch", $"{stream.display_name} начал прямой эфир /n {stream.broadcast_discr}"); tb.StreamStatusChangedAlert(this, null, stream.display_name, "начал прямой эфир", stream.url); } else if (streamStatusString == "rerun") { MainWindowViewModel.instance.Alert(stream.logo_image, "Twitch", $"{stream.display_name} запустил повтор /n {stream.broadcast_discr}"); tb.StreamStatusChangedAlert(this, null, stream.display_name, "начал повтор", stream.url); } } return(stream); } } catch (Exception e) { stream.channel_status = "unavalible"; stream.viewers = ""; stream.game = ""; stream.dotcolor = ""; MethodBase m = MethodBase.GetCurrentMethod(); log.AddLog("ERROR : ", e.Message, "Error in ", m.DeclaringType.Name); return(stream); } }