2024-10-19 00:43:22 +08:00
|
|
|
|
using asg_form.Controllers;
|
2024-08-03 20:40:34 +08:00
|
|
|
|
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 NPOI.OpenXmlFormats.Spreadsheet;
|
|
|
|
|
using Manganese.Array;
|
|
|
|
|
using static NPOI.HSSF.Util.HSSFColor;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using System.Drawing.Imaging;
|
|
|
|
|
using Masuit.Tools.Hardware;
|
|
|
|
|
using Masuit.Tools.Win32;
|
|
|
|
|
using Masuit.Tools;
|
2024-10-02 17:53:16 +08:00
|
|
|
|
using Microsoft.AspNetCore.Connections;
|
|
|
|
|
using NPOI.SS.Formula.Functions;
|
|
|
|
|
using Onebot.Protocol;
|
|
|
|
|
using Onebot.Protocol.Models.Messages;
|
2024-10-19 00:43:22 +08:00
|
|
|
|
using Zack.EventBus;
|
2024-10-19 14:20:39 +08:00
|
|
|
|
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 Azure.Identity;
|
|
|
|
|
using Flandre.Core.Messaging;
|
|
|
|
|
using Flandre.Core.Common;
|
2024-10-19 20:09:00 +08:00
|
|
|
|
using Microsoft.OpenApi.Models;
|
|
|
|
|
using Flurl.Http;
|
2024-10-19 20:40:45 +08:00
|
|
|
|
using Microsoft.AspNetCore.Identity;
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
|
|
|
|
namespace asg_form
|
|
|
|
|
{
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
|
|
|
|
public static class runbot
|
|
|
|
|
{
|
|
|
|
|
public static Bot runbotr { get; set; }
|
|
|
|
|
}
|
2024-10-19 00:43:22 +08:00
|
|
|
|
[EventName("查询选手")]
|
2024-10-19 14:20:39 +08:00
|
|
|
|
public class qqbot:Plugin
|
2024-08-03 20:40:34 +08:00
|
|
|
|
{
|
|
|
|
|
|
2024-10-19 23:09:48 +08:00
|
|
|
|
|
2024-10-19 20:40:45 +08:00
|
|
|
|
|
2024-10-19 14:20:39 +08:00
|
|
|
|
[Command]
|
|
|
|
|
public string 查询选手(string name)
|
2024-08-03 20:40:34 +08:00
|
|
|
|
{
|
2024-10-19 14:20:39 +08:00
|
|
|
|
try
|
2024-08-03 20:40:34 +08:00
|
|
|
|
{
|
2024-10-19 00:43:22 +08:00
|
|
|
|
TestDbContext ctx = new TestDbContext();
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
|
|
|
|
string msg = "";
|
2024-10-19 14:20:39 +08:00
|
|
|
|
var roles = ctx.Roles.Include(a => a.form).Where(a => a.role_name.IndexOf(name) >= 0).ToList();
|
2024-10-19 00:43:22 +08:00
|
|
|
|
foreach (var role in roles)
|
2024-08-03 20:40:34 +08:00
|
|
|
|
{
|
2024-10-19 00:43:22 +08:00
|
|
|
|
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";
|
2024-08-03 20:40:34 +08:00
|
|
|
|
}
|
2024-10-19 14:20:39 +08:00
|
|
|
|
return msg ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return "出现错误";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Command]
|
|
|
|
|
public string 近期赛程()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
TestDbContext testDb = new TestDbContext();
|
|
|
|
|
int q = testDb.team_Games.Count();
|
|
|
|
|
var a = testDb.team_Games.Where(a => a.opentime >= DateTime.Now).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("f")}";
|
|
|
|
|
}
|
|
|
|
|
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";
|
2024-08-03 20:40:34 +08:00
|
|
|
|
}
|
2024-10-19 14:20:39 +08:00
|
|
|
|
return msg;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return "出现错误";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Command]
|
|
|
|
|
public string 查询战队(string name)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
TestDbContext ctx = new TestDbContext();
|
|
|
|
|
|
|
|
|
|
List<form> 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<string> 抱抱罗比(MessageContext ctx)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using(TestDbContext testDb=new TestDbContext())
|
2024-08-03 20:40:34 +08:00
|
|
|
|
{
|
2024-10-19 14:20:39 +08:00
|
|
|
|
Random ran = new Random();
|
2024-10-19 20:09:00 +08:00
|
|
|
|
int n = ran.Next(30, 100);
|
|
|
|
|
|
|
|
|
|
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
2024-10-19 14:20:39 +08:00
|
|
|
|
if (!testDb.Qqusers.Any(a => a.qqid == ctx.UserId))
|
|
|
|
|
{
|
2024-10-19 20:09:00 +08:00
|
|
|
|
await testDb.Qqusers.AddAsync(new qquser { qqid = ctx.UserId, money = n ,time=DateTime.Now});
|
|
|
|
|
|
2024-10-19 14:20:39 +08:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var user=await testDb.Qqusers.FirstAsync(a=>a.qqid == ctx.UserId);
|
2024-10-19 20:09:00 +08:00
|
|
|
|
if (isToday(user.time))
|
|
|
|
|
{
|
|
|
|
|
return "你已经签到过了!";
|
|
|
|
|
}
|
2024-10-19 14:20:39 +08:00
|
|
|
|
user.money += n;
|
2024-10-19 20:09:00 +08:00
|
|
|
|
user.time = DateTime.Today;
|
2024-10-19 14:20:39 +08:00
|
|
|
|
}
|
2024-10-19 20:09:00 +08:00
|
|
|
|
|
2024-10-19 14:20:39 +08:00
|
|
|
|
await testDb.SaveChangesAsync();
|
|
|
|
|
return $"罗比很开心\r\n给你棒棒糖:{n.ToString()}个";
|
2024-08-03 20:40:34 +08:00
|
|
|
|
}
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return "出现错误";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2024-10-19 20:09:00 +08:00
|
|
|
|
public class MessagesItem
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string role { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string content { get; set; }
|
|
|
|
|
}
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
2024-10-19 20:09:00 +08:00
|
|
|
|
public class aimessage
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string model { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
public List<MessagesItem> messages { get; set; }
|
|
|
|
|
}
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
2024-10-19 20:09:00 +08:00
|
|
|
|
private static async Task<string> SendPostRequestAsync(string url, aimessage Content, string apiKey)
|
2024-10-19 14:20:39 +08:00
|
|
|
|
{
|
2024-10-19 20:09:00 +08:00
|
|
|
|
var re= await url.WithOAuthBearerToken(apiKey).PostJsonAsync(Content);
|
|
|
|
|
var a= await re.GetJsonAsync();
|
|
|
|
|
return a.choices[0].message.content;
|
|
|
|
|
}
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
|
|
|
|
|
2024-10-19 20:40:45 +08:00
|
|
|
|
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
2024-10-19 20:40:45 +08:00
|
|
|
|
[Command]
|
|
|
|
|
public async Task<string> 绑定QQ(string username, MessageContext ctx)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
2024-10-19 23:09:48 +08:00
|
|
|
|
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}";
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-19 20:40:45 +08:00
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return $"出现错误{ex.Message}";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2024-10-19 20:09:00 +08:00
|
|
|
|
|
|
|
|
|
[Command]
|
|
|
|
|
public async Task<string> ai(string msg)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var message= new List<MessagesItem> ();
|
|
|
|
|
message.Add(new MessagesItem {role="user", content = msg });
|
|
|
|
|
var ai1= new aimessage() { model= "qwen-turbo",messages=message };
|
|
|
|
|
var msg1= await SendPostRequestAsync("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions", ai1, "sk-c6f37689f4014b5bbf5fd8b2e872d20b");
|
|
|
|
|
return msg1;
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
|
|
|
|
}
|
2024-10-19 20:09:00 +08:00
|
|
|
|
catch(Exception ex)
|
2024-10-19 14:20:39 +08:00
|
|
|
|
{
|
2024-10-19 20:09:00 +08:00
|
|
|
|
return $"出现错误{ex.Message}";
|
2024-10-19 14:20:39 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Command]
|
2024-10-19 20:09:00 +08:00
|
|
|
|
public async Task<string> aimath(string msg)
|
2024-10-19 14:20:39 +08:00
|
|
|
|
{
|
2024-10-19 20:09:00 +08:00
|
|
|
|
|
2024-10-19 14:20:39 +08:00
|
|
|
|
try
|
|
|
|
|
{
|
2024-10-19 20:09:00 +08:00
|
|
|
|
var message = new List<MessagesItem>();
|
|
|
|
|
message.Add(new MessagesItem { role = "user", content = "我们来玩角色扮演接下来你是一个没有父母但很喜欢姐姐的一个小男孩" });
|
|
|
|
|
message.Add(new MessagesItem { role = "user", content = msg });
|
|
|
|
|
var ai = new aimessage() { model = "qwen-math-plus", messages = message };
|
|
|
|
|
var msg1 = await SendPostRequestAsync("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions", ai, "sk-c6f37689f4014b5bbf5fd8b2e872d20b");
|
|
|
|
|
return msg1;
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return "出现错误";
|
2024-08-03 20:40:34 +08:00
|
|
|
|
}
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
2024-10-19 20:09:00 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
}
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
|
|
|
|
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
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;
|
|
|
|
|
}
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
private async void doAt1AM(object state)
|
|
|
|
|
{
|
|
|
|
|
//执行功能...
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
}
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
// 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<DroppedEvent>()
|
|
|
|
|
// .Subscribe(async receiver =>
|
|
|
|
|
// {
|
|
|
|
|
// await Task.Delay(10000);
|
|
|
|
|
// await ExecuteAsync(stoppingToken);
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
// bot.MessageReceived
|
|
|
|
|
// .OfType<GroupMessageReceiver>()
|
|
|
|
|
// .Subscribe(async x =>
|
|
|
|
|
// {
|
|
|
|
|
// try
|
|
|
|
|
// {
|
2024-10-19 14:20:39 +08:00
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
// }
|
|
|
|
|
// catch(Exception ex)
|
|
|
|
|
// {
|
|
|
|
|
// await MessageManager.SendGroupMessageAsync(x.GroupId, $"错误:{ex.Message}");
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// bot.MessageReceived
|
|
|
|
|
// .OfType<GroupMessageReceiver>()
|
|
|
|
|
// .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<form> 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
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
|
|
// }
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
// });
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
// bot.MessageReceived
|
|
|
|
|
//.OfType<GroupMessageReceiver>()
|
|
|
|
|
//.Where(a => a.MessageChain.GetPlainMessage().StartsWith("查询选手 "))
|
|
|
|
|
// .Subscribe(async x =>
|
|
|
|
|
// {
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
// });
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
// }
|
|
|
|
|
// catch
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
|
|
// }
|
2024-08-03 20:40:34 +08:00
|
|
|
|
|
2024-10-19 00:43:22 +08:00
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2024-08-03 20:40:34 +08:00
|
|
|
|
}
|
|
|
|
|
|