NapCatQQ/napcat.webui/src/const/ob_api/message/group.ts
2025-11-03 12:43:33 +08:00

85 lines
2.3 KiB
TypeScript

import { z } from 'zod';
import type { ZodSchema } from 'zod';
import { baseResponseSchema, commonResponseDataSchema } from '../response';
import messageNodeSchema, { nodeMessage } from './node';
const oneBotHttpApiMessageGroup: Record<
string,
{
description?: string
request: ZodSchema
response: ZodSchema
}
> = {
'/send_group_msg': {
description: '发送群消息',
request: z
.object({
group_id: z
.union([z.string(), z.number()])
.describe('群号')
.describe('群号'),
message: z.array(messageNodeSchema).describe('消息内容'),
})
.refine(
(data) => {
const hasReply = data.message.some((item) => item.type === 'reply');
if (hasReply) {
return data.message[0].type === 'reply';
}
return true;
},
{
message:
'如果 message 包含 reply 类型的消息,那么只能包含一个,而且排在最前面',
}
),
response: baseResponseSchema.extend({
data: commonResponseDataSchema,
}),
},
'/send_group_forward_msg': {
description: '发送群合并转发消息',
request: z.object({
group_id: z.union([z.string(), z.number()]).describe('群号'),
messages: z.array(nodeMessage).describe('消息内容'),
news: z
.array(
z.object({
text: z.string(),
})
)
.describe('?'),
prompt: z.string().describe('外显'),
summary: z.string().describe('底下文本'),
source: z.string().describe('内容'),
}),
response: baseResponseSchema.extend({
data: commonResponseDataSchema,
}),
},
'/forward_group_single_msg': {
description: '消息转发到群',
request: z.object({
group_id: z.union([z.string(), z.number()]).describe('群号'),
message_id: z.union([z.string(), z.number()]).describe('消息 ID'),
}),
response: baseResponseSchema.extend({
data: commonResponseDataSchema,
}),
},
'/group_poke': {
description: '发送戳一戳',
request: z.object({
group_id: z.union([z.string(), z.number()]).describe('群号'),
user_id: z.union([z.string(), z.number()]).describe('对方QQ号'),
}),
response: baseResponseSchema,
},
};
export default oneBotHttpApiMessageGroup;