diff --git a/XiaoXiaoRoBot/Cmd/ChineseIdiomsCmd.cs b/XiaoXiaoRoBot/Cmd/ChineseIdiomsCmd.cs new file mode 100644 index 0000000..10fa4d7 --- /dev/null +++ b/XiaoXiaoRoBot/Cmd/ChineseIdiomsCmd.cs @@ -0,0 +1,47 @@ +using System.Text.RegularExpressions; +using Lagrange.Core.Message; +using Lagrange.Core.Message.Entity; +using RoBot.Core.Helper; +using RoBot.Start.Global; +using Lagrange.Core.Common.Interface.Api; +using RoBot.Start.LogConfig; + +namespace RoBot.Start.Cmd +{ + /// + /// 猜成语 + /// + public class ChineseIdiomsCmd + { + public static async Task Execute(MessageChain chain) + { + try + { + var textEntities = chain.Where(o => o is TextEntity).ToList(); + TextEntity input = textEntities.Cast().ToList().FirstOrDefault(o => o.Text.Contains("要道友看表情猜成语")); + if (input is not null) + { + string pattern = @"题目:(.+)"; + Match match = Regex.Match(input.Text, pattern); + if (match.Success) + { + string emojiString = match.Groups[1].Value.Trim(); + Dictionary dict = AppConfigHelper.GetSection>("猜成语"); + if (dict?.Count > 0 && dict.TryGetValue(emojiString, out string val)) + { + var systemConfig = GlobalConfig.ConfigSetting; + var bot = GlobalConfig.BotContext; + var groupMessageChain = MessageBuilder.Group((uint)systemConfig.GroupQQ).Forward(chain).Text(val); + await bot.SendMessage(groupMessageChain.Build()); + } + } + } + } + catch (Exception ex) + { + Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 猜成语 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}", true); + } + return await Task.FromResult(true); + } + } +} diff --git a/XiaoXiaoRoBot/Cmd/GoodsUpShopCmd.cs b/XiaoXiaoRoBot/Cmd/GoodsUpShopCmd.cs index 6cb3ce9..ccd7334 100644 --- a/XiaoXiaoRoBot/Cmd/GoodsUpShopCmd.cs +++ b/XiaoXiaoRoBot/Cmd/GoodsUpShopCmd.cs @@ -51,7 +51,7 @@ namespace RoBot.Start.Cmd } catch (Exception ex) { - Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 坊市上架命令 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}"); + Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 坊市上架命令 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}", true); } return await Task.FromResult(true); diff --git a/XiaoXiaoRoBot/Cmd/InertOrUpdateGoodsInfoCmd.cs b/XiaoXiaoRoBot/Cmd/InertOrUpdateGoodsInfoCmd.cs index 06218df..a532de5 100644 --- a/XiaoXiaoRoBot/Cmd/InertOrUpdateGoodsInfoCmd.cs +++ b/XiaoXiaoRoBot/Cmd/InertOrUpdateGoodsInfoCmd.cs @@ -32,7 +32,7 @@ namespace RoBot.Start.Cmd } catch (Exception ex) { - Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 保存或更新物品价格 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}"); + Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 保存或更新物品价格 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}", true); } return await Task.FromResult(true); diff --git a/XiaoXiaoRoBot/Cmd/LingTianCmd.cs b/XiaoXiaoRoBot/Cmd/LingTianCmd.cs index 7eb5995..7c7e603 100644 --- a/XiaoXiaoRoBot/Cmd/LingTianCmd.cs +++ b/XiaoXiaoRoBot/Cmd/LingTianCmd.cs @@ -69,7 +69,7 @@ namespace RoBot.Start.Cmd } catch (Exception ex) { - Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 灵田结算查价格 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}"); + Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 灵田结算查价格 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}", true); } return await Task.FromResult(true); diff --git a/XiaoXiaoRoBot/Cmd/QueryGoodsPriceCmd.cs b/XiaoXiaoRoBot/Cmd/QueryGoodsPriceCmd.cs index e88ff24..c012b9b 100644 --- a/XiaoXiaoRoBot/Cmd/QueryGoodsPriceCmd.cs +++ b/XiaoXiaoRoBot/Cmd/QueryGoodsPriceCmd.cs @@ -53,17 +53,13 @@ namespace RoBot.Start.Cmd await bot.SendMsg((uint)systemConfig.GroupQQ, "未收录"); } } - else - { - await bot.SendMsg((uint)systemConfig.GroupQQ, "请输入要查询的物品名称,例如:查价格 七星草"); - } } } } } catch (Exception ex) { - Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 查看物品信息命令 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}"); + Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 查看物品信息命令 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}", true); } return await Task.FromResult(true); } diff --git a/XiaoXiaoRoBot/Cmd/WantedPriceCmd.cs b/XiaoXiaoRoBot/Cmd/WantedPriceCmd.cs index 999962d..8d2a687 100644 --- a/XiaoXiaoRoBot/Cmd/WantedPriceCmd.cs +++ b/XiaoXiaoRoBot/Cmd/WantedPriceCmd.cs @@ -72,7 +72,7 @@ namespace RoBot.Start.Cmd } catch (Exception ex) { - Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 悬赏令 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}"); + Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 悬赏令 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}", true); } return await Task.FromResult(true); } diff --git a/XiaoXiaoRoBot/Program.cs b/XiaoXiaoRoBot/Program.cs index 486d365..c3ba4dd 100644 --- a/XiaoXiaoRoBot/Program.cs +++ b/XiaoXiaoRoBot/Program.cs @@ -38,12 +38,15 @@ KeystoreInfo _keyStore = await KeystoreConfig.GetBotKeystore(); ReLogin = _keyStore.ReLogin; Lagrange.Core.BotContext bot = BotFactory.Create(new BotConfig(), _deviceInfo, _keyStore.BotKeystore); -bot.Invoker.OnGroupMessageReceived += async (sender, e) => +bot.Invoker.OnGroupMessageReceived += (sender, e) => { - if (e.Chain.GroupUin == systemConfig.GroupQQ) + Task.Run(() => { - await HandleGroupMessage(e.Chain); - } + if (e.Chain.GroupUin == systemConfig.GroupQQ) + { + HandleGroupMessage(e.Chain); + } + }); }; bot.Invoker.OnBotLogEvent += (sender, e) => @@ -84,24 +87,25 @@ else LoadLoginConfig(); } -async Task HandleGroupMessage(MessageChain chain) +void HandleGroupMessage(MessageChain chain) { // 悬赏令查价 - await WantedPriceCmd.Execute(chain); + _ = WantedPriceCmd.Execute(chain); // 坊市生成上架命令 - await GoodsUpShopCmd.Execute(chain); + _ = GoodsUpShopCmd.Execute(chain); // 保存或更新物品价格 - await InertOrUpdateGoodsInfoCmd.Execute(chain); + _ = InertOrUpdateGoodsInfoCmd.Execute(chain); // 查看物品信息命令 价格/数据更新时间 - await QueryGoodsPriceCmd.Execute(chain); + _ = QueryGoodsPriceCmd.Execute(chain); // 灵田结算价格 - await LingTianCmd.Execute(chain); + _ = LingTianCmd.Execute(chain); - return true; + // 妖塔猜成语 + _ = ChineseIdiomsCmd.Execute(chain); } void Init() diff --git a/XiaoXiaoRoBot/appsettings.json b/XiaoXiaoRoBot/appsettings.json index 1508c5a..fd41ccc 100644 --- a/XiaoXiaoRoBot/appsettings.json +++ b/XiaoXiaoRoBot/appsettings.json @@ -1,5 +1,31 @@ { - "ConnectionStrings": { - "Redis": "127.0.0.1:6379,defaultDatabase=0,max pool size=50,tryit=0" - } + "ConnectionStrings": { + "Redis": "127.0.0.1:6379,defaultDatabase=0,max pool size=50,tryit=0" + }, + "猜成语": { + "🚶🐎👀🌸": "走马观花", + "💧🏾🔥🥵": "水深火热", + "😞🌸😭👧🏻": "愁眉苦脸", + "🌬️🌶️⏏️🎤": "吹拉弹唱", + "🦩🧍🐔👨‍👩‍👧‍👦": "鹤立鸡群", + "🕸️👁️🐟🚢": "望眼欲穿", + "👩‍🎨🐍🦢🐾": "画蛇添足", + "🍃🚌👌🐲": "叶公好龙", + "🌸🍐🐯🥄": "花里胡哨", + "❤️🤔🍅🍊": "心想事成", + "🌪️🍼🌊🐳": "风平浪静", + "🍚👴⭕👦": "返老还童", + "🆘🧑📞😀": "助人为乐", + "🐊🐟🔪👨": "恶语伤人", + "🛀🏻😭❌💦": "欲哭无泪", + "🥃💧🚗💴": "杯水车薪", + "🍵🍚❌🤔": "茶饭不思", + "👨⛰️👨🌊": "人山人海", + "🤚🤖👨‍👩‍👧‍👧": "白手起家", + "🐷👫🐶👉": "猪朋狗友", + "7️⃣👆8️⃣👇": "七上八下", + "🔪⛏️🔥🌱": "刀耕火种", + "✉️🍅🥚🥚": "信誓旦旦", + "✍️🐍👇🦶": "画蛇添足" + } } \ No newline at end of file