From 958b21e47ea3886c9faaffdd68fb762a131abd9d Mon Sep 17 00:00:00 2001 From: linyuchen Date: Mon, 17 Jun 2024 17:41:23 +0800 Subject: [PATCH] fix: wait get_file download complete --- src/onebot11/action/file/GetFile.ts | 9 +++++---- src/onebot11/constructor.ts | 5 ++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/onebot11/action/file/GetFile.ts b/src/onebot11/action/file/GetFile.ts index 6d5bf90..a15aa33 100644 --- a/src/onebot11/action/file/GetFile.ts +++ b/src/onebot11/action/file/GetFile.ts @@ -2,7 +2,7 @@ import BaseAction from '../BaseAction' import fs from 'fs/promises' import { dbUtil } from '@/common/db' import { getConfigUtil } from '@/common/config' -import { log, sleep, uri2local } from '@/common/utils' +import { checkFileReceived, log, sleep, uri2local } from '@/common/utils' import { NTQQFileApi } from '@/ntqqapi/api' import { ActionName } from '../types' import { FileElement, RawMessage, VideoElement } from '@/ntqqapi/types' @@ -38,20 +38,21 @@ export class GetFileBase extends BaseAction { log('找到了文件 element', element) // 构建下载函数 await NTQQFileApi.downloadMedia(msg.msgId, msg.chatType, msg.peerUid, cache.elementId, '', '', true) - await sleep(1000) // 这里延时是为何? + // 等待文件下载完成 msg = await dbUtil.getMsgByLongId(cache.msgId) log('下载完成后的msg', msg) cache.filePath = this.getElement(msg, cache.elementId).filePath + await checkFileReceived(cache.filePath, 10 * 1000) dbUtil.addFileCache(file, cache).then() } } } protected async _handle(payload: GetFilePayload): Promise { - const cache = await dbUtil.getFileCache(payload.file) - const { autoDeleteFile, enableLocalFile2Url, autoDeleteFileSecond } = getConfigUtil().getConfig() + let cache = await dbUtil.getFileCache(payload.file) if (!cache) { throw new Error('file not found') } + const { autoDeleteFile, enableLocalFile2Url, autoDeleteFileSecond } = getConfigUtil().getConfig() if (cache.downloadFunc) { await cache.downloadFunc() } diff --git a/src/onebot11/constructor.ts b/src/onebot11/constructor.ts index ac82a99..abfaad4 100644 --- a/src/onebot11/constructor.ts +++ b/src/onebot11/constructor.ts @@ -171,7 +171,7 @@ export class OB11Constructor { message_data['data']['url'] = await NTQQFileApi.getImageUrl(element.picElement, msg.chatType) // message_data["data"]["file_id"] = element.picElement.fileUuid message_data['data']['file_size'] = element.picElement.fileSize - await dbUtil + dbUtil .addFileCache(fileName, { fileName, elementId: element.elementId, @@ -188,8 +188,7 @@ export class OB11Constructor { element.picElement.sourcePath, ) }, - }) - // 不在自动下载图片 + }).then() } else if (element.videoElement || element.fileElement) { const videoOrFileElement = element.videoElement || element.fileElement