コード例 #1
0
        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;
        }
コード例 #2
0
        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);
            }
        }