public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; long groupId = Convert.ToInt64(routeMsg.GroupId); long userId = Convert.ToInt64(routeMsg.UserId); long discussId = Convert.ToInt64(routeMsg.DiscussId); var type = routeMsg.MessageType; string group, sender, message = routeMsg.Message.RawMessage; var data = CoolQDispatcher.Current.SessionList[(CoolQIdentity)routeMsg.Identity].GetDataAsync().Result; if (type == MessageType.Private) { group = "私聊"; sender = data.Name; } else if (type == MessageType.Discuss) { group = data.Name; sender = routeMsg.UserId; } else { var userInfo = data?.GroupInfo?.Members ?.FirstOrDefault(i => i.UserId == userId) ?? CoolQHttpApiClient.GetGroupMemberInfo(routeMsg.GroupId, routeMsg.UserId).Data; group = data?.Name; sender = string.IsNullOrEmpty(userInfo.Card) ? userInfo.Nickname : userInfo.Card; } Logger.Message($"({group}) {sender}:\r\n {CoolQCode.DecodeToString(message).Replace("\n", "\n ")}"); return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; _routeMsg = routeMsg; _identity = (CoolQIdentity)_routeMsg.Identity; _plugins = PluginManager.Current.Plugins.OfType <MessagePlugin>() .Where(k => (k.MiddlewareConfig as BackendConfig)?.CanDisabled == true) .Where(k => k.TargetAuthority != Authority.Root); if (!DisabledList.ContainsKey(_identity)) { DisabledList.Add(_identity, new List <Guid>()); } _disabled = DisabledList[_identity]; if (_routeMsg.CurrentAuthority == Authority.Public && _routeMsg.MessageType == MessageType.Group) { return(_routeMsg.ToSource(DefaultReply.AdminOnly)); } if (List) { return(ShowPluginList()); } if (DisabledPlugin != null) { return(EnablePlugin()); } if (EnabledPlugin != null) { return(DisablePlugin()); } return(_routeMsg.ToSource(DefaultReply.ParamError)); }
private const string MagicalWord = " ."; // 解决底层跨平台傻吊bug的方案 public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; FontFamily font = GetRandFont(GetFonts()); var pandas = GetPandas(); if (UseAll) { List <Bitmap> bmps = pandas.Select(item => GenerateOne(font, item.FullName)).ToList(); int maxWidthP = bmps.Max(item => item.Width); int maxHeight = bmps.Sum(item => item.Height); const int addWidth = 50; int maxWidth = maxWidthP + addWidth; Bitmap bitmap = new Bitmap(maxWidth, maxHeight); using (Graphics g = Graphics.FromImage(bitmap)) using (Brush b = new SolidBrush(Color.Black)) using (Pen p = new Pen(Color.Black)) using (Font f = new Font("等线", 30, FontStyle.Bold)) { g.Clear(Color.White); int y = 0; for (var i = 0; i < bmps.Count; i++) { var item = bmps[i]; g.TextRenderingHint = TextRenderingHint.AntiAlias; g.DrawImage(item, addWidth + maxWidthP / 2f - item.Width / 2f, y); string numStr = (i + 1).ToString(); var size = g.MeasureString(numStr, f); g.DrawString(numStr, f, b, addWidth / 2f - size.Width / 2f, y + item.Height / 2f - size.Height / 2f); g.DrawRectangle(p, new Rectangle(0, y, addWidth, item.Height)); g.DrawRectangle(p, new Rectangle(addWidth, y, maxWidthP, item.Height)); y += item.Height; } } var cqImg2 = new FileImage(bitmap, 75).ToString(); return(routeMsg.ToSource(cqImg2)); } string pandaPath; if (PandaNum >= 1) { int trueNum = PandaNum - 1; if (PandaNum > pandas.Length) { return(routeMsg.ToSource($"超过了范围哦,一共有{pandas.Length}张表情", true)); } pandaPath = pandas[trueNum].FullName; } else { pandaPath = GetRandPanda(pandas); } Bitmap bmp = GenerateOne(font, pandaPath); var cqImg = new FileImage(bmp, 65).ToString(); return(routeMsg.ToSource(cqImg)); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (routeMsg.MessageType == MessageType.Private) { return(null); } string[] ids = CoolQCode.GetAt(routeMsg.RawMessage); if (ids == null || !ids.Contains(routeMsg.ReportMeta.SelfId)) { return(null); } if (StaticRandom.NextDouble() < 0.9) { return(routeMsg .ToSource("", true) .RandomDelaySeconds(5)); } else { var cqImg = new FileImage(Path.Combine(PandaDir, "at.jpg")); return(routeMsg.ToSource(cqImg.ToString())); } }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; BllUserRole bllUserRole = new BllUserRole(); List <TableUserRole> userInfo = bllUserRole.GetUserRoleByQq(long.Parse(routeMsg.UserId)); if (userInfo.Count == 0) { return(routeMsg.ToSource(DefaultReply.IdNotBound, true)); } var id = userInfo[0].UserId; var client = new OldSiteApiClient(); var beatmapSets = client.GetBeatmapSetsByCreator(new UserId(id)) .Where(k => k.Beatmaps.FirstOrDefault()?.LastUpdate.AddDays(28) < DateTimeOffset.Now) .ToArray(); if (beatmapSets.Length == 0) { return(routeMsg.ToSource("你没有Graveyard Beatmaps!", true)); } var beatmapSet = beatmapSets[StaticRandom.Next(beatmapSets.Length)]; var cqMusic = new CustomMusic( $"https://osu.ppy.sh/s/{beatmapSet.Id}", $"https://b.ppy.sh/preview/{beatmapSet.Id}.mp3", beatmapSet.Title, $"{beatmapSet.Artist}\r\n({beatmapSet.FavouriteCount} fav)", $"https://b.ppy.sh/thumb/{beatmapSet.Id}l.jpg"); return(routeMsg .ToSource(cqMusic.ToString()) .ForceToSend()); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; var parameters = (Params)Parameters; bool isParam1 = int.TryParse(parameters.Param1, out int param1); bool isParam2 = int.TryParse(parameters.Param2, out int param2); bool isCNum = int.TryParse(parameters.Count, out int count); if (!isParam1) { return(routeMsg .ToSource(GetRand().ToString(), true) .ForceToSend()); } if (!isParam2) { return(routeMsg .ToSource(GetRand(param1).ToString(), true) .ForceToSend()); } if (!isCNum) { return(routeMsg .ToSource(GetRand(param1, param2).ToString(), true) .ForceToSend()); } return(routeMsg .ToSource(GetRandMessage(param1, param2, parameters.Repeat, count), true) .ForceToSend()); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (routeMsg.MessageType == MessageType.Private) { return(null); } string groupId = routeMsg.GroupId ?? routeMsg.DiscussId; if (!GroupDic.ContainsKey(groupId)) { GroupDic.GetOrAdd(groupId, new GroupSettings { GroupId = groupId, }); GroupDic[groupId].Task = Task.Run(DecreaseQueue); //GroupDic[groupId].Thread.Start(); } if (GroupDic[groupId].IntQueue >= MaxNum && !GroupDic[groupId].Locked) { GroupDic[groupId].Locked = true; Logger.Debug(groupId + " locked"); Logger.Success(groupId + "的" + routeMsg.UserId + "触发了复读"); Thread.Sleep(StaticRandom.Next(1000, 8000)); return(routeMsg.ToSource(routeMsg.RawMessage)); } GroupDic[groupId].IntQueue++; //Logger.Debug(groupId + " incresed to " + GroupDic[groupId].IntQueue); return(null); Task DecreaseQueue() { while (true) { Thread.Sleep(StaticRandom.Next(1000, 10000)); if (GroupDic[groupId].IntQueue <= 0) { if (GroupDic[groupId].Locked) { GroupDic[groupId].Locked = false; Logger.Debug(groupId + " unlocked"); } continue; } if (StaticRandom.NextDouble() < 0.02) { Thread.Sleep(StaticRandom.Next(30000, 45000)); } GroupDic[groupId].IntQueue--; //Logger.Debug(groupId + " decresed to " + GroupDic[groupId].IntQueue); } } }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; string userName = Decode(UserName); if (string.IsNullOrEmpty(userName)) { return(routeMsg.ToSource(DefaultReply.ParamMissing)); } BllUserRole bllUserRole = new BllUserRole(); OldSiteApiClient client = new OldSiteApiClient(); int userNum = client.GetUser(UserComponent.FromUserName(UserName), out var userObj); if (userNum == 0) { return(routeMsg.ToSource(DefaultReply.IdNotFound, true)); } if (userNum > 1) { // ignored } var role = bllUserRole.GetUserRoleByQq(long.Parse(routeMsg.UserId)); if (role.Count != 0) { if (role[0].CurrentUname == userObj.UserName) { return(routeMsg.ToSource("我早就认识你啦.", true)); } string msg = role[0].CurrentUname + ",我早就认识你啦. 有什么问题请找Mother Ship(扔锅)"; return(routeMsg.ToSource(msg, true)); } var newRole = new TableUserRole { UserId = userObj.UserId, Role = "creep", QQ = long.Parse(routeMsg.UserId), LegacyUname = "[]", CurrentUname = userObj.UserName, IsBanned = false, RepeatCount = 0, SpeakingCount = 0, Mode = 0, }; var exist = bllUserRole.GetUserRoleByUid(userObj.UserId); if (exist != null && exist.Count > 0) { return(routeMsg.ToSource("这个账号已经被QQ: " + exist.First().QQ + "绑定啦,请联系妈船或对方QQ哦.")); } int c = bllUserRole.InsertUserRole(newRole); return(c < 1 ? routeMsg.ToSource("由于各种强大的原因,绑定失败..") : routeMsg.ToSource("明白了," + userObj.UserName + ",多好的名字呢.")); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; long userId = Convert.ToInt64(routeMsg.UserId); string message = routeMsg.Message.RawMessage; var requestAuth = GetRequestAuthority(message, out var fullCommand); switch (requestAuth) { case Authority.Public: { var data = CoolQDispatcher.Current.SessionList[(CoolQIdentity)routeMsg.Identity].GetDataAsync().Result; if (data.GroupInfo?.Admins.Count(q => q.UserId == userId) != 0) { requestAuth = Authority.Admin; } if (userId == 2241521134) { requestAuth = Authority.Root; } } break; case Authority.Admin: { var data = CoolQDispatcher.Current.SessionList[(CoolQIdentity)routeMsg.Identity].GetDataAsync().Result; if (data.GroupInfo?.Admins.Count(q => q.UserId == userId) == 0) { Logger.Raw("Access denied."); requestAuth = Authority.Public; SendMessage(routeMsg.ToSource(DefaultReply.FakeAdmin).Handle()); } } break; case Authority.Root: if (userId != 2241521134) { Logger.Raw("Access denied."); requestAuth = Authority.Public; SendMessage(routeMsg.ToSource(DefaultReply.FakeRoot).Handle()); } break; } if (fullCommand != null) { routeMsg.FullCommand = fullCommand; } if (requestAuth != null) { routeMsg.CurrentAuthority = requestAuth.Value; } return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (routeMsg.MessageType == MessageType.Private) { return(null); } var imgList = CoolQCode.GetImageInfo(routeMsg.RawMessage); if (imgList == null) { return(null); } string groupId = routeMsg.GroupId ?? routeMsg.DiscussId; if (!GroupDic.ContainsKey(groupId)) { GroupDic.GetOrAdd(groupId, new GroupSettings { GroupId = groupId, routeMsg = routeMsg }); } foreach (var item in imgList) { if (item.Extension.ToLower() == ".gif") { continue; } if (item.FileInfo.Exists) { GroupDic[groupId].PathQueue.Enqueue(item.FileInfo.FullName); } else { string path = HttpClient.SaveImageFromUrl(item.Url, System.Drawing.Imaging.ImageFormat.Jpeg); GroupDic[groupId].PathQueue.Enqueue(path); } #if DEBUG _totalCount++; #endif } if (GroupDic[groupId].Task == null || GroupDic[groupId].Task.IsCompleted || GroupDic[groupId].Task.IsCanceled) { GroupDic[groupId].Task = Task.Run(() => RunDetector(GroupDic[groupId])); #if DEBUG Logger.Info("[" + groupId + "] (熊猫) 共 " + _totalCount); #endif } return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (!routeMsg.RawMessage.Contains("数咩羊")) { return(null); } using (Session session = new Session(8000, routeMsg.Identity, routeMsg.UserId)) { SendMessage(routeMsg.ToSource("睡不着那就一起数咩羊吧。来,我先开始,1!")); int count = 1; try { CoolQRouteMessage obj = (CoolQRouteMessage)session.GetMessage(); do { System.Threading.Thread.Sleep(1000); if (int.TryParse(obj.RawMessage, out var res)) { if (res == count + 1) { count += 2; SendMessage(routeMsg.ToSource(count.ToString())); } else { SendMessage(routeMsg.ToSource($"你数错啦,是不是困了?现在是{count},到你了")); } } else { SendMessage(routeMsg.ToSource($"不对!要好好数数哦!现在是{count},到你了")); } System.Threading.Thread.Sleep(1000); if (count > 15) { SendMessage(routeMsg.ToSource("不数羊了,人家都困了,聊点别的吧!")); break; } obj = (CoolQRouteMessage)session.GetMessage(); } while (obj != null); } catch (TimeoutException) { SendMessage(routeMsg.ToSource("数不动了吗,那就好好睡觉咯,晚安!")); } } return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (routeMsg.RawMessage == "收到福袋,请使用新版手机QQ查看") { CoolQHttpApiClient.DeleteMessage(routeMsg.MessageId); } return(null); //return routeMsg.ToSource("已撤回福袋。若需关闭,请使用 \"/plugin -disable PackDetector\""); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; string id; string uname; OldSiteApiClient client = new OldSiteApiClient(); if (UserName == null) { BllUserRole bllUserRole = new BllUserRole(); List <TableUserRole> userInfo = bllUserRole.GetUserRoleByQq(long.Parse(routeMsg.UserId)); if (userInfo.Count == 0) { return(routeMsg.ToSource(DefaultReply.IdNotBound, true)); } id = userInfo[0].UserId.ToString(); uname = userInfo[0].CurrentUname; } else { int userNum = client.GetUser(UserComponent.FromUserName(UserName), out var userObj); if (userNum == 0) { return(routeMsg.ToSource(DefaultReply.IdNotFound, true)); } if (userNum > 1) { // ignored } id = userObj.UserId.ToString(); uname = userObj.UserName; } var eloInfo = EloApiClient.GetEloByUid(long.Parse(id)); switch (eloInfo.Result.ToLower()) { case "fail" when eloInfo.Message.ToLower() == "unranked": return(routeMsg.ToSource(uname + "大概没有参加什么mapping赛事..所以没有数据..", true)); case "fail": return(routeMsg.ToSource("未知错误..查询不到..", true)); default: return(routeMsg.ToSource( $"{eloInfo.User.Name},有elo点{Math.Round(eloInfo.User.Elo, 2)},当前#{eloInfo.User.Ranking}.", true)); } }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; var plugins = DaylilyCore.Current.PluginManager.ApplicationInstances .OrderByDescending(k => k.MiddlewareConfig?.Priority); StringBuilder sb = new StringBuilder(); sb.AppendLine("Application plugins:"); string prefix = ""; int prevPrior = int.MinValue; foreach (var plugin in plugins) { string prior = "", tag = ""; if (prevPrior != plugin.MiddlewareConfig.Priority) { prevPrior = plugin.MiddlewareConfig.Priority; prior = $" ({prevPrior})"; } if (scope.DisabledApplications.Contains(plugin)) { tag = " (已禁用)"; } sb.Append(plugin.Name + prior + tag + " ➡️ "); if (plugin.RunInMultiThreading) { } else { sb.Remove(sb.Length - 4, 4); sb.Append(" ↩️"); sb.AppendLine(); prefix += " "; sb.Append(prefix); } } sb.Remove(sb.Length - 4, 4); sb.Append(" ↩️"); sb.AppendLine(); sb.AppendLine("Command plugins"); return(routeMsg.ToSource(sb.ToString().Trim('\n').Trim('\r'))); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; CabbageCommon.MessageQueue.Enqueue(routeMsg); bool isTaskFree = CabbageCommon.TaskQuery == null || CabbageCommon.TaskQuery.IsCanceled || CabbageCommon.TaskQuery.IsCompleted; if (isTaskFree) { CabbageCommon.TaskQuery = Task.Run(() => CabbageCommon.Query()); } return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; var domain = GetWebsite(routeMsg); if (string.IsNullOrEmpty(domain)) { return(routeMsg.ToSource("并不支持这个网站哦~~")); } var k = new Api(domain); var result = k.PopularRecentAsync().Result; var post = result?.FirstOrDefault(); return(post == null ? null : routeMsg.ToSource(new FileImage(new Uri(post.JpegUrl)))); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; _routeMsg = routeMsg; try { using (_session = new Session(1000 * (60 * 2), _routeMsg.Identity, _routeMsg.UserId)) { try { NavigatableNode memberMenu, voteMenu, inputQqIdScene, handleScene; InitNode(out memberMenu, out voteMenu, out inputQqIdScene, out handleScene); var program = new NavigatableTree(mainNode, obj => { const string mainText = "· 管理员菜单:\r\n" + " 1. 群员指令\r\n" + " 2. 投票指令"; SendMessage(routeMsg.ToSource(mainText)); CoolQRouteMessage cmMain = SessionCondition("1", "2"); switch (cmMain.RawMessage) { case "1": return(new Action(memberMenuNode)); default: return(new Action()); } }); program.Root.AddChild(memberMenu); program.Root.AddChild(voteMenu); memberMenu.AddChild(inputQqIdScene); inputQqIdScene.AddChild(handleScene); program.Run(); } catch (TimeoutException e) { } } } catch (NotSupportedException) { } return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (routeMsg.GroupId == "133605766") { return(null); } if (routeMsg.GroupId == null) { return(null); } if (routeMsg.ArgString.Trim() == "") { return(routeMsg.ToSource("要睡多少小时呀??", true)); } double sleepTime; if (SleepTime > 12) { sleepTime = 12; } else if (SleepTime < 0.5) { sleepTime = 0.5; } else if (SleepTime > 0) { sleepTime = SleepTime; } else { return(routeMsg.ToSource("穿越是不可以的……", true)); } DateTime dt = new DateTime(); dt = dt.AddHours(sleepTime); int s = (int)(dt.Ticks / 10000000); CoolQHttpApiClient.SetGroupBan(routeMsg.GroupId, routeMsg.UserId, s); string msg = "祝你一觉睡到" + DateTime.Now.AddHours(sleepTime).ToString("HH:mm") + " :D"; return(routeMsg.ToSource(msg, true)); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (routeMsg.MessageType == MessageType.Private) { return(null); } var auth = PermissionCheckerApp.GetActualAuthority(routeMsg, out var fullCommand); if (fullCommand == "poweron") { bool alive = IsMeAlive(routeMsg.CoolQIdentity); if (alive) { return(routeMsg.ToSource("我还活着呢,你想干什么压")); } if (auth == Authority.Public) { return(routeMsg.ToSource("若想开机,请联系管理员使用此命令").Handle()); } while (IsScanning) { Thread.Sleep(10); } ExpireTimeCollection[routeMsg.CoolQIdentity] = null; ExpireTimeCollection.Remove(routeMsg.CoolQIdentity); SaveConfig(); return(routeMsg.ToSource("啊,活过来了")); } if (routeMsg.RawMessage.Contains("/poweroff") || routeMsg.RawMessage.Contains("黄花菜")) { bool alive = IsMeAlive(routeMsg.CoolQIdentity); if (!alive) { return(routeMsg.ToSource("黄花菜当前是关机状态哦,若想开机请联系管理员使用/poweron命令").Handle()); } } return(IsMeAlive(routeMsg.CoolQIdentity) ? null : routeMsg.HandleAndCancel()); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (routeMsg.CurrentAuthority != Authority.Root) { return(routeMsg.ToSource(DefaultReply.RootOnly, true)); } _rebootInfo = new RebootInfo(DateTime.Now, routeMsg.CoolQIdentity); SaveSettings(_rebootInfo); SendMessage(routeMsg .ToSource("开始重启...") .ForceToSend() ); Environment.Exit(0); return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (routeMsg.MessageType == MessageType.Private) return null; string groupId = routeMsg.GroupId ?? routeMsg.DiscussId; if (!GroupDic.ContainsKey(groupId)) GroupDic.GetOrAdd(groupId, new GroupSettings { GroupId = groupId, routeMsg = routeMsg }); var imgList = CoolQCode.GetImageInfo(routeMsg.RawMessage); if (imgList == null) return null; foreach (var item in imgList) { if (item.Extension.ToLower() == ".gif") continue; if (item.FileInfo.Exists) { GroupDic[groupId].PathQueue.Enqueue(item.FileInfo.FullName); } else { var root = WebRequest.GetImageFromUrl(item.Url, item.Md5, item.Extension); GroupDic[groupId].PathQueue.Enqueue(root); } _totalCount++; } if (GroupDic[groupId].Task == null || GroupDic[groupId].Task.IsCompleted || GroupDic[groupId].Task.IsCanceled) { GroupDic[groupId].Task = Task.Run(() => RunDetector(GroupDic[groupId])); Logger.Info("[" + groupId + "] (龙图) 共 " + _totalCount); } return null; }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; switch (routeMsg.CommandName) { case "dice": return(routeMsg .ToSource(new Dice()) .ForceToSend()); case "rps": return(routeMsg .ToSource(new Rps()) .ForceToSend()); default: return(null); } }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (string.IsNullOrEmpty(routeMsg.FullCommand)) { return(null); } string fullCmd = routeMsg.FullCommand; var ca = new CommandAnalyzer <StreamParamDivider>(); ca.Analyze(fullCmd, routeMsg); if (!DaylilyCore.Current.PluginManager.ContainsPlugin(routeMsg.CommandName)) { return(null); } return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (string.IsNullOrEmpty(routeMsg.FullCommand)) { return(null); } if (!CommandRate.Keys.Contains(routeMsg.CommandName)) { CommandRate.TryAdd(routeMsg.CommandName, 1); } else { CommandRate[routeMsg.CommandName]++; } SaveSettings(CommandRate, "CommandRate"); return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (routeMsg.MessageType == MessageType.Private) { return(null); } var msg = routeMsg.RawMessage.ToUpper(); bool action = msg.Contains("摸图") || msg.Contains("看图") || msg.Contains("M4M"); bool ask = msg.Contains("吗") || msg.Contains("么") || msg.Contains("?") || msg.Contains("?"); bool[] matched = { msg.Contains("帮") && msg.Contains("摸"), msg.Contains("求摸"), msg.Contains("有") && action && ask, msg.Contains("有没有") && action, }; var id = routeMsg.UserId; if (matched.Any(b => b) && (!Tipped.ContainsKey(id) || Tipped.ContainsKey(id) && Tipped[id] - DateTime.Now > new TimeSpan(7, 0, 0, 0))) { if (Tipped.ContainsKey(id)) { Tipped[id] = DateTime.Now; } else { Tipped.TryAdd(id, DateTime.Now); } SaveSettings(); return(routeMsg.ToSource("你是在找人帮忙摸图吗?不想无助等待,立刻向我私聊\"/m4m\"。", true)); } return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; _cm = routeMsg; string[] fullContent = ConcurrentFile.ReadAllLines(_content); if (EnabledAlbumId > 0 || DisabledAlbumId > 0) { return(_cm.CurrentAuthority == Authority.Root ? ModuleManageAlbum(fullContent) : routeMsg.ToSource(DefaultReply.RootOnly)); } if (Like > 0) { return(ModuleLike(fullContent)); } if (Hot) { return(ModuleHot()); } if (Top || TopNum > 0) { return(ModuleTop()); } if (ClearCache) { ClearContent(); return(_cm .ToSource("已重新建立缓存") .ForceToSend()); } return(ModuleSearch(fullContent)); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (routeMsg.MessageType == MessageType.Private) { return(routeMsg.ToSource("你想怎么样。。")); } if (routeMsg.CurrentAuthority == Authority.Public) { return(routeMsg.ToSource("请你坐下,,让你的管理员来处决我")); } var time = TimeSpan.FromMinutes(ElapsingTime); if (time < TimeSpan.FromMinutes(1) || time > TimeSpan.FromDays(7)) { return(routeMsg.ToSource("时间范围设置不对,,你故意的8,,,")); } var plugin = PluginManager.Current.GetPlugin <ShutdownWatcherApp>(); if (plugin == null) { return(routeMsg.ToSource("操作失败了。。当前未装载相关插件")); } var newTime = DateTime.Now + time; while (plugin.IsScanning) { Thread.Sleep(10); } plugin.ExpireTimeCollection.Add(routeMsg.CoolQIdentity, newTime); plugin.SaveConfig(); return(routeMsg.ToSource($"我自闭去了。。等我{newTime:g}回来")); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (!routeMsg.RawMessage.Equals("/转")) { return(null); } using (Session session = new Session(1000 * 60, routeMsg.Identity, routeMsg.UserId)) { SendMessage(routeMsg.ToSource("请发送图片,5张以内,1分钟内有效。", true)); try { CoolQRouteMessage routeMessage = (CoolQRouteMessage)session.GetMessage(); var infoList = CoolQCode.GetImageInfo(routeMessage.RawMessage); if (infoList == null) { return(routeMessage.ToSource("你发送的消息没有包含图片。")); } if (infoList.Length > 5) { return(routeMessage.ToSource("你发送的图片过多。")); } List <Image> imgList = infoList.Select(imgInfo => HttpClient.GetImageFromUrl(imgInfo.Url)) .ToList(); var sendList = HandleImage(imgList); return(routeMessage.ToSource(string.Join("\r\n", sendList))); } catch (TimeoutException) { return(null); } } }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var routeMsg = scope.RouteMessage; if (DisabledList.Keys.Contains((CoolQIdentity)routeMsg.Identity)) { var guidList = DisabledList[(CoolQIdentity)routeMsg.Identity]; PermissionCheckerApp.GetRequestAuthority(routeMsg.RawMessage, out var fullCommand); var cmdName = fullCommand?.Split(' ')[0]; foreach (var plugin in Bot.Backend.PluginManager.Current.ApplicationInstances) { if (!guidList.Contains(plugin.Guid)) { continue; } scope.DisabledApplications.Add(plugin); } if (cmdName == null) { return(null); } Guid?pluginGuid = Bot.Backend.PluginManager.Current.GetPlugin(cmdName)?.Guid; if (pluginGuid == null) { return(null); } if (guidList.Contains(pluginGuid.Value)) { return(routeMsg.MessageType == MessageType.Private ? routeMsg.ToSource("你已禁用此命令.").Handle() : routeMsg.ToSource("本群已禁用此命令.").Handle()); } } return(null); }
public override CoolQRouteMessage OnMessageReceived(CoolQScopeEventArgs scope) { var rnd = StaticRandom.NextDouble(); if (rnd >= 100f * 5 / 30000) { return(null); } var routeMsg = scope.RouteMessage; var apis = _apiTimes.Where(k => k.Value < 100).Select(k => k.Key).ToArray(); var api = apis[StaticRandom.Next(apis.Length)]; var response = Client.SendText(api, routeMsg.RawMessage, routeMsg.UserId, routeMsg.GroupId); _apiTimes[api]++; if (response.Intent.Code == 4003) { _apiTimes[api] = 100; } SaveConfig(); if (response.Intent.Code != 10004) { return(null); } var result = response.Results.FirstOrDefault(); return (result != null ? routeMsg .ToSource(result.Values.Text .Replace('呢', 'e') .Trim('。').Trim('?').Trim('!').Trim('~').Trim('~').Trim('?').Trim('!') ) .RandomDelaySeconds(2, 7) : null); }