From 3d4e0b261faa2325962974be476ad8289fcbf2f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=AF=85?= <2667210109@qq.com> Date: Sat, 16 Nov 2024 21:30:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Eqq=E6=B6=88=E6=81=AF=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NewFile.cs | 29 +++++++++++++++ asg_form/Controllers/admin.cs | 67 +++++++++++++++++++++++++++++++++++ asg_form/Controllers/login.cs | 1 + 3 files changed, 97 insertions(+) create mode 100644 NewFile.cs diff --git a/NewFile.cs b/NewFile.cs new file mode 100644 index 0000000..301daee --- /dev/null +++ b/NewFile.cs @@ -0,0 +1,29 @@ +using System.Net.Http; +using System.Threading.Tasks; + +public class CaptchaService +{ + private readonly HttpClient _httpClient; + + public CaptchaService(HttpClient httpClient) + { + _httpClient = httpClient; + } + + public async Task ValidateCaptcha(string token, string ip) + { + var requestData = new + { + id = "67134feddc0ff12924d9aaf4", + secretkey = "c3e08b07b8034e6b961f010abed5586a", + scene = 3, + token = token, + ip = ip + }; + + var response = await _httpClient.PostAsJsonAsync("your-captcha-endpoint", requestData); + var result = await response.Content.ReadAsAsync(); + + return result.success == 1; + } +} \ No newline at end of file diff --git a/asg_form/Controllers/admin.cs b/asg_form/Controllers/admin.cs index 3e98be8..ad981ee 100644 --- a/asg_form/Controllers/admin.cs +++ b/asg_form/Controllers/admin.cs @@ -30,6 +30,7 @@ using Flandre.Core.Messaging; using Mirai.Net.Data.Messages.Concretes; using Flandre.Core.Messaging.Segments; using System.Runtime.Serialization; +using System.Net; namespace asg_form.Controllers { @@ -130,10 +131,17 @@ namespace asg_form.Controllers } + public class qqmsg + { + public string type { get; set;} + public string content { get; set; } + } + [Route("api/v1/admin/post_qqbotmsg")] [HttpPost] [Authorize] + public async Task> post_qqbotmsg([FromBody] string msg,string qqgrope,string atuserqq) { @@ -157,6 +165,65 @@ namespace asg_form.Controllers + [Route("api/v2/admin/post_qqbotmsg")] + [HttpPost] + [Authorize] + + + public async Task> post_qqbotmsgv2([FromBody] List qqmsgs, string qqgrope) + { + + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + return BadRequest(new error_mb { code = 400, message = "无权访问" }); + } + + var message = new MessageBuilder(); + foreach (var item in qqmsgs) + { + switch (item.type) + { + case "text": + message.Text(item.content); + break; + case "image": + message.Image(GetImageByte(item.content)); + break; + case "at": + message.Add(new AtSegment(item.content)); + break; + + default: + message.Text("不支持的消息类型"); + break; + } + } + + await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, qqgrope, null, message, qqgrope); + + + + + + + return Ok("成功!"); + + } + + + //把url图片转换为byte数组 + public static byte[] GetImageByte(string url) + { + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + HttpWebResponse response = (HttpWebResponse)request.GetResponse(); + Stream stream = response.GetResponseStream(); + BinaryReader reader = new BinaryReader(stream); + byte[] bytes = reader.ReadBytes(int.MaxValue); + return bytes; + } + + + [Route("api/v1/admin/allschedle_c")] [HttpGet] diff --git a/asg_form/Controllers/login.cs b/asg_form/Controllers/login.cs index 9f0405b..48807e7 100644 --- a/asg_form/Controllers/login.cs +++ b/asg_form/Controllers/login.cs @@ -775,6 +775,7 @@ namespace asg_form.Controllers DateTime expires = DateTime.Now.AddSeconds(options.ExpireSeconds); byte[] keyBytes = Encoding.UTF8.GetBytes(options.SigningKey); var secKey = new SymmetricSecurityKey(keyBytes); + var credentials = new SigningCredentials(secKey, SecurityAlgorithms.HmacSha256Signature); var tokenDescriptor = new JwtSecurityToken(expires: expires,