NapCatQQ/packages/napcat-webui-frontend/src/const/ob_api/user.ts
手瓜一十雪 4360775eff
refactor: 整体重构 (#1381)
* feat: pnpm new

* Refactor build and release workflows, update dependencies

Switch build scripts and workflows from npm to pnpm, update build and artifact paths, and simplify release workflow by removing version detection and changelog steps. Add new dependencies (silk-wasm, express, ws, node-pty-prebuilt-multiarch), update exports in package.json files, and add vite config for napcat-framework. Also, rename manifest.json for framework package and fix static asset copying in shell build config.
2025-11-13 15:39:42 +08:00

279 lines
8.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { z } from 'zod';
import onlineStatusDataSchema from './online_status';
import { baseResponseSchema, commonResponseDataSchema } from './response';
const oneBotHttpApiUser = {
'/set_qq_profile': {
description: '设置账号信息',
request: z.object({
nickname: z.string().describe('昵称'),
personal_note: z.string().describe('个性签名'),
sex: z.string().optional().describe('性别'),
}),
response: baseResponseSchema.extend({
data: commonResponseDataSchema,
}),
},
'/ArkSharePeer': {
description: '获取推荐好友/群聊卡片',
request: z
.object({
group_id: z
.union([z.string(), z.number()])
.optional()
.describe('群聊ID与 user_id 二选一'),
user_id: z
.union([z.string(), z.number()])
.optional()
.describe('用户ID与 group_id 二选一'),
phoneNumber: z.string().optional().describe('对方手机号码'),
})
.refine(
(data) =>
(data.group_id && !data.user_id) || (!data.group_id && data.user_id),
{
message: 'group_id 和 user_id 必须二选一,且不能同时存在或同时为空',
path: ['group_id', 'user_id'], // 错误路径
}
),
response: baseResponseSchema.extend({
data: z.object({
errCode: z.number(),
errMsg: z.string(),
arkJson: z.string(),
}),
}),
},
'/ArkShareGroup': {
description: '获取推荐群聊卡片',
request: z.object({
group_id: z.union([z.string(), z.number()]).describe('群聊ID'),
}),
response: baseResponseSchema.extend({
data: z.string(),
}),
},
'/set_online_status': {
description: '设置在线状态',
request: z.object({
data: onlineStatusDataSchema,
}),
response: baseResponseSchema,
},
'/get_friends_with_category': {
description: '获取好友分组列表',
request: z.object({}),
response: baseResponseSchema.extend({
data: z.array(
z.object({
categoryId: z.number(),
categorySortId: z.number(),
categoryName: z.string(),
categoryMbCount: z.number(),
onlineCount: z.number(),
buddyList: z.array(
z.object({
qid: z.string(),
longNick: z.string(),
birthday_year: z.number(),
birthday_month: z.number(),
birthday_day: z.number(),
age: z.number(),
sex: z.string(),
eMail: z.string(),
phoneNum: z.string(),
categoryId: z.number(),
richTime: z.number(),
richBuffer: z.object({}),
uid: z.string(),
uin: z.string(),
nick: z.string(),
remark: z.string(),
user_id: z.number(),
nickname: z.string(),
level: z.number(),
})
),
})
),
}),
},
'/set_qq_avatar': {
description: '设置头像',
request: z.object({
file: z.string().describe('图片文件路径(服务器本地或者远程均可)'),
}),
response: baseResponseSchema,
},
'/send_like': {
description: '点赞',
request: z.object({
user_id: z.union([z.string(), z.number()]).describe('对方QQ号'),
times: z.number().describe('点赞次数'),
}),
response: baseResponseSchema,
},
'/create_collection': {
description: '创建收藏',
request: z.object({
rawData: z.string().describe('收藏内容'),
brief: z.string().describe('收藏简介'),
}),
response: baseResponseSchema.extend({
data: commonResponseDataSchema,
}),
},
'/set_friend_add_request': {
description: '处理好友请求',
request: z.object({
flag: z.string().describe('请求ID'),
approve: z.boolean().describe('是否同意'),
remark: z.string().describe('好友备注'),
}),
response: baseResponseSchema,
},
'/set_self_longnick': {
description: '设置个性签名',
request: z.object({
longNick: z.string().describe('签名内容'),
}),
response: baseResponseSchema.extend({
data: commonResponseDataSchema,
}),
},
'/get_stranger_info': {
description: '获取账号信息',
request: z.object({
user_id: z.union([z.string(), z.number()]).describe('对方QQ号'),
}),
response: baseResponseSchema.extend({
data: z.object({
user_id: z.number(),
uid: z.string(),
uin: z.string(),
nickname: z.string(),
age: z.number(),
qid: z.string(),
qqLevel: z.number(),
sex: z.string(),
long_nick: z.string(),
reg_time: z.number(),
is_vip: z.boolean(),
is_years_vip: z.boolean(),
vip_level: z.number(),
remark: z.string(),
status: z.number(),
login_days: z.number(),
}),
}),
},
'/get_friend_list': {
description: '获取好友列表',
request: z.object({
no_cache: z.boolean().describe('是否不使用缓存'),
}),
response: baseResponseSchema.extend({
data: z.array(
z.object({
qid: z.string(),
longNick: z.string(),
birthday_year: z.number(),
birthday_month: z.number(),
birthday_day: z.number(),
age: z.number(),
sex: z.string(),
eMail: z.string(),
phoneNum: z.string(),
categoryId: z.number(),
richTime: z.number(),
richBuffer: z.object({}),
uid: z.string(),
uin: z.string(),
nick: z.string(),
remark: z.string(),
user_id: z.number(),
nickname: z.string(),
level: z.number(),
})
),
}),
},
'/get_profile_like': {
description: '获取点赞列表',
request: z.object({}),
response: baseResponseSchema.extend({
data: z.object({
total_count: z.number(),
new_count: z.number(),
new_nearby_count: z.number(),
last_visit_time: z.number(),
userInfos: z.array(
z.object({
uid: z.string(),
src: z.number(),
latestTime: z.number(),
count: z.number(),
giftCount: z.number(),
customId: z.number(),
lastCharged: z.number(),
bAvailableCnt: z.number(),
bTodayVotedCnt: z.number(),
nick: z.string(),
gender: z.number(),
age: z.number(),
isFriend: z.boolean(),
isvip: z.boolean(),
isSvip: z.boolean(),
uin: z.number(),
})
),
}),
}),
},
'/fetch_custom_face': {
description: '获取收藏表情',
request: z.object({
count: z.number().optional().describe('获取数量'),
}),
response: baseResponseSchema.extend({
data: z.array(z.string()),
}),
},
'/upload_private_file': {
description: '上传私聊文件',
request: z.object({
user_id: z.union([z.string(), z.number()]),
file: z.string(),
name: z.string(),
}),
response: baseResponseSchema,
},
'/delete_friend': {
description: '删除好友',
request: z.object({
user_id: z.union([z.string(), z.number()]).describe('自己QQ号'),
friend_id: z.union([z.string(), z.number()]).describe('好友QQ号'),
temp_block: z.boolean().describe('是否加入黑名单'),
temp_both_del: z.boolean().describe('是否双向删除'),
}),
response: baseResponseSchema.extend({
data: commonResponseDataSchema,
}),
},
'/nc_get_user_status': {
description: '获取用户在线状态',
request: z.object({
user_id: z.union([z.string(), z.number()]).describe('对方QQ号'),
}),
response: baseResponseSchema.extend({
data: z.object({
status: z.number(),
ext_status: z.number(),
}),
}),
},
} as const;
export default oneBotHttpApiUser;