Пример #1
0
        static void RegisterTwitchViewerCallback(object sender, DownloadStringCompletedEventArgs eventArgs)
        {
            if (eventArgs.Error != null)
            {
                throw new Exception("Viewers twitch id could not be retrieved");
            }

            if (eventArgs.Result != null)
            {
                Helper.Log("Twitch Viewer Info: " + eventArgs.Result);
            }

            JSONNode resultNode = JSON.Parse(eventArgs.Result);

            if (resultNode != null)
            {
                int    channel_id = resultNode["channel_id"].AsInt;
                string username   = resultNode["user_name"];

                TwitchViewer newViewer = new TwitchViewer(channel_id, username);

                if (viewersBeingRegistered.Contains(newViewer.Username.ToLower()))
                {
                    viewersBeingRegistered.Remove(newViewer.Username.ToLower());
                }
                else
                {
                    throw new Exception(newViewer.Username.CapitalizeFirst() + " was registered as a viewer but was not in the viewers being registered list");
                }

                Helper.Log(newViewer.Username.CapitalizeFirst() + " has been registed as a twitch viewer");
            }
        }
Пример #2
0
        public static TwitchViewer GetTwitchViewer(string username)
        {
            TwitchViewer viewer = AllTwitchViewers.Find(s => s.Username == username);

            if (viewer == null)
            {
                RegisterTwitchUser(username);
            }

            return(viewer);
        }
Пример #3
0
        public static TwitchViewer GetTwitchViewer(int twitchId, string username = "")
        {
            TwitchViewer findViewer = AllTwitchViewers.Find(s => s.TwitchId == twitchId);

            if (findViewer == null && username != "")
            {
                if (username == "")
                {
                    throw new Exception("Twitch Viewer not found with id and no username provided to create new Twitch Viewer");
                }

                return(new TwitchViewer(twitchId, username));
            }

            return(findViewer);
        }
Пример #4
0
        // Callback Parse for Twitch API call
        static void ParseActiveViewers(object sender, DownloadStringCompletedEventArgs eventArgs)
        {
            state = RefreshViewerState.PARSING;

            if (eventArgs.Error != null)
            {
                throw new Exception("No chatters received from tmi.twitch.tv API - This can be ignored most of the time");
            }

            if (eventArgs.Result != null)
            {
                Helper.Log("Twitch Active Chatters API: " + eventArgs.Result);
            }

            List <string> viewers = new List <string>();

            // Parse chatters from list

            JSONNode resultNode = JSON.Parse(eventArgs.Result);

            if (resultNode["chatters"] != null)
            {
                JSONNode chatters = resultNode["chatters"];

                string[] viewerTypes = { "broadcaster", "vips", "moderators", "staff", "admins", "global_mods", "viewers" };

                foreach (string type in viewerTypes)
                {
                    for (int i = 0; i < chatters[type].Count; i++)
                    {
                        Active.Add(TwitchViewer.GetViewer(chatters[type][i]));
                    }
                }
            }

            state = RefreshViewerState.FINISHED;
        }