import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Static, Type } from '@sinclair/typebox'; export const GetFilesetIdPayloadSchema = Type.Object({ share_code: Type.String({ description: '分享码或分享链接' }), }); export type GetFilesetIdPayload = Static; export class GetFilesetId extends OneBotAction { override actionName = ActionName.GetFilesetId; override payloadSchema = GetFilesetIdPayloadSchema; override returnSchema = Type.Object({ fileset_id: Type.String({ description: '文件集 ID' }) }); override actionSummary = '获取文件集 ID'; override actionTags = ['文件扩展']; override payloadExample = { share_code: '123456' }; override returnExample = { fileset_id: 'set_123' }; async _handle (payload: GetFilesetIdPayload) { // 适配share_link 防止被传 Link无法解析 const code = payload.share_code.includes('=') ? payload.share_code.split('=').slice(1).join('=') : payload.share_code; const result = await this.core.apis.FlashApi.fromShareLinkFindSetId(code); return { fileset_id: result.fileSetId }; } }