From eda8fbb178ba75c4763cacda3c9df9d5c631ca38 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: Sun, 13 Oct 2024 17:15:59 +0800 Subject: [PATCH] fix --- src/core/apis/file.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/core/apis/file.ts b/src/core/apis/file.ts index df5b79db..e934e71e 100644 --- a/src/core/apis/file.ts +++ b/src/core/apis/file.ts @@ -30,6 +30,7 @@ export class NTQQFileApi { context: InstanceContext; core: NapCatCore; rkeyManager: RkeyManager; + packetRkey: Array<{ rkey: string; time: number; type: number; }> | undefined; constructor(context: InstanceContext, core: NapCatCore) { this.context = context; @@ -375,14 +376,21 @@ export class NTQQFileApi { group_rkey: 'CAQSKAB6JWENi5LM_xp9vumLbuThJSaYf-yzMrbZsuq7Uz2qffcqm614gds', online_rkey: false }; - if (this.core.apis.PacketApi.PacketClient?.isConnected) { - let rkeylist = await this.core.apis.PacketApi.sendRkeyPacket(); - if (rkeylist.length > 0) { - rkeyData.group_rkey = rkeylist[0].rkey; - rkeyData.private_rkey = rkeylist[1].rkey; - rkeyData.online_rkey = true; + try { + if (this.core.apis.PacketApi.PacketClient?.isConnected) { + if ((!this.packetRkey || this.packetRkey[0].time < Date.now() / 1000)) { + this.packetRkey = await this.core.apis.PacketApi.sendRkeyPacket(); + } + if (this.packetRkey.length > 0) { + rkeyData.group_rkey = this.packetRkey[0].rkey; + rkeyData.private_rkey = this.packetRkey[1].rkey; + rkeyData.online_rkey = true; + } } + } catch (error) { + } + if (!rkeyData.online_rkey) { try { let tempRkeyData = await this.rkeyManager.getRkey();