From b4b91af02b4a81b999e54036dadaf23d20848b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Tue, 14 May 2024 14:02:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=BE=A4=E8=8D=A3?= =?UTF-8?q?=E8=AA=89=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/changelogs/CHANGELOG.v1.3.5.md | 1 + src/common/utils/request.ts | 44 +++++++++++-------- src/core | 2 +- .../action/extends/GetGroupHonorInfo.ts | 17 +++++++ src/onebot11/action/types.ts | 1 + 5 files changed, 46 insertions(+), 19 deletions(-) create mode 100644 src/onebot11/action/extends/GetGroupHonorInfo.ts diff --git a/docs/changelogs/CHANGELOG.v1.3.5.md b/docs/changelogs/CHANGELOG.v1.3.5.md index 656f5835..de74dc2a 100644 --- a/docs/changelogs/CHANGELOG.v1.3.5.md +++ b/docs/changelogs/CHANGELOG.v1.3.5.md @@ -8,5 +8,6 @@ QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361 ## 新增与调整 * 修复快速重启进程清理问题 * 支持WebUi热重载 +* 新增群荣誉信息 /get_group_honor_info 新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api) diff --git a/src/common/utils/request.ts b/src/common/utils/request.ts index d5c063d2..c1714748 100644 --- a/src/common/utils/request.ts +++ b/src/common/utils/request.ts @@ -1,23 +1,31 @@ +import { get as httpsGet } from 'https'; export class RequestUtil { - //适用于获取服务器下发cookies时获取 - static async HttpGetCookies(url: string, method: string = 'GET'): Promise> { - const response = await fetch(url, { method: method }); - if (!response.ok) { - throw new Error(`Failed to fetch: ${response.statusText}`); - } - - const cookiesHeader = response.headers.get('set-cookie'); - if (!cookiesHeader) { - return new Map(); - } - - const result = new Map(); - cookiesHeader.split(';').forEach((cookieLine) => { - const [key, value] = cookieLine.split('='); - result.set(key.trim(), value.trim()); + //适用于获取服务器下发cookies时获取 仅get + static async HttpsGetCookies(url: string): Promise> { + return new Promise((resolve, reject) => { + const result: Map = new Map(); + const req = httpsGet(url, (res: any) => { + res.on('data', (data: any) => { + }); + res.on('end', () => { + try { + const responseCookies = res.headers['set-cookie']; + for (const line of responseCookies) { + const parts = line.split(';'); + const [key, value] = parts[0].split('='); + result.set(key, value); + } + } catch (e) { + } + resolve(result); + }); + }); + req.on('error', (error: any) => { + resolve(result); + // console.log(error) + }); + req.end(); }); - - return result; } // 请求和回复都是JSON data传原始内容 自动编码json static async HttpGetJson(url: string, method: string = 'GET', data?: any, headers: Record = {}): diff --git a/src/core b/src/core index 5360d709..c30a351b 160000 --- a/src/core +++ b/src/core @@ -1 +1 @@ -Subproject commit 5360d70991c87394f205a4cf9f54ad1bd74fefbf +Subproject commit c30a351bbb9046c31b471e9a818d7b28f971541a diff --git a/src/onebot11/action/extends/GetGroupHonorInfo.ts b/src/onebot11/action/extends/GetGroupHonorInfo.ts new file mode 100644 index 00000000..25b65e7d --- /dev/null +++ b/src/onebot11/action/extends/GetGroupHonorInfo.ts @@ -0,0 +1,17 @@ +import { OB11User } from '../../types'; +import { OB11Constructor } from '../../constructor'; +import { friends } from '@/core/data'; +import BaseAction from '../BaseAction'; +import { ActionName } from '../types'; +import { NTQQUserApi, WebApi } from '@/core/apis'; +interface Payload { + groud_id: string +} +export class GetGroupHonorInfo extends BaseAction> { + actionName = ActionName.GetGroupHonorInfo; + + protected async _handle(payload: Payload) { + // console.log(await NTQQUserApi.getRobotUinRange()); + return await WebApi.getGroupHonorInfo(payload.groud_id); + } +} diff --git a/src/onebot11/action/types.ts b/src/onebot11/action/types.ts index 96c94482..5e74d0da 100644 --- a/src/onebot11/action/types.ts +++ b/src/onebot11/action/types.ts @@ -60,6 +60,7 @@ export enum ActionName { CleanCache = 'clean_cache', GetCookies = 'get_cookies', // 以下为go-cqhttp api + GetGroupHonorInfo = 'get_group_honor_info', GoCQHTTP_GetEssenceMsg = 'get_essence_msg_list', GoCQHTTP_SendGroupNotice = '_send_group_notice', GoCQHTTP_GetGroupNotice = '_get_group_notice',