Пример #1
0
        internal void Follows_OnNewFollowersDetected(object sender, TwitchLib.Api.Services.Events.FollowerService.OnNewFollowersDetectedArgs e)
        {
            Parallel.ForEach(e.NewFollowers, (follower) =>
            {
                string token = null;
                var inf      = new KeyValuePair <string, BroadcasterInfo>();
                foreach (var info in ChannelBroadcaster)
                {
                    if (info.Value.ID == e.Channel)
                    {
                        token = info.Value.AccessToken;
                        inf   = info;
                    }
                }
                var getUser     = Service.Helix.Users.GetUsersAsync(null, new List <string>(new[] { follower.FromUserName }), token);
                var getChatters = Service.Undocumented.GetChattersAsync(inf.Key);
                getChatters.Wait();

                TwitchLib.Api.Core.Enums.UserType userType = TwitchLib.Api.Core.Enums.UserType.Viewer;
                foreach (var chatter in getChatters.Result)
                {
                    if (chatter.Username == follower.FromUserName)
                    {
                        userType = chatter.UserType;
                        break;
                    }
                }

                getUser.Wait();
                AddUser(getUser.Result.Users[0], userType, inf.Key);
            });
        }
Пример #2
0
        //private async Task Test()
        //{
        //    HttpClient c = new HttpClient();
        //    c.DefaultRequestHeaders.Clear();
        //    c.DefaultRequestHeaders.Add("Client-ID", "TWITCH-CLIENT-ID");
        //    c.DefaultRequestHeaders.Add("Accept", "application/vnd.twitchtv.v5+json");
        //    var w = Stopwatch.StartNew();
        //    var aall = await c.GetStringAsync("https://api.twitch.tv/kraken/chat/emoticons");
        //    dynamic a = JsonConvert.DeserializeObject(aall);
        //    var b = JsonConvert.SerializeObject(a, Formatting.Indented);
        //    w.Stop();
        //    File.WriteAllText("twitchemojis-zeit.txt", TimeSpan.FromMilliseconds(w.ElapsedMilliseconds).TotalSeconds.ToString());
        //    File.WriteAllText("twitchemojis-formated.txt", b);
        //    ;
        //}

        private void FollowerService_OnNewFollowersDetected(object sender, TwitchLib.Api.Services.Events.FollowerService.OnNewFollowersDetectedArgs e)
        {
            try
            {
                var followers = e.NewFollowers
                                .Select(x => ReplaceNickname(x.FromUserName));

                var msg         = string.Join(" und ", followers);
                var msgEndIndex = msg.LastIndexOf(" und ");

                if (msgEndIndex > 0)
                {
                    msg = msg.Substring(0, msgEndIndex);
                }

                ShowMessage($"{msg} {(followers.Count() > 1 ? "folgen" : "folgt")} nun", Settings.NewFollowerNotification);
            }
            catch (Exception ex)
            {
                mainViewModel.ShowError(ex);
            }
        }