示例#1
0
        public void OnMessage(object sender, CQEventEventArgs e)
        {
            Match  m;
            string msg = null;

            if (e.GetType() == typeof(CQGroupMessageEventArgs))
            {
                msg = ((CQGroupMessageEventArgs)e).Message.Text;
            }
            else
            {
                msg = ((CQPrivateMessageEventArgs)e).Message.Text;
            }

            if ((m = Commands[0].Match(msg)).Success)
            {
                Ai.Reply(e, " 欢迎使用憨批链接生成器,输入格式\"生成!!{url}!!{title}!!{content}(optional:!!{image_url})\"");
            }
            else if ((m = Commands[1].Match(msg)).Success)
            {
                Ai.Reply(e, CQApi.CQCode_ShareLink(m.Groups[1].Value, m.Groups[2].Value, m.Groups[3].Value, m.Groups[4].Value).ToSendString());
            }
            else if ((m = Commands[2].Match(msg)).Success)
            {
                Ai.Reply(e, CQApi.CQCode_ShareLink(m.Groups[1].Value, m.Groups[2].Value, m.Groups[3].Value).ToSendString());
            }
        }
示例#2
0
 public static void Reply(CQEventEventArgs e, params object[] message)
 {
     if (e.GetType() == typeof(CQGroupMessageEventArgs))
     {
         ((CQGroupMessageEventArgs)e).FromGroup.SendGroupMessage(message);
     }
     else
     {
         ((CQPrivateMessageEventArgs)e).FromQQ.SendPrivateMessage(message);
     }
 }
示例#3
0
        /// <summary>
        /// 路由处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <returns></returns>
        public int Handle(object sender, CQEventEventArgs e)
        {
            foreach (CommandServiceProvider ACommand in CommandList)
            {
                if (ACommand.Handle(sender, e) == 1)
                {
                    return(1);
                }
            }

            return(0);
        }
示例#4
0
 public static UserService GetFromEvent(CQEventEventArgs CQEventArgsArgs)
 {
     if (CQEventArgsArgs == null)
     {
         return(null);
     }
     else if (CQEventArgsArgs is CQGroupMessageEventArgs)
     {
         return(new GroupUserService(((CQGroupMessageEventArgs)CQEventArgsArgs).FromGroup, ((CQGroupMessageEventArgs)CQEventArgsArgs).FromQQ));
     }
     else if (CQEventArgsArgs is CQPrivateMessageEventArgs)
     {
         return(new PersonalUserService(((CQPrivateMessageEventArgs)CQEventArgsArgs).FromQQ));
     }
     else
     {
         return(null);
     }
 }
示例#5
0
        /// <summary>
        /// 路由判断
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <returns>0:忽略 1:拦截</returns>
        public int Handle(object sender, CQEventEventArgs oe)
        {
            bool      Flag = false;
            EventType ActualEventType;
            dynamic   e = oe;

            if (oe == null)
            {
                ActualEventType = EventType;
            }
            else if (oe is CQGroupMessageEventArgs)
            {
                ActualEventType = EventType.GroupMessage;
            }
            else if (oe is CQPrivateMessageEventArgs)
            {
                ActualEventType = EventType.PrivateMessage;
            }
            else
            {
                return(0);
            }

            if ((EventType & ActualEventType) != ActualEventType)
            {
                return(0);
            }


            if (e != null)
            {
                if (MatchType == MatchType.Any)
                {
                    Flag = true;
                }
                else if ((MatchType & MatchType.Contains) == MatchType.Contains)
                {
                    if (((string)e.Message).Contains(MatchStr))
                    {
                        Flag = true;
                    }
                }
                else if ((MatchType & MatchType.StartsWith) == MatchType.StartsWith)
                {
                    if (((string)e.Message).StartsWith(MatchStr))
                    {
                        Flag = true;
                    }
                }
            }
            else
            {
                Flag = true;
            }

            if (Flag)
            {
                AbstractCommand Command = (AbstractCommand)System.Activator.CreateInstance(CommandProvider);

                Command.EventType       = EventType;
                Command.ActualEventType = ActualEventType;
                Command.MatchType       = MatchType;
                Command.CQEventArgsArgs = oe;
                return(Command.Handle());
            }

            return(0);
        }
示例#6
0
        public void OnMessage(object sender, CQEventEventArgs e)
        {
            CQCode atCode = null;
            Match  m;
            string msg;

            if (e.GetType() == typeof(CQGroupMessageEventArgs))
            {
                atCode = ((CQGroupMessageEventArgs)e).FromQQ.CQCode_At();
                msg    = ((CQGroupMessageEventArgs)e).Message.Text;
            }
            else
            {
                msg = ((CQPrivateMessageEventArgs)e).Message.Text;
            }

            if ((m = Commands[0].Match(msg.Trim(' '))).Success)
            {
                Ai.Reply(e, $" 想让爱梅斯帮你搜什么呀?请用 点歌+歌名 或者 点歌+歌名+By:+作者 呼叫我哦~");
            }
            else if ((m = Commands[1].Match(msg.ToLower())).Success)
            {
                if (m.Groups[1].Value.Trim(' ').Length == 0)
                {
                    Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), " 没告诉我歌名我怎么搜索呀");
                }
                else
                {
                    Music      music  = FindBetter(Client, m.Groups[1].Value.Trim(' ').Replace('\n', ' ').Replace('&', ' '), m.Groups[2].Value.Trim(' ').Replace('\n', ' ').Replace('&', ' '));
                    ClientType client = music.Client;
                    if (music.Stat == Music.Status.E404A)
                    {
                        if (music.StatText != null)
                        {
                            Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" 找不到这个名字的歌曲,你是不是想搜索{ m.Groups[2].Value.Trim(' ') }呢?");
                        }
                        else
                        {
                            Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), " 搜索不到哦...");
                        };
                    }
                    else if (music.Stat == Music.Status.E404B)
                    {
                        Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" 爱梅斯没有找到由这个作者演唱的歌曲哦");
                    }
                    else
                    {
                        Ai.Reply(e, $" [CQ:music,type={(client == ClientType.Netease ? "163" : "qq")},id={music.Id}]");
                        if (IsWithLink && client == ClientType.Netease)
                        {
                            Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" https://music.163.com/#/song?id={music.Id}");
                        }
                        else if (IsWithLink && client == ClientType.QQ)
                        {
                            Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" https://y.qq.com/n/yqq/song/{music.Id}_num.html");
                        }
                    }
                }
            }
            else if ((m = Commands[2].Match(msg)).Success)
            {
                if (m.Groups[1].Value.Trim(' ').Length == 0)
                {
                    Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), " 没告诉我歌名我怎么搜索呀");
                }
                else
                {
                    Music      music  = FindBetter(Client, m.Groups[1].Value.Trim(' ').Replace('\n', ' ').Replace('&', ' '));
                    ClientType client = music.Client;
                    if (music.Stat == Music.Status.E404A)
                    {
                        if (m.Groups[2].Value.Trim(' ').Length > 0)
                        {
                            Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" 找不到这个名字的歌曲,你是不是想搜索{ m.Groups[2].Value.Trim(' ') }呢?");
                        }
                        else
                        {
                            Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), " 搜索不到哦...");
                        }
                    }
                    else if (music.Stat == Music.Status.E404B)
                    {
                        Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" 爱梅斯找不到符合要求的歌曲呢...");
                    }
                    else
                    {
                        Ai.Reply(e, $" [CQ:music,type={(client == ClientType.Netease ? "163" : "qq")},id={music.Id}]");
                        if (IsWithLink && client == ClientType.Netease)
                        {
                            Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" https://music.163.com/#/song?id={music.Id}");
                        }
                        else if (IsWithLink && client == ClientType.QQ)
                        {
                            Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" https://y.qq.com/n/yqq/song/{music.Id}_num.html");
                        }
                    }
                }
            }
        }