using asg_form.Controllers; using Mirai.Net.Data.Messages.Concretes; using Mirai.Net.Data.Messages; using Mirai.Net.Data.Messages.Receivers; using Mirai.Net.Sessions; using Mirai.Net.Sessions.Http.Managers; using System.Reactive.Linq; using Microsoft.EntityFrameworkCore; using Mirai.Net.Data.Events.Concretes.Bot; using static asg_form.Controllers.schedule; using Manganese.Array; using System.Drawing; using System.Drawing.Imaging; using Masuit.Tools.Hardware; using Masuit.Tools.Win32; using Masuit.Tools; using Microsoft.AspNetCore.Connections; using Zack.EventBus; using Flandre.Framework.Common; using Flandre.Framework.Routing; using static asg_form.Controllers.InviteReferee; using System.Net.Http.Headers; using System.Net.Http; using System.Text; using Flandre.Core.Messaging; using Flandre.Core.Common; using Microsoft.OpenApi.Models; using Flurl.Http; using Microsoft.AspNetCore.Identity; using Flandre.Core.Messaging.Segments; namespace asg_form { public static class runbot { public static Bot runbotr { get; set; } } [EventName("查询选手")] public class qqbot:Plugin { [Command] public string 查询选手(string name) { try { TestDbContext ctx = new TestDbContext(); string msg = ""; var roles = ctx.Roles.Include(a => a.form).Where(a => a.role_name.IndexOf(name) >= 0).ToList(); foreach (var role in roles) { msg = $"{msg}\r\n姓名:{role.role_name}\r\n第五人格ID:{role.role_id}\r\n选手id:{role.Id}\r\n阵营:{role.role_lin}\r\n属于队伍:{role.form.team_name}\r\n"; } return msg ; } catch { return "出现错误"; } } [Command] public string 查询黑名单() { try { using (TestDbContext ctx = new TestDbContext()) { var blacks= ctx.T_blacks.ToList(); string msg = "为了良好的赛事环境,我们对以下选手进行禁赛处理"; foreach (var b in blacks) { msg = $"{msg}\r\n {b.violator} {b.platform_record} {b.offending_details} {b.processing_result} {b.feature_id}"; } return msg; } } catch { return "出现错误"; } } [Command] public string 近期赛程() { try { TestDbContext testDb = new TestDbContext(); int q = testDb.team_Games.Count(); var t = (DateTime.Now); var a = testDb.team_Games.Where(a => string.Compare(a.opentime, t.ToString()) >= 0).Take(7); string msg = ""; foreach (var b in a) { msg = $"{msg}\r\n{b.team1_name} VS {b.team2_name}\r\n时间:{b.opentime.ToString()}"; } return msg; } catch { return "出现错误"; } } [Command] public string 查询冠军() { try { TestDbContext ctx = new TestDbContext(); var teams = ctx.Champions.Include(a => a.events).Include(a => a.form.role).Select(a => new { a.form, a.events, a.msg }).ToList(); string msg = ""; foreach (var t in teams) { string role = ""; foreach (var t2 in t.form.role) { role = $"{role} {t2.role_name}"; } msg = $"{msg}\r\n队伍名称:{t.form.team_name}\r\n队员:{role}\r\n属于:{t.events.name}\r\n简介:{t.msg}\r\n"; } return msg; } catch { return "出现错误"; } } [Command] public string 查询战队(string name) { try { TestDbContext ctx = new TestDbContext(); List
teams = ctx.Forms.Include(a => a.role).Where(a => a.team_name.IndexOf(name) >= 0).ToList(); string msg = ""; foreach (var t in teams) { string role = ""; foreach (var t2 in t.role) { role = $"{role} {t2.role_name}"; } msg = $"{msg}\r\n队伍名称:{t.team_name}\r\n队员:{role}\r\n"; } return msg; } catch { return "出现错误"; } } [Command] public async Task 抱抱罗比(MessageContext ctx) { try { using(TestDbContext testDb=new TestDbContext()) { Random ran = new Random(); int n = ran.Next(30, 100); if (!testDb.Qqusers.Any(a => a.qqid == ctx.UserId)) { await testDb.Qqusers.AddAsync(new qquser { qqid = ctx.UserId, money = n ,time=DateTime.Now}); } else { var user=await testDb.Qqusers.FirstAsync(a=>a.qqid == ctx.UserId); if (isToday(user.time)) { return "你已经签到过了!"; } user.money += n; user.time = DateTime.Today; } await testDb.SaveChangesAsync(); return $"罗比很开心\r\n给你棒棒糖:{n.ToString()}个"; } } catch { return "出现错误"; } } public class MessagesItem { /// /// /// public string role { get; set; } /// /// /// public string content { get; set; } } public class aimessage { /// /// /// public string model { get; set; } /// /// /// public List messages { get; set; } } private static async Task SendPostRequestAsync(string url, aimessage Content, string apiKey) { string[] messages = new string[2]; var re= await url.WithOAuthBearerToken(apiKey).PostJsonAsync(Content); var a= await re.GetJsonAsync(); messages[0]=a.choices[0].message.reasoning_content; messages[1]=a.choices[0].message.content; return messages; } [Command] public async Task 绑定QQ(string username, MessageContext ctx) { try { using(IDBcontext db=new IDBcontext()) { var auser=await db.users.FirstAsync(a => a.UserName == username); auser.qqnumber = ctx.UserId; await db.SaveChangesAsync(); return $"绑定成功!\r\n姓名:{auser.chinaname}"; } } catch (Exception ex) { return $"出现错误{ex.Message}"; } } [Command] public async Task ai(string msg) { try { var message= new List (); message.Add(new MessagesItem {role="user", content = msg }); var ai1= new aimessage() { model= "deepseek-reasoner", messages=message }; var msg1= await SendPostRequestAsync("https://api.deepseek.com/chat/completions", ai1, "sk-2f3167fe9c524a5fa906313f72747cb2"); await Task.Delay(1000); var message1 = new MessageBuilder().Text("这是用户询问DeepSeek时产生的思考链\r\n").Text(msg1[0]).Build(); await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, "931217544", null, message1, "931217544"); return msg1[1]; } catch(Exception ex) { return $"出现错误{ex.Message}"; } } [Command] public async Task aimath(string msg) { try { var message = new List(); message.Add(new MessagesItem { role = "user", content = msg }); var ai = new aimessage() { model = "qwen-math-plus", messages = message }; var msg1 = await SendPostRequestAsync("https://api.deepseek.com/chat/completions", ai, "sk-c6f37689f4014b5bbf5fd8b2e872d20b"); return msg1[1]; } catch { return "出现错误"; } } public static bool isToday(DateTime dt) { DateTime today = DateTime.Today; DateTime tempToday = new DateTime(dt.Year, dt.Month, dt.Day); if (today == tempToday) return true; else return false; } private async void doAt1AM(object state) { //执行功能... } // protected override async Task ExecuteAsync(CancellationToken stoppingToken) // { // try // { // var client = new OnebotClient(ConnectionFactory.FromWebsocket("localhost", 7890, "WHO_S_YOUR_DADDY")); // await client.SendPrivateMessageAsync("10000", new Message() // { // MessageSegment.Text("hello") // }); // client. // bot.EventReceived // .OfType() // .Subscribe(async receiver => // { // await Task.Delay(10000); // await ExecuteAsync(stoppingToken); // }); // bot.MessageReceived // .OfType() // .Subscribe(async x => // { // try // { // } // catch(Exception ex) // { // await MessageManager.SendGroupMessageAsync(x.GroupId, $"错误:{ex.Message}"); // } // }); // bot.MessageReceived // .OfType() // .Where(a=>a.MessageChain.GetPlainMessage().StartsWith("查询战队 ")) // .Subscribe(async x => // { // try { // TestDbContext ctx = new TestDbContext(); // string result = x.MessageChain.GetPlainMessage().Substring(5); // 截取从'o'之后的字符串 // Console.WriteLine(result); // List teams = ctx.Forms.Include(a => a.role).Where(a => a.team_name.IndexOf(result) >= 0).ToList(); // string msg = ""; // foreach (var t in teams) // { // string role = ""; // foreach (var t2 in t.role) // { // role = $"{role} {t2.role_name}"; // } // msg = $"{msg}\r\n队伍名称:{t.team_name}\r\n队员:{role}\r\n"; // } // await MessageManager.SendGroupMessageAsync(x.GroupId, msg); // } // catch // { // } // }); // bot.MessageReceived //.OfType() //.Where(a => a.MessageChain.GetPlainMessage().StartsWith("查询选手 ")) // .Subscribe(async x => // { // }); // } // catch // { // } // } } }