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) { string val = ""; foreach (var item in dict) { if (emojiString.Contains(item.Value)) { var systemConfig = GlobalConfig.ConfigSetting; var bot = GlobalConfig.BotContext; var groupMessageChain = MessageBuilder.Group((uint)systemConfig.GroupQQ).Forward(chain).Text(val); await bot.SendMessage(groupMessageChain.Build()); break; } } } } } } catch (Exception ex) { Logs.Write($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 猜成语 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}", true); } return await Task.FromResult(true); } } }