示例#1
0
 public static void QueueTexts(string[] texts, int duration, Chatters chatter)
 {
     foreach (string text in texts)
     {
         QueueText(Strings.GetString(text), duration, chatter);
     }
 }
示例#2
0
        private void ViewerListUpdate() // Getting all viewers of the stream and adding them to the viewersBox
        {
            viewersBox.Items.Clear();
            Chatters AllChatters = ChatClient.GetChatters("streamer");

            chatBox.Text += "Checking the viewer list..." + Environment.NewLine;

            foreach (string admin in AllChatters.Admins)
            {
                viewersBox.Items.Add(admin + Environment.NewLine);
            }

            foreach (string staff in AllChatters.Staff)
            {
                viewersBox.Items.Add(staff + Environment.NewLine);
            }

            foreach (string globalmod in AllChatters.GlobalMods)
            {
                viewersBox.Items.Add(globalmod + Environment.NewLine);
            }

            foreach (string moderator in AllChatters.Moderators)
            {
                viewersBox.Items.Add(moderator + Environment.NewLine);
            }

            foreach (string viewer in AllChatters.Viewers)
            {
                viewersBox.Items.Add(viewer + Environment.NewLine);
            }
        }
示例#3
0
    public static void QueueText(string text, int duration, Chatters chatter)
    {
        ChatMessage message = new ChatMessage();

        message.text     = text;
        message.duration = duration;
        message.chatter  = chatter;
        chatQueue.Enqueue(message);
    }
示例#4
0
        private void OnFriendMsg(SteamFriends.FriendMsgCallback callback)
        {
            if (callback.EntryType == EChatEntryType.ChatMsg)
            {
                var sender = callback.Sender;

                Friend currentChatter = Chatters.FirstOrDefault(chatter => chatter.SteamID.AccountID == sender.AccountID);

                if (currentChatter == null)
                {
                    currentChatter = new Friend()
                    {
                        WelcomedDate       = DateTime.Now,
                        ChatState          = ChatState.NoInteraction,
                        SteamID            = sender,
                        IsReceivingAdvInfo = false
                    };

                    Chatters.Add(currentChatter);
                }

                TimeSpan timeSpan = DateTime.Now - currentChatter.WelcomedDate;
                if (timeSpan.Minutes >= 5)
                {
                    currentChatter.ChatState = ChatState.NoInteraction;
                }

                string responseMessage = String.Empty;
                if (BasicCommands.ContainsKey(callback.Message))
                {
                    responseMessage          = BasicCommands[callback.Message];
                    currentChatter.ChatState = ChatState.Welcomed;
                }
                else if (currentChatter.ChatState == ChatState.NoInteraction)
                {
                    currentChatter.ChatState = ChatState.Welcomed;
                    responseMessage          = WelcomeMessage;
                }
                else if (currentChatter.ChatState == ChatState.Welcomed)
                {
                    responseMessage = CommandNotFoundMessage;
                }

                SteamFriends.SendChatMessage(sender, EChatEntryType.ChatMsg, responseMessage);

                Console.WriteLine($"{SteamFriends.GetFriendPersonaName(sender)}: {callback.Message}");
                Console.WriteLine($"BOT: {responseMessage}");
            }
        }
示例#5
0
文件: Utilities.cs 项目: finloop/WBot
        override public void HandleMessage(Message message)
        {
            Channel channel = ModuleManager.channels.Find(x => x.Name == message.channel);

            string uptime  = "!" + channel.utilConfig.uptime;
            string viewers = "!" + channel.utilConfig.viewers;

            if (message.msg.StartsWith(uptime))
            {
                TimeSpan timeSpan = CheckStream.Uptime(message.channel);
                message.msg = (timeSpan.Hours - 2) + " hours " + timeSpan.Minutes + " minutes.";
                irc.SendResponse(message);
            }
            else if (message.msg.StartsWith(viewers))
            {
                List <string> chatters = Chatters.GetViewers(message.channel);
                if (chatters != null)
                {
                    if (chatters.Count > 20)
                    {
                        string response = "Widzowie: ";
                        for (int i = 0; i < 10; i++)
                        {
                            response += chatters[i] + ", ";
                        }
                        response   += "... jeszcze " + (chatters.Count - 10) + ".";
                        message.msg = response;
                        irc.SendResponse(message);
                    }
                    else
                    {
                        string response = "Widzowie: ";
                        for (int i = 0; i < chatters.Count; i++)
                        {
                            if (i != (chatters.Count - 1))
                            {
                                response += chatters[i] + ", ";
                            }
                            else
                            {
                                response += chatters[i] + ".";
                            }
                        }
                        message.msg = response;
                        irc.SendResponse(message);
                    }
                }
            }
        }
示例#6
0
 static public void AddPointsIfOnChannel(string channel)
 {
     if (CheckStream.isRunning(channel))
     {
         List <string> v = Chatters.GetViewers(channel);
         if (v != null)
         {
             for (int i = 0; i < v.Count; i++)
             {
                 addUserIfNotExist(channel, v[i]);
                 addPoints(channel, v[i], 1);
             }
         }
     }
 }
示例#7
0
        private static void ChattersDowload(out Chatters c)
        {
            var req = WebRequest.Create(
                new Uri($@"http://tmi.twitch.tv/group/user/{Channel}/chatters"));
            // req.Headers.Add($"Client-ID:{TwitchClientId}");

            var response = req.GetResponseAsync();

            try
            {
                using (System.IO.Stream s = response.Result.GetResponseStream())
                    using (StreamReader sr = new StreamReader(s))
                        using (JsonReader reader = new JsonTextReader(sr))
                        {
                            JsonSerializer serializer = new JsonSerializer();
                            c = serializer.Deserialize <Chatters>(reader);
                        }
            }
            catch (Exception)
            {
                ChattersDowload(out c);
            }
        }
示例#8
0
        /// <summary>
        /// Set a full list of chatters broken up by each type
        /// </summary>
        private async Task ResetChatterListsAsync()
        {
            try
            {
                // Grab user's chatter info (viewers, mods, etc.)
                using (HttpResponseMessage message = await _twitchInfo.GetChattersAsync())
                {
                    if (!message.IsSuccessStatusCode)
                    {
                        return;
                    }

                    string body = await message.Content.ReadAsStringAsync();

                    ChatterInfoJSON chatterInfo = JsonConvert.DeserializeObject <ChatterInfoJSON>(body);

                    _twitchChatterListInstance.ChattersByName.Clear();
                    _twitchChatterListInstance.ChattersByType.Clear();

                    if (chatterInfo.ChatterCount > 0)
                    {
                        Chatters chatters = chatterInfo.Chatters;

                        // Grab and divide chatters from tmi.twitch.tv
                        if (chatters.Viewers.Count > 0)
                        {
                            _twitchChatterListInstance.ChattersByType.Add
                            (
                                new TwitchChatterType
                            {
                                TwitchChatters = GroupTmiTwitchChatters(chatters.Viewers),
                                ChatterType    = ChatterType.Viewer
                            }
                            );
                        }
                        if (chatters.VIPs.Count > 0)
                        {
                            _twitchChatterListInstance.ChattersByType.Add
                            (
                                new TwitchChatterType
                            {
                                TwitchChatters = GroupTmiTwitchChatters(chatters.VIPs),
                                ChatterType    = ChatterType.VIP
                            }
                            );
                        }
                        if (chatters.Moderators.Count > 0)
                        {
                            _twitchChatterListInstance.ChattersByType.Add
                            (
                                new TwitchChatterType
                            {
                                TwitchChatters = GroupTmiTwitchChatters(chatters.Moderators),
                                ChatterType    = ChatterType.Moderator
                            }
                            );
                        }
                        if (chatters.GlobalMods.Count > 0)
                        {
                            _twitchChatterListInstance.ChattersByType.Add
                            (
                                new TwitchChatterType
                            {
                                TwitchChatters = GroupTmiTwitchChatters(chatters.GlobalMods),
                                ChatterType    = ChatterType.GlobalModerator
                            }
                            );
                        }
                        if (chatters.Admins.Count > 0)
                        {
                            _twitchChatterListInstance.ChattersByType.Add
                            (
                                new TwitchChatterType
                            {
                                TwitchChatters = GroupTmiTwitchChatters(chatters.Admins),
                                ChatterType    = ChatterType.Admin
                            }
                            );
                        }
                        if (chatters.Staff.Count > 0)
                        {
                            _twitchChatterListInstance.ChattersByType.Add
                            (
                                new TwitchChatterType
                            {
                                TwitchChatters = GroupTmiTwitchChatters(chatters.Staff),
                                ChatterType    = ChatterType.Staff
                            }
                            );
                        }

                        // Set followers, regular followers, and subscribers
                        if (_twitchChatterListInstance.TwitchFollowers.Count > 0)
                        {
                            _twitchChatterListInstance.ChattersByType.Add
                            (
                                new TwitchChatterType
                            {
                                TwitchChatters = _twitchChatterListInstance.TwitchFollowers,
                                ChatterType    = ChatterType.Follower
                            }
                            );
                        }

                        if (_twitchChatterListInstance.TwitchRegularFollowers.Count > 0)
                        {
                            _twitchChatterListInstance.ChattersByType.Add
                            (
                                new TwitchChatterType
                            {
                                TwitchChatters = _twitchChatterListInstance.TwitchRegularFollowers,
                                ChatterType    = ChatterType.RegularFollower
                            }
                            );
                        }

                        if (_twitchChatterListInstance.TwitchSubscribers.Count > 0)
                        {
                            _twitchChatterListInstance.ChattersByType.Add
                            (
                                new TwitchChatterType
                            {
                                TwitchChatters = _twitchChatterListInstance.TwitchSubscribers,
                                ChatterType    = ChatterType.Subscriber
                            }
                            );
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error inside TwitchChatterListener ResetChatterLists(): " + ex.Message);
                if (ex.InnerException != null)
                {
                    Console.WriteLine($"Inner Exception: {ex.InnerException.Message}");
                }
            }
        }