Пример #1
0
        private void irc_Message(UserInfo user, string channel, string message)
        {
            if (user.UserType != IRCUserType.User)
            {
                return;
            }

            if (message.StartsWith("!") && message.Length > 1) // Command
            {
                message = message.Substring(1);

                if (channel.StartsWith("#")) // Channel
                {
                    if (message.Equals("help", StringComparison.InvariantCultureIgnoreCase))
                    {
                        IRC.SendMessage(Info.GetAutoResponses(), channel);
                    }
                }
                else // Whisper
                {
                }
            }
            else // Message
            {
                CheckGithubIssues(message, channel);
            }
        }
Пример #2
0
 private void IRC_UserJoined(UserInfo userInfo, string channel)
 {
     if (userInfo.UserType == IRCUserType.Me)
     {
         Channel = channel;
     }
 }
Пример #3
0
        private void IRC_UserJoined(UserInfo userInfo, string channel)
        {
            if (userInfo.Nickname == IRC.CurrentNickname && userInfo.Username == Settings.Username)
            {
                this.InvokeSafe(() =>
                {
                    tabManager.AddChannel(channel);

                    if (string.IsNullOrEmpty(txtChannel.Text))
                    {
                        txtChannel.Text = channel;
                    }
                });
            }
        }
Пример #4
0
        private void IRC_Message(UserInfo userInfo, string channel, string message)
        {
            this.InvokeSafe(() =>
            {
                if (channel[0] != '#' && userInfo.UserType == IRCUserType.User)
                {
                    channel = userInfo.Nickname;
                }

                tabManager.AddMessage(channel, $"{userInfo.Nickname}: {message}");
            });
        }
Пример #5
0
 public MessageInfo(string content)
 {
     Content = content;
     User = new UserInfo();
     Parameters = new List<string>();
 }
Пример #6
0
Файл: IRC.cs Проект: Jaex/IRCLib
        private void ParseWHOIS(MessageInfo messageInfo)
        {
            UserInfo userInfo;

            switch (messageInfo.Command)
            {
                case "311": //:sendak.freenode.net 311 Jaex ShareX ~ShareX unaffiliated/sharex * :realname
                    if (messageInfo.Parameters.Count >= 4)
                    {
                        userInfo = new UserInfo();
                        userInfo.Nickname = messageInfo.Parameters[1];

                        if (messageInfo.Parameters[2][1] == '~')
                        {
                            userInfo.Username = messageInfo.Parameters[2].Substring(1);
                        }
                        else // Ident
                        {
                            userInfo.Username = messageInfo.Parameters[2];
                        }

                        userInfo.Host = messageInfo.Parameters[3];
                        userInfo.Realname = messageInfo.Message;

                        userList.Add(userInfo);
                    }
                    break;
                case "319": //:sendak.freenode.net 319 Jaex ShareX :@#ShareX @#ShareX_Test
                    if (messageInfo.Parameters.Count >= 2)
                    {
                        userInfo = FindUser(messageInfo.Parameters[1]);

                        if (userInfo != null)
                        {
                            userInfo.Channels.Clear();
                            userInfo.Channels.AddRange(messageInfo.Message.Split());
                        }
                    }
                    break;
                case "312": //:sendak.freenode.net 312 Jaex ShareX sendak.freenode.net :Vilnius, Lithuania, EU
                    if (messageInfo.Parameters.Count >= 3)
                    {
                        userInfo = FindUser(messageInfo.Parameters[1]);

                        if (userInfo != null)
                        {
                            userInfo.Server = messageInfo.Parameters[2];
                        }
                    }
                    break;
                case "671": //:sendak.freenode.net 671 Jaex ShareX :is using a secure connection
                    if (messageInfo.Parameters.Count >= 2)
                    {
                        userInfo = FindUser(messageInfo.Parameters[1]);

                        if (userInfo != null)
                        {
                            userInfo.SecureConnection = true;
                        }
                    }
                    break;
                case "317": //:sendak.freenode.net 317 Jaex ShareX 39110 1440201914 :seconds idle, signon time
                    if (messageInfo.Parameters.Count >= 4)
                    {
                        userInfo = FindUser(messageInfo.Parameters[1]);

                        if (userInfo != null)
                        {
                            int idleTime;
                            if (int.TryParse(messageInfo.Parameters[2], out idleTime))
                            {
                                userInfo.IdleTime = TimeSpan.FromSeconds(idleTime);
                            }

                            int signOnTime;
                            if (int.TryParse(messageInfo.Parameters[3], out signOnTime))
                            {
                                userInfo.SignOnDate = Helpers.UnixToDateTime(signOnTime).ToLocalTime();
                            }
                        }
                    }
                    break;
                case "330": //:sendak.freenode.net 330 Jaex ShareX ShareX :is logged in as
                    if (messageInfo.Parameters.Count >= 3)
                    {
                        userInfo = FindUser(messageInfo.Parameters[1]);

                        if (userInfo != null)
                        {
                            userInfo.Identity = messageInfo.Parameters[2];
                        }
                    }
                    break;
                case "318": //:sendak.freenode.net 318 Jaex ShareX :End of /WHOIS list.
                    if (messageInfo.Parameters.Count >= 2)
                    {
                        userInfo = FindUser(messageInfo.Parameters[1]);

                        if (userInfo != null)
                        {
                            userList.Remove(userInfo);
                            OnWhoisResult(userInfo);
                        }
                    }
                    break;
            }
        }
Пример #7
0
Файл: IRC.cs Проект: Jaex/IRCLib
 protected void OnUserKicked(UserInfo userInfo, string channel, string kickedNick)
 {
     if (UserKicked != null)
     {
         UserKicked(userInfo, channel, kickedNick);
     }
 }
Пример #8
0
 private void irc_WhoisResult(UserInfo userInfo)
 {
     IRC.SendMessage(userInfo.ToString());
 }
Пример #9
0
Файл: IRC.cs Проект: Jaex/IRCLib
 protected void OnUserLeft(UserInfo userInfo, string channel)
 {
     if (UserLeft != null)
     {
         UserLeft(userInfo, channel);
     }
 }
Пример #10
0
Файл: IRC.cs Проект: Jaex/IRCLib
 protected void OnUserJoined(UserInfo userInfo, string channel)
 {
     if (UserJoined != null)
     {
         UserJoined(userInfo, channel);
     }
 }
Пример #11
0
Файл: IRC.cs Проект: Jaex/IRCLib
 protected void OnWhoisResult(UserInfo userInfo)
 {
     if (WhoisResult != null)
     {
         WhoisResult(userInfo);
     }
 }
Пример #12
0
Файл: IRC.cs Проект: Jaex/IRCLib
 protected void OnUserQuit(UserInfo userInfo)
 {
     if (UserQuit != null)
     {
         UserQuit(userInfo);
     }
 }
Пример #13
0
Файл: IRC.cs Проект: Jaex/IRCLib
 protected void OnMessage(UserInfo userInfo, string channel, string message)
 {
     if (Message != null)
     {
         Message(userInfo, channel, message);
     }
 }
Пример #14
0
 private void irc_UserJoined(UserInfo user, string channel)
 {
     /*if (user.UserType == IRCUserType.User && user.Nickname != Info.Nickname)
     {
         string[] messages = { "Hello", "Hi", "Welcome" };
         string message = messages[new Random().Next(messages.Length)];
         IRC.SendMessage(channel, message + " " + user.Nickname);
     }*/
 }
Пример #15
0
        private void IRC_Message(UserInfo userInfo, string channel, string message)
        {
            if (userInfo.UserType != IRCUserType.User)
            {
                return;
            }

            if (message.StartsWith("!") && message.Length > 1) // Command
            {
                message = message.Substring(1);

                if (channel.StartsWith("#")) // Channel
                {
                }
                else // Whisper
                {
                }

                if (message.Equals("help", StringComparison.InvariantCultureIgnoreCase))
                {
                    OutputCurrentCommands(channel);
                }
                else if (message.Equals("release", StringComparison.InvariantCultureIgnoreCase))
                {
                    OutputLatestReleaseInfo(channel);
                }
                else if (message.Equals("permission", StringComparison.InvariantCultureIgnoreCase))
                {
                    IRC.SendMessage($"{userInfo.Nickname} permission: {IsUserHavePermission(userInfo)}", channel);
                }
                else if (message.Equals("restart", StringComparison.InvariantCultureIgnoreCase) && IsUserHavePermission(userInfo, channel))
                {
                    Program.RestartRequested = true;

                    IRC.Disconnect();
                }
            }
            else // Message
            {
                if (CheckGitHubIssues(message, channel)) return;
            }
        }
Пример #16
0
        private bool IsUserHavePermission(UserInfo userInfo, string channel = null)
        {
            bool result = !string.IsNullOrEmpty(userInfo.Host) && Settings.Permissions.Any(x => x.Equals(userInfo.Host, StringComparison.InvariantCulture));

            if (!string.IsNullOrEmpty(channel) && !result)
            {
                OutputInvalidPermission(channel);
            }

            return result;
        }
Пример #17
0
Файл: IRC.cs Проект: Jaex/IRCLib
 protected void OnUserNickChanged(UserInfo userInfo, string newNick)
 {
     if (UserNickChanged != null)
     {
         UserNickChanged(userInfo, newNick);
     }
 }