mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-04 22:51:13 +00:00
Moved action example files into a new 'example' directory and updated all imports accordingly. Removed the monolithic 'examples.ts' and redefined ActionExamples in OneBotAction.ts to only include common error codes. This improves code organization and maintainability.
43 lines
2.0 KiB
TypeScript
43 lines
2.0 KiB
TypeScript
import { MessageUnique } from 'napcat-common/src/message-unique';
|
|
import { ChatType, Peer } from 'napcat-core';
|
|
import { GetPacketStatusDepends } from '@/napcat-onebot/action/packet/GetPacketStatus';
|
|
import { Static, Type } from '@sinclair/typebox';
|
|
import { ActionName } from '../router';
|
|
|
|
import { PacketActionsExamples } from '../example/PacketActionsExamples';
|
|
|
|
export const SetGroupTodoPayloadSchema = Type.Object({
|
|
group_id: Type.Union([Type.String(), Type.Number()], { description: '群号' }),
|
|
message_id: Type.Optional(Type.String({ description: '消息ID' })),
|
|
message_seq: Type.Optional(Type.String({ description: '消息Seq (可选)' })),
|
|
});
|
|
|
|
export type SetGroupTodoPayload = Static<typeof SetGroupTodoPayloadSchema>;
|
|
export class SetGroupTodo extends GetPacketStatusDepends<SetGroupTodoPayload, void> {
|
|
override actionName = ActionName.SetGroupTodo;
|
|
override payloadSchema = SetGroupTodoPayloadSchema;
|
|
override returnSchema = Type.Null();
|
|
override actionSummary = '设置群待办';
|
|
override actionDescription = '将指定消息设置为群待办';
|
|
override actionTags = ['核心接口'];
|
|
override payloadExample = PacketActionsExamples.SetGroupTodo.payload;
|
|
override returnExample = PacketActionsExamples.SetGroupTodo.response;
|
|
|
|
async _handle (payload: SetGroupTodoPayload) {
|
|
if (payload.message_seq) {
|
|
return await this.core.apis.PacketApi.pkt.operation.SetGroupTodo(+payload.group_id, payload.message_seq.toString());
|
|
}
|
|
if (!payload.message_id) {
|
|
throw new Error('缺少参数 message_id 或 message_seq');
|
|
}
|
|
const peer: Peer = {
|
|
chatType: ChatType.KCHATTYPEGROUP,
|
|
peerUid: payload.group_id.toString(),
|
|
};
|
|
const { MsgId, Peer } = MessageUnique.getMsgIdAndPeerByShortId(+payload.message_id) ?? { Peer: peer, MsgId: payload.message_id.toString() };
|
|
const msg = (await this.core.apis.MsgApi.getMsgsByMsgId(Peer, [MsgId])).msgList[0];
|
|
if (!msg) throw new Error('消息不存在');
|
|
await this.core.apis.PacketApi.pkt.operation.SetGroupTodo(+payload.group_id, msg.msgSeq);
|
|
}
|
|
}
|