mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-05 23:19:37 +00:00
Refactored all Satori action classes to use TypeBox schemas for payload validation and unified action naming via a new router. Added schema-based parameter checking to the SatoriAction base class. Introduced new actions for guild and member approval, and login retrieval. Centralized action name constants and types in a new router module. Enhanced event and message APIs with more structured event types and parsing logic. Added helper utilities for XML parsing. Updated exports and registration logic to support the new structure.
69 lines
2.7 KiB
TypeScript
69 lines
2.7 KiB
TypeScript
import { NapCatCore } from 'napcat-core';
|
|
import { NapCatSatoriAdapter } from '../index';
|
|
import { SatoriAction } from './SatoriAction';
|
|
|
|
// 导入所有 Action
|
|
import { MessageCreateAction } from './message/MessageCreate';
|
|
import { MessageGetAction } from './message/MessageGet';
|
|
import { MessageDeleteAction } from './message/MessageDelete';
|
|
import { ChannelGetAction } from './channel/ChannelGet';
|
|
import { ChannelListAction } from './channel/ChannelList';
|
|
import { GuildGetAction } from './guild/GuildGet';
|
|
import { GuildListAction } from './guild/GuildList';
|
|
import { GuildApproveAction } from './guild/GuildApprove';
|
|
import { GuildMemberGetAction } from './guild/GuildMemberGet';
|
|
import { GuildMemberListAction } from './guild/GuildMemberList';
|
|
import { GuildMemberKickAction } from './guild/GuildMemberKick';
|
|
import { GuildMemberMuteAction } from './guild/GuildMemberMute';
|
|
import { GuildMemberApproveAction } from './guild/GuildMemberApprove';
|
|
import { UserGetAction } from './user/UserGet';
|
|
import { FriendListAction } from './user/FriendList';
|
|
import { FriendApproveAction } from './user/FriendApprove';
|
|
import { LoginGetAction } from './login/LoginGet';
|
|
import { UploadCreateAction } from './upload/UploadCreate';
|
|
|
|
export type SatoriActionMap = Map<string, SatoriAction<unknown, unknown>>;
|
|
|
|
export function createSatoriActionMap (
|
|
satoriAdapter: NapCatSatoriAdapter,
|
|
core: NapCatCore
|
|
): SatoriActionMap {
|
|
const actionMap: SatoriActionMap = new Map();
|
|
|
|
const actions: SatoriAction<unknown, unknown>[] = [
|
|
// 消息相关
|
|
new MessageCreateAction(satoriAdapter, core),
|
|
new MessageGetAction(satoriAdapter, core),
|
|
new MessageDeleteAction(satoriAdapter, core),
|
|
// 频道相关
|
|
new ChannelGetAction(satoriAdapter, core),
|
|
new ChannelListAction(satoriAdapter, core),
|
|
// 群组相关
|
|
new GuildGetAction(satoriAdapter, core),
|
|
new GuildListAction(satoriAdapter, core),
|
|
new GuildApproveAction(satoriAdapter, core),
|
|
new GuildMemberGetAction(satoriAdapter, core),
|
|
new GuildMemberListAction(satoriAdapter, core),
|
|
new GuildMemberKickAction(satoriAdapter, core),
|
|
new GuildMemberMuteAction(satoriAdapter, core),
|
|
new GuildMemberApproveAction(satoriAdapter, core),
|
|
// 用户相关
|
|
new UserGetAction(satoriAdapter, core),
|
|
new FriendListAction(satoriAdapter, core),
|
|
new FriendApproveAction(satoriAdapter, core),
|
|
// 登录相关
|
|
new LoginGetAction(satoriAdapter, core),
|
|
// 上传相关
|
|
new UploadCreateAction(satoriAdapter, core),
|
|
];
|
|
|
|
for (const action of actions) {
|
|
actionMap.set(action.actionName, action);
|
|
}
|
|
|
|
return actionMap;
|
|
}
|
|
|
|
export { SatoriAction, SatoriCheckResult, SatoriResponse, SatoriResponseHelper } from './SatoriAction';
|
|
export { SatoriActionName, SatoriActionNameType } from './router';
|