From b32d4b618c7a1f5845ef1e683a1b6f6f867f8b0d 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: Mon, 3 Feb 2025 11:40:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BF=85=E9=A1=BB=E6=B8=85=E7=90=86?= =?UTF-8?q?=E5=B9=B6=E5=9B=9E=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/onebot/api/msg.ts | 46 ++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/onebot/api/msg.ts b/src/onebot/api/msg.ts index abce943d..1f220eed 100644 --- a/src/onebot/api/msg.ts +++ b/src/onebot/api/msg.ts @@ -941,29 +941,31 @@ export class OneBotMsgApi { const timeout = 10000 + (totalSize / 1024 / 256 * 1000); - const returnMsg = await this.core.apis.MsgApi.sendMsg(peer, sendElements, timeout); - if (!returnMsg) throw new Error('发送消息失败'); - - returnMsg.id = MessageUnique.createUniqueMsgId({ - chatType: peer.chatType, - guildId: '', - peerUid: peer.peerUid, - }, returnMsg.msgId); - - setTimeout(async () => { - const deletePromises = deleteAfterSentFiles.map(async file => { - try { - if (await fsPromise.access(file, constants.W_OK).then(() => true).catch(() => false)) { - await fsPromise.unlink(file); + try { + const returnMsg = await this.core.apis.MsgApi.sendMsg(peer, sendElements, timeout); + if (!returnMsg) throw new Error('发送消息失败'); + returnMsg.id = MessageUnique.createUniqueMsgId({ + chatType: peer.chatType, + guildId: '', + peerUid: peer.peerUid, + }, returnMsg.msgId); + return returnMsg; + } catch (error) { + throw new Error((error as Error).message); + } finally { + setTimeout(async () => { + const deletePromises = deleteAfterSentFiles.map(async file => { + try { + if (await fsPromise.access(file, constants.W_OK).then(() => true).catch(() => false)) { + await fsPromise.unlink(file); + } + } catch (e) { + this.core.context.logger.logError('发送消息删除文件失败', e); } - } catch (e) { - this.core.context.logger.logError('发送消息删除文件失败', e); - } - }); - await Promise.all(deletePromises); - }, 60000); - - return returnMsg; + }); + await Promise.all(deletePromises); + }, 60000); + } } private async handleOb11FileLikeMessage(