public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            var content = context.Message;

            foreach (var item in RuntimeConfig.Config.GroupEvent)
            {
                if (item.Regex.IsMatch(content))
                {
                    if (context.FromQq == item.QQ)
                    {
                        _mahuaApi.SendGroupMessageExtension(context.FromGroup, item.DefaultReply);
                        continue;
                    }
                    var request = new Model.GroupEventRequest {
                        FromQq = context.FromQq, EventText = context.Message, EventType = item.EventType, Source = context.FromGroup, CreatedTime = DateTime.Now
                    };
                    //疲劳值, 防止过多重复磕头刷屏. 只回复第一次有效数据
                    var kotowLog = _qqRobotService.GetEventLog(request).GetAwaiter().GetResult()?.Data;
                    if (kotowLog != null)
                    {
                        continue;
                    }
                    kotowLog = _qqRobotService.CreateEventLog(request).GetAwaiter().GetResult()?.Data;
                    if (!string.IsNullOrWhiteSpace(item.EventReply))
                    {
                        var msg = item.EventReply
                                  .Replace("{Name}", _groupMemberInfosCache.GetGroupNike(context.FromGroup, context.FromQq))
                                  .Replace("{IsContinuous}", (kotowLog.ContinuousCheckIn > 1 ? "连续" : ""))
                                  .Replace("{ContinuousNum}", kotowLog.ContinuousCheckIn.ToString());
                        _mahuaApi.SendGroupMessageExtension(context.FromGroup, msg);
                    }
                }
            }
        }
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            // todo 填充处理逻辑
            //throw new NotImplementedException();
            if (context.Message.StartsWith("我要色图"))
            {
                if (context.Message.Equals("我要色图 状态"))
                {
                    GetStatus(context);
                }
                else if (context.Message.Equals("我要色图 排名"))
                {
                    GetRanking(context);
                }
                else if (context.Message.Equals("我要色图") || context.Message.StartsWith("我要色图 "))
                {
                    // 如果其他线程正在更新,先睡上10秒。
                    if (updateLock)
                    {
                        _mahuaApi.SendGroupMessage(context.FromGroup)
                        .At(context.FromQq)
                        .Text(" 老娘都说了还没更新完!花Q!花Q花Q!花~Q!")
                        .Done();
                        Thread.Sleep(10000);
                    }
                    NeedPorn(context);
                }
            }

            // 不要忘记在MahuaModule中注册
        }
 /// <summary>
 /// 获取排名状态
 /// </summary>
 /// <param name="context"></param>
 private void GetRanking(GroupMessageReceivedContext context)
 {
     _mahuaApi.SendGroupMessage(context.FromGroup)
     .At(context.FromQq)
     .Text($" 贵群当前最高分为{ranking.FirstOrDefault(kvp => kvp.Value == ranking.Values.Max()).Value},请继续努力哦!")
     .Done();
 }
 public void ProcessGroupMessage(GroupMessageReceivedContext context)
 {
     if (context.Message == "/help")
     {
         _mahuaApi.SendGroupMessage(context.FromGroup, Docs.GetDocsString());
     }
 }
        private async Task <string> UploadImageAsync(GroupMessageReceivedContext context)
        {
            var imagesFileNames = CQNumberHelper.GetImage(context.Message)?.ToList();

            if (imagesFileNames == null)
            {
                return("没图片at我搞毛啊.");
            }
            List <(string name, byte[] bytes)> images = new List <(string name, byte[] bytes)>();

            foreach (var fileName in imagesFileNames)
            {
                string imgUrl = await GetImageUrlAsync(fileName);

                if (string.IsNullOrEmpty(imgUrl))
                {
                    continue;
                }

                var imgBytes = await GetByteArrayAsync(imgUrl);

                if (imgBytes.Length == 0)
                {
                    continue;
                }

                images.Add((fileName, imgBytes));
            }

            var result = await _qqRobotService.UploadImage(images, context.FromQq);

            return($"{_groupMemberInfosCache.GetGroupNike(context.FromGroup, context.FromQq)}的图片:{result.Message}");
        }
Exemple #6
0
 public void ProcessGroupMessage(GroupMessageReceivedContext context)
 {
     if (context.Message.Equals("嘤嘤嘤"))
     {
         bool     flag = false;
         TimeSpan time = DateTime.Now - Helper.dateTime;
         flag = time.TotalSeconds > Helper.timeCD;
         if (flag)
         {
             string imageUrl = Helper.GetPath(_mahuaApi);
             if (imageUrl == null)
             {
                 _mahuaApi.SendGroupMessage(context.FromGroup).Text("正在获取最新图片").At(context.FromQq).Done();
             }
             else
             {
                 Helper.dateTime = DateTime.Now;
                 _mahuaApi.SendGroupMessage(context.FromGroup).Image(imageUrl).At(context.FromQq).Done();
                 System.GC.Collect();
             }
         }
         else
         {
             _mahuaApi.SendGroupMessage(context.FromGroup).Text(string.Format("正在冷却,剩余{0}秒", ((int)(Helper.timeCD - time.TotalSeconds)).ToString())).At(context.FromQq).Done();
         }
     }
 }
Exemple #7
0
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            // todo 填充处理逻辑
            throw new NotImplementedException();

            // 不要忘记在MahuaModule中注册
        }
Exemple #8
0
 public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel)
 {
     if (Config.ConfigModel.IsFuncOpen("查日常"))
     {
         WeiBoContentItem item = new WeiBoContentItem();
         if (nowModel.What == "查日常")
         {
             if (lastestItem != null)
             {
                 item = lastestItem.Time.Date == DateTime.Now.Date ? lastestItem : WeiboTool.GetWeiboByUid("1761587065", "1076031761587065", "#剑网3江湖百晓生#").OrderByDescending(p => p.Time).FirstOrDefault(); //WeiboTool.GetWeiBoTopicContentV1("剑网3江湖百晓生", "剑网3官方微博").FirstOrDefault();
             }
             else
             {
                 item = WeiboTool.GetWeiboByUid("1761587065", "1076031761587065", "#剑网3江湖百晓生#").OrderByDescending(p => p.Time).FirstOrDefault();//WeiboTool.GetWeiBoTopicContentV1("剑网3江湖百晓生", "剑网3官方微博").OrderByDescending(p => p.Time).FirstOrDefault();
             }
             if (item == null)
             {
                 _mahuaApi.SendGroupMessage(msg.FromGroup, "[日常]QAQ查询失败,请联系管理员");
             }
             else
             {
                 if (nowModel.Who == "文")
                 {
                     _mahuaApi.SendGroupMessage(msg.FromGroup).Text("[日常]来自 " + item.Author + ":").Newline().Text(item.ContentStr).Newline().Text(@"本信息由新浪微博-剑网3江湖百晓生-超话提供").Done();
                 }
                 else
                 {
                     _mahuaApi.SendGroupMessage(msg.FromGroup).Text(CQCode.SendLink("查日常-" + item.Time.ToShortDateString(), item.Pic, item.ContentStr.Replace("#剑网3江湖百晓生#", "").Trim(), item.Pic)).Done();
                 }
             }
         }
     }
     successor.ProcessRequset(msg, nowModel);
 }
 public void ProcessGroupMessage(GroupMessageReceivedContext context)
 {
     if (context.Message == "/gc")
     {
         _mahuaApi.SendGroupMessage(context.FromGroup, GomokuCredit.GomokuPlayersCredits.Any(p => p.Player == context.FromQq) ? $"您的Gomoku Credit当前为: {GomokuCredit.GomokuPlayersCredits.First(p => p.Player == context.FromQq).Credit}" : "哎呀,您还没有玩过五子棋,输入/gj来一盘吧?");
     }
 }
Exemple #10
0
        private void PlayerJoinGame(PlayGround game, GroupMessageReceivedContext context)
        {
            var result = game.PlayerJoinGame(context.FromQq);

            switch (result)
            {
            case PlayerJoinStat.GameFull:
                _mahuaApi.SendGroupMessage(context.FromGroup, "游戏已满,请等待游戏结束");
                return;

            case PlayerJoinStat.HaveJoined:
                _mahuaApi.SendGroupMessage(context.FromGroup, "你已经加入过了");
                return;

            case PlayerJoinStat.Success:
                if (game.GameFull)
                {
                    _mahuaApi.SendGroupMessage(context.FromGroup, $"白方:{CqCode.At(context.FromQq)}成功加入!");
                    game.StartGame();
                    PrintStartMessage(context.FromGroup, game);
                }
                else
                {
                    _mahuaApi.SendGroupMessage(context.FromGroup, $"黑方:{CqCode.At(context.FromQq)}成功加入!");
                }
                return;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Exemple #11
0
 public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel)
 {
     if (Config.ConfigModel.IsFuncOpen("签到"))
     {
         if (msg.Message == "签到")
         {
             var    signEnt = DALSign.GetSign(msg.FromQq);
             bool   signed  = false;
             string content = $"给小可爱10个赞!\r\n麻花疼:每天每Q最多点500赞~先到先得!";
             if (signEnt != null)
             {
                 signed = (signEnt.LastSign.Date == DateTime.Now.Date);
                 if (signed)
                 {
                     content = $"您于{signEnt.LastSign.ToShortTimeString()}在{(signEnt.SignGid == msg.FromGroup ? "本群" : "隔壁群")}签过到了!\r\n没有多的赞惹TuT";
                 }
             }
             if (!signed)
             {
                 SendLike(msg.FromQq);
                 DALSign.SetSign(msg.FromQq, msg.FromGroup);
             }
             _mahuaApi.SendGroupMessage(msg.FromGroup).
             Text(CQCode.SendLink(signed ? "您签过到了!" : "签到成功!", CQCode.GetQQHead(msg.FromQq), content))
             .Done();
             return;
         }
     }
     successor.ProcessRequset(msg, nowModel);
 }
 public void ProcessGroupMessage(GroupMessageReceivedContext context)
 {
     if (context.Message.Contains("嬲") || context.Message.Contains("kkp"))
     {
         //bool flag = false;
         //TimeSpan time = DateTime.Now - Helper.dateTimeCD;
         //flag = time.TotalSeconds > Helper.timeCD;
         //if (flag)
         {
             string imageUrl = Helper.GetPath();
             if (imageUrl == null)
             {
                 _mahuaApi.SendGroupMessage(context.FromGroup).Text("正在获取最新图片").At(context.FromQq).Done();
             }
             else
             {
                 Helper.dateTimeCD = DateTime.Now;
                 _mahuaApi.SendGroupMessage(context.FromGroup).Image(imageUrl).At(context.FromQq).Done();
                 //System.GC.Collect();
             }
         }
         //else
         //{
         //    _mahuaApi.SendGroupMessage(context.FromGroup).Text(string.Format("正在冷却,剩余{0}秒", ((int)(Helper.timeCD - time.TotalSeconds)).ToString())).At(context.FromQq).Done();
         //}
     }
 }
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            if (HotUpdateInfo.PreviousVersion)
            {
                return;
            }
            if (GroupCallDic.ContainsKey(context.FromGroup))
            {
                if (GroupCallDic[context.FromGroup] > Config.Instance.CallperMinute && Config.Instance.CallperMinute != 0)
                {
                    return;
                }
            }
            else
            {
                GroupCallDic[context.FromGroup] = 0;
            }

            Task.Factory.StartNew(() =>
            {
                var message = HttpUtility.HtmlDecode(context.Message)?.ToLower();
                if (!message.StartsWith("/") && Config.Instance.IsSlashRequired)
                {
                    return;
                }

                message = message.StartsWith("/") ? message.Substring(1) : message;

                var handler          = new GroupMessageHandler(context.FromQq.ToHumanQQNumber(), context.FromGroup.ToGroupNumber(), message);
                var(matched, result) = handler.ProcessCommandInput();
            }, TaskCreationOptions.LongRunning);
        }
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            string ec, et;

            ec = IniReadValue("com", "esiserenity", "C:\\ERC.ini");
            et = IniReadValue("com", "esitranquility", "C:\\ERC.ini");
            Jitas     J    = new Jitas();
            character C    = new character();
            string    res  = "null";
            string    com  = context.Message.Substring(0, 1);
            string    coml = "";

            if (context.Message.Length > 3)
            {
                coml = context.Message.Substring(0, 3);
            }
            else
            {
                coml = context.Message.Substring(0, 1);
            }
            if (context.Message == "帮助")
            {
                _mahuaApi.SendGroupMessage(context.FromGroup)
                .Text("EVE查询机器人使用说明")
                .Face("12").Newline()
                .Text("====物品查价功能").Face("151").Newline()
                .Text("|\t'" + ec + "'+精确名称(晨曦中文)\n|").Newline()
                .Text("|\t'" + et + "'+精确名称(宁静英文)\n|").Newline()
                .Face("54").Text("就是这样喵~").Face("54")
                .Done();
            }
            else if (com == ec)
            {
                string ser = context.Message.Replace(ec, "");
                res = J.esipriceget(ser);
                _mahuaApi.SendGroupMessage(context.FromGroup)
                .Text(ser + "晨曦查询结果:")
                .Newline()
                .Text(res)
                .Done();
            }
            else if (com == et)
            {
                string ser1 = context.Message.Replace(et, "");
                res = J.esipricegettq(ser1);
                _mahuaApi.SendGroupMessage(context.FromGroup)
                .Text(ser1 + "宁静查询结果:")
                .Newline()
                .Text(res)
                .Done();
            }
            else if (context.Message == "更新日志")
            {
                _mahuaApi.SendGroupMessage(context.FromGroup)
                .Newline()
                .Text("当前版本Public1.0\r\n开源1.0版本,仅提供最基础的吉他市场查询功能。\r\n开发者邮箱:[email protected]\r\n感谢大家的选择和使用!\r\n获取更多功能联系开发者")
                .Done();
            }
        }
Exemple #15
0
        /// <summary>
        /// 检查关键词
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public string CheckKeyWordAsync(GroupMessageReceivedContext context)
        {
            //btc
            Regex regEnglish = new Regex("^[a-z]");

            if (context.Message.Length < 5 && regEnglish.IsMatch(context.Message))
            {
                string key = ConfigManager.CheckSymbol(context.Message);
                if (!string.IsNullOrEmpty(key))
                {
                    string re = _coinmarketcapService.GetTicker(context.Message).Result;
                    return(re);
                }
            }

            //查币价 eos btc
            if (context.Message.Length > 4 && context.Message.Substring(0, 4).Equals("查币价 "))
            {
                string key = context.Message.Remove(0, 4);

                string reOkex  = _okexService.Ticker(key).Result;
                string reHuobi = _huobiService.Ticker(key).Result;

                string[] keys = context.Message.Split(' ');
                //eos
                string reCM = _coinmarketcapService.GetTicker(keys[1]).Result;

                return("【okex】" + reOkex + "\n【火币】" + reHuobi + "\n【cm】" + reCM);
            }

            //场外币价
            if (context.Message.Equals("场外币价"))
            {
                string huobiOTC = _huobiService.LegalTender().Result;

                return(huobiOTC);
            }

            //币圈消息
            if (context.Message.Equals("币圈消息"))
            {
                NewsResult[] re     = _newsService.RequestBiQuanApi();
                string       reNews = re[0].From + re[0].Content;
                for (int i = 1; i < re.Length; i++)
                {
                    reNews += "\n" + re[i].From + re[i].Content;
                }
                return(reNews);
            }

            //早报
            if (context.Message.Equals("早报"))
            {
                string reNews = _pmtownService.GetMorningPapaer().Result;
                return(reNews);
            }

            return(null);
        }
 public void ProcessGroupMessage(GroupMessageReceivedContext context)
 {
     if (context.Message.StartsWith("/image") && context.FromQq == Configuration.Me)
     {
         var image = context.Message.Substring(7);
         _mahuaApi.SendGroupMessage(context.FromGroup, CqCode.Image(image));
     }
 }
Exemple #17
0
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            var ats = CQNumberHelper.GetAtQQ(context.Message)?.ToList();

            if (ats != null && ats.Contains(_mahuaApi.GetLoginQq()) && (context.Message.Contains("--help") || context.Message.Contains("-h")))
            {
                _mahuaApi.SendGroupMessageExtension(context.FromGroup, RuntimeConfig.Config.HelpText);
            }
        }
Exemple #18
0
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            var qq    = context.FromQq;
            var group = context.FromGroup;
            var msg   = context.Message;

            var handler = new GroupMessageProcessor(qq, @group);

            handler.ProcessCommandInput(group, msg);
        }
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            var deskid   = context.FromGroup;
            var playerid = context.FromQq;
            var message  = context.Message;

            var desk = Desk.GetOrCreateDesk(deskid);

            desk.ParseMessage(playerid, message);
            // 不要忘记在MahuaModule中注册
        }
        /// <summary>
        /// 群消息转载
        /// </summary>
        /// <param name="context"></param>
        /// <param name="loginQq"></param>
        /// <returns></returns>
        private async Task GroupMsgCopy(GroupMessageReceivedContext context, string loginQq)
        {
            // 存在群消息转载
            var list = await GroupMsgCopyService.GetList(loginQq, context.FromGroup);

            foreach (var item in list)
            {
                _mahuaApi.SendGroupMessage(item.TargetGroup)
                .Text($"[来自{item.FromGroup}的群消息]:{context.Message}")
                .Done();
            }
        }
Exemple #21
0
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            //[看币价 btc]
            var re_coinmarketcap = _iMessageHanderService.CheckKeyWordAsync(context);

            if (!string.IsNullOrEmpty(re_coinmarketcap))
            {
                _mahuaApi.SendGroupMessage(context.FromGroup, re_coinmarketcap);
            }

            // 不要忘记在MahuaModule中注册
        }
 public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel)
 {
     if (Config.ConfigModel.IsFuncOpen("建议"))
     {
         if (nowModel.What == "建议")
         {
             _mahuaApi.SendPrivateMessage(Config.ConfigModel.MasterQQ).Text($"来自群{msg.FromGroup}的{msg.FromQq}:{nowModel.Who} {nowModel.How}").Done();
             return;
         }
     }
     successor.ProcessRequset(msg, nowModel);
 }
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            Task.Factory.StartNew(() =>
            {
                var message = HttpUtility.HtmlDecode(context.Message)?.ToLower();

                message = message.StartsWith("!") ? message.Substring(1) : message;

                var handler          = new GroupMessageHandler(context.FromQq.ToHumanQQNumber(), context.FromGroup.ToGroupNumber(), message);
                var(matched, result) = handler.ProcessCommandInput();
            }, TaskCreationOptions.LongRunning);
        }
 public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel)
 {
     if (Config.ConfigModel.IsFuncOpen("Roll点"))
     {
         if (nowModel.What.ToLower() == "/roll")
         {
             _mahuaApi.SendGroupMessage(msg.FromGroup).At(msg.FromQq).Text($"Roll了 {ToolClass.RandomGet(0,100)} 点").Done();
             return;
         }
     }
     successor.ProcessRequset(msg, nowModel);
 }
 /// <summary>
 /// 获取色图统计状态
 /// </summary>
 /// <param name="context"></param>
 private void GetStatus(GroupMessageReceivedContext context)
 {
     if (status.ContainsKey(context.FromQq))
     {
         if (DateTime.Now.Subtract(status[context.FromQq].dateTimeQueue.Peek()).TotalMinutes < (status[context.FromQq].buff ? 0.1 * cooldown : cooldown) &&
             status[context.FromQq].dateTimeQueue.Count >= quotaInCooldown)
         {
             _mahuaApi.SendGroupMessage(context.FromGroup)
             .At(context.FromQq)
             .Text($" 你刚刚才要过色图哦,等{(status[context.FromQq].buff ? 0.1 * cooldown : cooldown) - DateTime.Now.Subtract(status[context.FromQq].dateTimeQueue.Peek()).Minutes}分钟再试试看吧!")
             .Newline()
             .Text($"你今天已经要过{status[context.FromQq].used}张色图了,当前平均分是{status[context.FromQq].averageScore}。")
             .Done();
         }
         else
         {
             // 昨天得分最高的人可能还没有要过色图,但是因为Super AI Buff初始化的原因所以已经有这个Key了。
             if (status[context.FromQq].used == 0)
             {
                 _mahuaApi.SendGroupMessage(context.FromGroup)
                 .At(context.FromQq)
                 .Text(" 你今天还没有要过色图呢,快去要一份试试看吧!")
                 .Done();
             }
             else if (status[context.FromQq].used < (status[context.FromQq].buff ? 2 * quota : quota))
             {
                 _mahuaApi.SendGroupMessage(context.FromGroup)
                 .At(context.FromQq)
                 .Text($" 你现在就可以要色图哦!")
                 .Newline()
                 .Text($"你今天已经要过{status[context.FromQq].used}张色图了,当前平均分是{status[context.FromQq].averageScore}。")
                 .Done();
             }
             else
             {
                 _mahuaApi.SendGroupMessage(context.FromGroup)
                 .At(context.FromQq)
                 .Text($" 讨厌,你今天已经超过限额啦,明天再来试试吧!")
                 .Newline()
                 .Text($"你今天已经要过{status[context.FromQq].used}张色图了,当前平均分是{status[context.FromQq].averageScore}。")
                 .Done();
             }
         }
     }
     else
     {
         _mahuaApi.SendGroupMessage(context.FromGroup)
         .At(context.FromQq)
         .Text(" 你今天还没有要过色图呢,快去要一份试试看吧!")
         .Done();
     }
 }
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            if (context.FromQq == "80000000" || context.FromQq == "1000000" || context.FromQq == "1811436283")
            {
                return;
            }
            string replay = MessageSolve.GetReplay(context.FromQq, context.Message, _mahuaApi, context.FromGroup);

            if (replay != "")
            {
                _mahuaApi.SendGroupMessage(context.FromGroup, replay);
            }
        }
 public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel)
 {
     if (Config.ConfigModel.IsFuncOpen("菜单"))
     {
         if (msg.Message.Trim() == "菜单")
         {
             _mahuaApi.SendGroupMessage(msg.FromGroup).Text(Config.ConfigModel.MenuStr).Done();
             _mahuaApi.SendGroupMessage(msg.FromGroup).Text(CQCode.SendLink("小T完全手册", CQCode.GetQQHead(_mahuaApi.GetLoginQq()), "小T操作手册:最新最全的小T使用攻略", "https://traceless.site/index.php/archives/62/")).Done();
             return;
         }
     }
     successor.ProcessRequset(msg, nowModel);
 }
Exemple #28
0
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            //throw new NotImplementedException();

            //复读计数器计数,连续两个消息内容相同,计数器+1并将发言的群成员加入复读机成员名单,反之重置计数器和名单
            if (Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.msg == context.Message)
            {
                Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeatTime++;
                Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList.Add(context.FromQq);
            }
            else
            {
                Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.msg = context.Message;
                Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList.Clear();
                Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeatTime = 0;
            }

            //复读事件触发,根据执行模式进行禁言操作
            if (Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeatTime == Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeatExecuate)
            {
                //正常禁言:禁言最后一个发言的复读机
                if (Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateMode == 0)
                {
                    _mahuaApi.BanGroupMember(context.FromGroup, context.FromQq, TimeSpan.FromMinutes(Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateTime));
                }

                //随机禁言:从复读机名单中随机选择一个禁言
                if (Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateMode == 1)
                {
                    Random ran     = new Random();
                    int    RandKey = ran.Next(0, Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList.Count() - 1);
                    _mahuaApi.BanGroupMember(context.FromGroup, Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList[RandKey], TimeSpan.FromMinutes(Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateTime));
                }

                //强力禁言:禁言在复读机名单中的额所有人
                if (Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateMode == 2)
                {
                    for (int k = 0; k <= Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList.Count; k++)
                    {
                        _mahuaApi.BanGroupMember(context.FromGroup, Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList[k], TimeSpan.FromMinutes(Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateTime));
                    }
                }

                //重置计数器和复读机名单
                Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeatTime = 0;
                Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList.Clear();
            }

            // 不要忘记在MahuaModule中注册
        }
Exemple #29
0
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            var content = context.Message;
            var ats     = CQNumberHelper.GetAtQQ(context.Message)?.ToList();

            if (ats == null || !ats.Contains(_mahuaApi.GetLoginQq()))
            {
                return;
            }

            var m = regex_date.Match(content);

            if (!m.Success || m.Length == 0)
            {
                return;
            }
            DateTime date    = DateTime.Now;
            string   dateStr = m.Groups[1].Value;

            switch (dateStr)
            {
            case "今日":
            case "今天":
                date = DateTime.Today;
                break;

            case "昨日":
            case "昨天":
                date = DateTime.Today.AddDays(-1);
                break;

            default:
                date = new DateTime(date.Year, int.Parse(m.Groups[3].Value), int.Parse(m.Groups[4].Value));
                break;
            }


            foreach (var item in RuntimeConfig.Config.GroupEventSerach)
            {
                if (!context.Message.Contains(item.Key))
                {
                    continue;
                }
                var logs = SearchEventLog(item, date, context.FromGroup);
                if (logs != null)
                {
                    SendMessage(logs.Data?.Items, logs.Data?.Total ?? 0, item, date, context.FromGroup);
                }
            }
        }
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            // 只上报#开头的晚安式消息
            string message = context.Message;

            message = message.Trim();

            if (message.StartsWith("#"))
            {
                ulong from_qq    = Convert.ToUInt64(context.FromQq);
                ulong from_group = Convert.ToUInt64(context.FromGroup);
                ulong add_time   = Convert.ToUInt64(UnixTimestamp.GetTimeStampLong());

                string nick_name = string.Empty;
                try
                {
                    nick_name = _mahuaApi.GetGroupMemberInfo(context.FromGroup, context.FromQq).NickName;
                }
                catch
                {
                    nick_name = from_qq.ToString();
                }

                AutoGoodNightLogCache cache = new AutoGoodNightLogCache();

                cache.Init(dbConnString);

                try
                {
                    string localPath = AppDomain.CurrentDomain.BaseDirectory;

                    localPath = Path.Combine(localPath, "data", "image");

                    // 图片酷Q码的转换
                    message = _replaceMsg(localPath, message);

                    // Emojid酷Q码的转换,暂时调整到获取的时候在转换
                    // message = CqpEmoji.EmojiStringToNormalString(message);

                    cache.InsertLog(from_qq, from_group, message, add_time, nick_name);
                }
                catch (Exception e)
                {
                    ILog Logger = Newbe.Mahua.Logging.LogProvider.For <string>();
                    Logger.Debug(e.StackTrace);
                }
            }
        }