コード例 #1
0
ファイル: RmqListener.cs プロジェクト: vhytyk/skype-bot
 private void OnSkypeMessageReceived(string source, SkypeMessage message)
 {
     if (null != SkypeMessageReceived)
     {
         SkypeMessageReceived(source, message);
     }
 }
コード例 #2
0
        protected override SkypeCommandResultBase CheckAndPrepare(SkypeMessage message)
        {
            SkypeCommandResultBase result = new SkypeCommandResultBase(this, message);

            if (string.IsNullOrEmpty(message.Message))
            {
                return(result);
            }

            string[] data = message.Message.Split(' ');
            if (data.Length <= 2)
            {
                return(result);
            }

            if (!data[0].ToLower().Equals(this.CommandName))
            {
                return(result);
            }

            result.Attributes.Add(data[1]);
            result.Parameters.Add(data[2]);
            result.Success = true;
            return(result);
        }
コード例 #3
0
 public SkypeCommandResultBase(SkypeCommandBase command, SkypeMessage message)
 {
     this._command    = command;
     this._message    = message;
     this._attributes = new List <string>();
     this._parameters = new List <string>();
 }
コード例 #4
0
ファイル: Edited.cs プロジェクト: TheDarkMythos/Skype-Logger
        public Edited(SkypeMessage m)
        {
            InitializeComponent();

            originalMessageTextBox.Text = m.Body;
            editedMessageTextBox.Text   = m.Message.Body;
        }
コード例 #5
0
ファイル: Main.cs プロジェクト: TheDarkMythos/Skype-Logger
 private void timeToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (messagesListView.SelectedItems.Count == 1)
     {
         SkypeMessage message = (SkypeMessage)messagesListView.SelectedItems[0].Tag;
         Clipboard.SetText(message.Timestamp.ToString());
     }
 }
コード例 #6
0
        void _rmqListener_SkypeMessageReceived(string source, SkypeMessage message)
        {
            List <SkypeConversation> allConversations = _skypeListener.GetAllConversations();

            if (allConversations.Exists(c => c.DisplayName == source || c.Name == source))
            {
                SendMessage(source, HandleRmqMessageText(message.Message));
            }
        }
コード例 #7
0
ファイル: Main.cs プロジェクト: TheDarkMythos/Skype-Logger
        private void findToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (Find f = new Find())
            {
                if (f.ShowDialog() == DialogResult.OK)
                {
                    if (f.SearchType == 0)
                    {
                        foreach (ListViewItem l in messagesListView.Items)
                        {
                            SkypeMessage message = (SkypeMessage)l.Tag;

                            if (message.Sender.ToLower().Contains(f.SearchText))
                            {
                                l.BackColor = Color.Gray;
                            }
                            else
                            {
                                l.BackColor = getBackColor(l);
                            }
                        }
                    }
                    else if (f.SearchType == 1)
                    {
                        foreach (ListViewItem l in messagesListView.Items)
                        {
                            SkypeMessage message = (SkypeMessage)l.Tag;

                            if (message.Body.ToLower().Contains(f.SearchText))
                            {
                                l.BackColor = Color.Gray;
                            }
                            else
                            {
                                l.BackColor = getBackColor(l);
                            }
                        }
                    }
                    else if (f.SearchType == 2)
                    {
                        foreach (ListViewItem l in messagesListView.Items)
                        {
                            SkypeMessage message = (SkypeMessage)l.Tag;

                            if (message.Timestamp.ToString().ToLower().Contains(f.SearchText))
                            {
                                l.BackColor = Color.Gray;
                            }
                            else
                            {
                                l.BackColor = getBackColor(l);
                            }
                        }
                    }
                }
            }
        }
コード例 #8
0
        public virtual void Call(SkypeMessage message)
        {
            SkypeCommandResultBase result = this.CheckAndPrepare(message);

            if (result.Success)
            {
                this.Execute(result);
            }
        }
コード例 #9
0
        protected override SkypeCommandResultBase CheckAndPrepare(SkypeMessage message)
        {
            SkypeCommandResultBase result = new SkypeCommandResultBase(this, message);

            if (string.IsNullOrEmpty(message.Message))
            {
                return(result);
            }

            string[] data = message.Message.Split(' ');
            if (!data.ElementAt(0).ToLower().Equals(this.CommandName))
            {
                return(result);
            }

            //result.Parameters = data[1];
            result.Success = true;
            return(result);
        }
コード例 #10
0
        public void HandleIncomeMessage(string source, SkypeMessage message, Action <string, string> responseAction)
        {
            try
            {
                string skypeMessage = message.Message.Trim();
                Match  chatBotMatch = Regex.Match(skypeMessage, @"^bot,(.*)");
                if (chatBotMatch.Success)
                {
                    string messageForBot = chatBotMatch.Groups[1].Value;
                    if (!string.IsNullOrEmpty(messageForBot))
                    {
                        string chatBotResponse = _chatterBot.Think(messageForBot);
                        if (!string.IsNullOrEmpty(chatBotResponse))
                        {
                            chatBotResponse = string.Format("@{0}, {1}", message.AuthorDisplayName, chatBotResponse);
                            responseAction(source, chatBotResponse.Trim());
                        }
                    }
                }
                else
                {
                    ISkypeCommand command = _commandProvider.GetCommand(skypeMessage);
                    if (null != command)
                    {
                        string response = command.RunCommand();
                        if (!string.IsNullOrWhiteSpace(response))
                        {
                            responseAction(source, response);
                        }
                    }
                }

                string ruleServiceResponse = _ruleService.GetApplicableRuleResult(message.Message);
                if (!string.IsNullOrEmpty(ruleServiceResponse))
                {
                    responseAction(source, ruleServiceResponse);
                }
            }
            catch (Exception ex)
            {
                ErrorLog.LogError("HandleInclomeMessage error:\r\nsource:{0}\r\nmessage:{1}\r\nerror:{2}", source, message.ToString(), ex.Message);
            }
        }
コード例 #11
0
ファイル: Main.cs プロジェクト: TheDarkMythos/Skype-Logger
        private Color getBackColor(ListViewItem l)
        {
            if (l.Tag == null)
            {
                return(Color.White);
            }

            SkypeMessage s = (SkypeMessage)l.Tag;

            if (s.isRemoved())
            {
                return(Color.PaleVioletRed);
            }

            if (s.isEdited())
            {
                return(Color.CornflowerBlue);
            }

            return(Color.White);
        }
コード例 #12
0
ファイル: Main.cs プロジェクト: TheDarkMythos/Skype-Logger
        private void _skype_MessageStatus(ChatMessage m, TChatMessageStatus t)
        {
            if (t == TChatMessageStatus.cmsReceived || t == TChatMessageStatus.cmsSent)
            {
                lock (messagesListView)
                {
                    foreach (ListViewItem l in chatsListView.Items)
                    {
                        if (((SkypeChat)l.Tag).Name == m.Chat.Name)
                        {
                            SkypeMessage s = new SkypeMessage(m);

                            ((SkypeChat)l.Tag).addMessage(s);

                            if (_current != null && _current.Name == m.ChatName)
                            {
                                messagesListView.Items.Add(new ListViewItem(new string[] { s.Sender, s.Body, s.Timestamp.ToString() })
                                {
                                    Tag = s
                                });
                            }

                            return;
                        }
                    }

                    ListViewItem lvi = new ListViewItem(m.Chat.FriendlyName)
                    {
                        Tag = new SkypeChat(m.Chat)
                    };
                    chatsListView.Items.Insert(0, lvi);

                    ((SkypeChat)lvi.Tag).addMessage(new SkypeMessage(m));
                }
            }
        }
コード例 #13
0
 private void _skypeListener_SkypeMessageReceived(string source, SkypeMessage message)
 {
     _handeMessageService.HandleIncomeMessage(source, message, SendMessage);
 }
コード例 #14
0
        public Unedited(SkypeMessage m)
        {
            InitializeComponent();

            messageTextBox.Text = m.Body;
        }
コード例 #15
0
 protected abstract SkypeCommandResultBase CheckAndPrepare(SkypeMessage message);
コード例 #16
0
        protected override SkypeCommandResultBase CheckAndPrepare(SkypeMessage message)
        {
            SkypeCommandResultBase result = new SkypeCommandResultBase(this, message);
            string command   = string.Empty,
                   group     = string.Empty,
                   attribute = string.Empty;

            if (string.IsNullOrEmpty(message.Message))
            {
                return(result);
            }

            string[] data = message.Message.Split(' ');
            if (data.Length == 1)
            {
                return(result);
            }

            if (!data[0].ToLower().Equals("select"))
            {
                return(result);
            }

            #region # parse parameter #
            switch (data[1].ToLower())
            {
            case "all": command = "all"; break;

            case "transaction":
            case "transactions": command = "transaction"; break;

            case "help": command = "help"; break;

            case "click":
            case "clicks": command = "click"; break;

            default: command = "all"; break;
            }
            #endregion
            #region # parse for atributes #

            if (data.Length == 5 && data[2].ToLower().Equals("for"))
            {
                if (data[3].ToLower().Equals("service"))
                {
                    group = "service";
                }
                else if (data[3].ToLower().Equals("country"))
                {
                    group = "country";
                }

                // add search text
                if (!string.IsNullOrEmpty(group))
                {
                    attribute = data[4].ToLower();
                }
            }

            #endregion

            result.Parameters.Add(command);
            result.Parameters.Add(group);
            result.Attributes.Add(attribute);
            result.Success = true;
            return(result);
        }