NapCatQQ/packages/napcat-onebot/action/msg/DeleteMsg.ts
手瓜一十雪 e6687750eb Add actionSummary and improve action metadata
Introduces the actionSummary property to OneBotAction and updates all action classes to provide concise summaries and improved descriptions. Refactors example imports for better modularity, adds new example files for guild and packet actions, and updates the OpenAPI schema generator to use the new summary and improved descriptions. This enhances API documentation clarity and consistency.
2026-01-25 18:06:24 +08:00

42 lines
1.4 KiB
TypeScript

import { ActionName } from '@/napcat-onebot/action/router';
import { OneBotAction } from '@/napcat-onebot/action/OneBotAction';
import { MessageUnique } from 'napcat-common/src/message-unique';
import { Static, Type } from '@sinclair/typebox';
import { ActionExamples } from '../examples';
const PayloadSchema = Type.Object({
message_id: Type.Union([Type.Number(), Type.String()], { description: '消息ID' }),
});
type PayloadType = Static<typeof PayloadSchema>;
const ReturnSchema = Type.Null({ description: '操作结果' });
type ReturnType = Static<typeof ReturnSchema>;
class DeleteMsg extends OneBotAction<PayloadType, ReturnType> {
override actionName = ActionName.DeleteMsg;
override payloadSchema = PayloadSchema;
override returnSchema = ReturnSchema;
override actionSummary = '撤回消息';
override actionDescription = '撤回已发送的消息';
override actionTags = ['消息接口'];
override payloadExample = ActionExamples.DeleteMsg.payload;
async _handle (payload: PayloadType) {
const msg = MessageUnique.getMsgIdAndPeerByShortId(Number(payload.message_id));
if (msg) {
this.obContext.recallEventCache.set(msg.MsgId, setTimeout(() => {
this.obContext.recallEventCache.delete(msg.MsgId);
}, 5000));
await this.core.apis.MsgApi.recallMsg(msg.Peer, msg.MsgId);
return null;
} else {
throw new Error('Recall failed');
}
}
}
export default DeleteMsg;