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); }); }
//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); } }