From 9dbbcf3872fae48775935f9c8eb7187b50aea83f 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: Thu, 25 Jul 2024 17:57:39 +0800 Subject: [PATCH] build: 1.6.8 - parse appid --- src/core/src/apis/file.ts | 19 ++++++++++--------- src/onebot11/constructor.ts | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/core/src/apis/file.ts b/src/core/src/apis/file.ts index 1794ef43..9d3bb992 100644 --- a/src/core/src/apis/file.ts +++ b/src/core/src/apis/file.ts @@ -145,26 +145,27 @@ export class NTQQFileApi { }); }); } - - static async getImageUrl(element: { originImageUrl: any; md5HexStr?: any; fileUuid: any; }, isPrivateImage: boolean) { + static async getImageUrl(element: { originImageUrl: any; md5HexStr?: any; fileUuid: any; }) { if (!element) { return ''; } - const url = element.originImageUrl; // 没有域名 + const url: string = element.originImageUrl; // 没有域名 const md5HexStr = element.md5HexStr; const fileMd5 = element.md5HexStr; const fileUuid = element.fileUuid; if (url) { - if (url.startsWith('/download')) { - if (url.includes('&rkey=')) { + let UrlParse = new URL(IMAGE_HTTP_HOST + url);//临时解析拼接 + let imageAppid = UrlParse.searchParams.get('appid'); + let isNewPic = imageAppid && ['1406', '1407'].includes(imageAppid); + if (isNewPic) { + let UrlRkey = UrlParse.searchParams.get('rkey'); + if (UrlRkey) { return IMAGE_HTTP_HOST_NT + url; } - const rkeyData = await rkeyManager.getRkey(); - - const existsRKey = isPrivateImage ? rkeyData.private_rkey : rkeyData.group_rkey; - return IMAGE_HTTP_HOST_NT + url + `${existsRKey}`; + UrlRkey = imageAppid === '1406' ? rkeyData.private_rkey : rkeyData.group_rkey; + return IMAGE_HTTP_HOST_NT + url + `${UrlRkey}`; } else { // 老的图片url,不需要rkey return IMAGE_HTTP_HOST + url; diff --git a/src/onebot11/constructor.ts b/src/onebot11/constructor.ts index ec1fdcc7..4b92c37d 100644 --- a/src/onebot11/constructor.ts +++ b/src/onebot11/constructor.ts @@ -170,7 +170,7 @@ export class OB11Constructor { // let currentRKey = "CAQSKAB6JWENi5LMk0kc62l8Pm3Jn1dsLZHyRLAnNmHGoZ3y_gDZPqZt-64" try { - message_data['data']['url'] = await NTQQFileApi.getImageUrl(element.picElement, msg.chatType !== ChatType.group); + message_data['data']['url'] = await NTQQFileApi.getImageUrl(element.picElement); } catch (e: any) { logError('获取图片url失败', e.stack); }