mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-04 14:41:14 +00:00
Added or updated actionSummary, actionTags, payloadExample, and returnExample properties for all OneBot action classes in the napcat-onebot package. This improves API documentation and discoverability by providing concise summaries, categorization tags, and usage examples for each action.
48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import { ActionName } from '@/napcat-onebot/action/router';
|
|
import { FileNapCatOneBotUUID } from 'napcat-common/src/file-uuid';
|
|
import { GetPacketStatusDepends } from '@/napcat-onebot/action/packet/GetPacketStatus';
|
|
import { Static, Type } from '@sinclair/typebox';
|
|
|
|
const PayloadSchema = Type.Object({
|
|
group_id: Type.String({ description: '群号' }),
|
|
file_id: Type.String({ description: '文件ID' }),
|
|
});
|
|
|
|
type PayloadType = Static<typeof PayloadSchema>;
|
|
|
|
const ReturnSchema = Type.Object({
|
|
ok: Type.Boolean({ description: '是否成功' }),
|
|
}, { description: '转发文件结果' });
|
|
|
|
type ReturnType = Static<typeof ReturnSchema>;
|
|
|
|
export class TransGroupFile extends GetPacketStatusDepends<PayloadType, ReturnType> {
|
|
override actionName = ActionName.TransGroupFile;
|
|
override actionSummary = '传输群文件';
|
|
override actionTags = ['文件扩展'];
|
|
override payloadExample = {
|
|
group_id: 123456,
|
|
file_id: '/file_id',
|
|
target_group_id: 654321
|
|
};
|
|
override returnExample = {
|
|
result: true
|
|
};
|
|
override payloadSchema = PayloadSchema;
|
|
override returnSchema = ReturnSchema;
|
|
|
|
async _handle (payload: PayloadType) {
|
|
const contextMsgFile = FileNapCatOneBotUUID.decode(payload.file_id) || FileNapCatOneBotUUID.decodeModelId(payload.file_id);
|
|
if (contextMsgFile?.fileUUID) {
|
|
const result = await this.core.apis.GroupApi.transGroupFile(payload.group_id.toString(), contextMsgFile.fileUUID);
|
|
if (result.transGroupFileResult.result.retCode === 0) {
|
|
return {
|
|
ok: true,
|
|
};
|
|
}
|
|
throw new Error(result.transGroupFileResult.result.retMsg);
|
|
}
|
|
throw new Error('real fileUUID not found!');
|
|
}
|
|
}
|