mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-04 14:41:14 +00:00
Corrected the type definitions for user_id and target_id to only allow strings, and fixed a syntax error in group_id. This ensures payload validation is consistent and accurate. Refactor fileset ID API response and schema handling Updated GetFilesetId action to return a structured object with fileset_id and adjusted its return schema accordingly. Improved frontend TypeBox schema parsing to support allOf (intersection) merging and updated API debug component to construct response schemas in a more robust way for object recognition. Refactor OneBot API schema handling to use TypeBox Replaces Zod-based static API schema definitions with dynamic fetching of schemas from the backend using TypeBox. Removes legacy static schema files, updates frontend API debug components to use TypeBox utilities, and adds @sinclair/typebox as a dependency. Backend now exposes a /schemas endpoint for all OneBot actions. Various schema and description fields are updated for clarity and consistency.
41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import { OneBotAction } from '@/napcat-onebot/action/OneBotAction';
|
|
import { ActionName } from '@/napcat-onebot/action/router';
|
|
import { Static, Type } from '@sinclair/typebox';
|
|
|
|
const PayloadSchema = Type.Object({
|
|
group_id: Type.String({ description: '群号' }),
|
|
no_code_finger_open: Type.Optional(Type.Number({ description: '未知' })),
|
|
no_finger_open: Type.Optional(Type.Number({ description: '未知' })),
|
|
});
|
|
|
|
type PayloadType = Static<typeof PayloadSchema>;
|
|
|
|
const ReturnSchema = Type.Null({ description: '返回结果' });
|
|
|
|
type ReturnType = Static<typeof ReturnSchema>;
|
|
|
|
export default class SetGroupSearch extends OneBotAction<PayloadType, ReturnType> {
|
|
override actionName = ActionName.SetGroupSearch;
|
|
override actionSummary = '设置群搜索选项';
|
|
override actionTags = ['群组扩展'];
|
|
override payloadExample = {
|
|
group_id: 123456,
|
|
is_searchable: true
|
|
};
|
|
override returnExample = {
|
|
result: true
|
|
};
|
|
override payloadSchema = PayloadSchema;
|
|
override returnSchema = ReturnSchema;
|
|
async _handle (payload: PayloadType): Promise<ReturnType> {
|
|
const ret = await this.core.apis.GroupApi.setGroupSearch(payload.group_id, {
|
|
noCodeFingerOpenFlag: payload.no_code_finger_open,
|
|
noFingerOpenFlag: payload.no_finger_open,
|
|
});
|
|
if (ret.result !== 0) {
|
|
throw new Error(`设置群搜索失败, ${ret.result}:${ret.errMsg}`);
|
|
}
|
|
return null;
|
|
}
|
|
}
|