diff --git a/src/onebot/action/file/GetFile.ts b/src/onebot/action/file/GetFile.ts index 40f705ca..790459f9 100644 --- a/src/onebot/action/file/GetFile.ts +++ b/src/onebot/action/file/GetFile.ts @@ -5,9 +5,9 @@ import { ActionName } from '../types'; import { FromSchema, JSONSchema } from 'json-schema-to-ts'; import { OB11MessageImage, OB11MessageVideo } from '@/onebot/types'; -export interface GetFilePayload { - file: string; // 文件名或者fileUuid -} +// interface GetFilePayload { +// file: string; // 文件名或者fileUuid +// } export interface GetFileResponse { file?: string; // path @@ -21,14 +21,23 @@ const GetFileBase_PayloadSchema = { type: 'object', properties: { file: { type: 'string' }, - }, - required: ['file'], + file_id: { type: "string" } + } } as const satisfies JSONSchema; +export type GetFilePayload = FromSchema; + export class GetFileBase extends BaseAction { - payloadSchema: any = GetFileBase_PayloadSchema; + payloadSchema = GetFileBase_PayloadSchema; async _handle(payload: GetFilePayload): Promise { + if(!payload.file){ + if(payload.file_id){ + payload.file = payload.file_id; + }else{ + throw new Error('必须传入 file 或 file_id'); + } + } //接收消息标记模式 const contextMsgFile = FileNapCatOneBotUUID.decode(payload.file); if (contextMsgFile) { @@ -115,27 +124,6 @@ export class GetFileBase extends BaseAction { } } -const GetFile_PayloadSchema = { - type: 'object', - properties: { - file_id: { type: 'string' }, - file: { type: 'string' }, - }, - required: ['file_id'], -} as const satisfies JSONSchema; - -type GetFile_Payload_Internal = FromSchema; - -interface GetFile_Payload extends GetFile_Payload_Internal { - file: string; -} - export default class GetFile extends GetFileBase { actionName = ActionName.GetFile; - payloadSchema = GetFile_PayloadSchema; - - async _handle(payload: GetFile_Payload): Promise { - payload.file = payload.file_id; - return super._handle(payload); - } }