mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-12-29 04:41:22 +08:00
85 lines
2.3 KiB
TypeScript
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;
|