diff --git a/packages/napcat-onebot/action/extends/BotExit.ts b/packages/napcat-onebot/action/extends/BotExit.ts index b5b5d9b8..c00e4739 100644 --- a/packages/napcat-onebot/action/extends/BotExit.ts +++ b/packages/napcat-onebot/action/extends/BotExit.ts @@ -6,6 +6,10 @@ export class BotExit extends OneBotAction { override actionName = ActionName.Exit; override payloadSchema = Type.Void(); override returnSchema = Type.Void(); + override actionSummary = '退出登录'; + override actionTags = ['系统扩展']; + override payloadExample = {}; + override returnExample = null; async _handle () { process.exit(0); diff --git a/packages/napcat-onebot/action/extends/ClickInlineKeyboardButton.ts b/packages/napcat-onebot/action/extends/ClickInlineKeyboardButton.ts index a2fd84b8..331ba1ca 100644 --- a/packages/napcat-onebot/action/extends/ClickInlineKeyboardButton.ts +++ b/packages/napcat-onebot/action/extends/ClickInlineKeyboardButton.ts @@ -19,8 +19,15 @@ type ReturnType = Static; export class ClickInlineKeyboardButton extends OneBotAction { override actionName = ActionName.ClickInlineKeyboardButton; override payloadSchema = PayloadSchema; - override returnSchema = ReturnSchema; - + override returnSchema = ReturnSchema; override actionSummary = '点击内联键盘按钮'; + override actionTags = ['消息扩展']; + override payloadExample = { + message_id: 12345, + button_id: 'btn_1' + }; + override returnExample = { + result: true + }; async _handle (payload: PayloadType) { return await this.core.apis.MsgApi.clickInlineKeyboardButton({ buttonId: payload.button_id, diff --git a/packages/napcat-onebot/action/extends/CreateCollection.ts b/packages/napcat-onebot/action/extends/CreateCollection.ts index fdd113a0..d1801d3f 100644 --- a/packages/napcat-onebot/action/extends/CreateCollection.ts +++ b/packages/napcat-onebot/action/extends/CreateCollection.ts @@ -17,6 +17,16 @@ export class CreateCollection extends OneBotAction { override actionName = ActionName.CreateCollection; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; + override actionSummary = '创建收藏'; + override actionTags = ['扩展接口']; + override payloadExample = { + rawData: '收藏内容', + brief: '收藏标题' + }; + override returnExample = { + result: 0, + errMsg: '' + }; async _handle (payload: PayloadType) { return await this.core.apis.CollectionApi.createCollection( diff --git a/packages/napcat-onebot/action/extends/DelGroupAlbumMedia.ts b/packages/napcat-onebot/action/extends/DelGroupAlbumMedia.ts index 6862b187..145d5e6f 100644 --- a/packages/napcat-onebot/action/extends/DelGroupAlbumMedia.ts +++ b/packages/napcat-onebot/action/extends/DelGroupAlbumMedia.ts @@ -16,6 +16,15 @@ type ReturnType = Static; export class DelGroupAlbumMedia extends OneBotAction { override actionName = ActionName.DelGroupAlbumMedia; + override actionSummary = '删除群相册媒体'; + override actionTags = ['群组扩展']; + override payloadExample = { + group_code: 123456, + media_id_list: ['media_id_1', 'media_id_2'] + }; + override returnExample = { + result: true + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/DoGroupAlbumComment.ts b/packages/napcat-onebot/action/extends/DoGroupAlbumComment.ts index 8a2f4164..b6d4f787 100644 --- a/packages/napcat-onebot/action/extends/DoGroupAlbumComment.ts +++ b/packages/napcat-onebot/action/extends/DoGroupAlbumComment.ts @@ -13,6 +13,16 @@ export type DoGroupAlbumCommentPayload = Static { override actionName = ActionName.DoGroupAlbumComment; + override actionSummary = '发表群相册评论'; + override actionTags = ['群组扩展']; + override payloadExample = { + group_code: 123456, + media_id: 'media_id_1', + content: '很有意思' + }; + override returnExample = { + result: true + }; override payloadSchema = DoGroupAlbumCommentPayloadSchema; override returnSchema = Type.Any({ description: '评论结果' }); diff --git a/packages/napcat-onebot/action/extends/FetchCustomFace.ts b/packages/napcat-onebot/action/extends/FetchCustomFace.ts index b5ffbeb9..2215316b 100644 --- a/packages/napcat-onebot/action/extends/FetchCustomFace.ts +++ b/packages/napcat-onebot/action/extends/FetchCustomFace.ts @@ -16,6 +16,14 @@ export class FetchCustomFace extends OneBotAction { override actionName = ActionName.FetchCustomFace; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; + override actionSummary = '获取自定义表情'; + override actionTags = ['系统扩展']; + override payloadExample = { + count: 10 + }; + override returnExample = [ + 'http://example.com/face1.png' + ]; async _handle (payload: PayloadType) { const ret = await this.core.apis.MsgApi.fetchFavEmojiList(+payload.count); diff --git a/packages/napcat-onebot/action/extends/FetchEmojiLike.ts b/packages/napcat-onebot/action/extends/FetchEmojiLike.ts index 677e5861..319668ec 100644 --- a/packages/napcat-onebot/action/extends/FetchEmojiLike.ts +++ b/packages/napcat-onebot/action/extends/FetchEmojiLike.ts @@ -30,6 +30,14 @@ type ReturnType = Static; export class FetchEmojiLike extends OneBotAction { override actionName = ActionName.FetchEmojiLike; + override actionSummary = '获取表情点赞详情'; + override actionTags = ['消息扩展']; + override payloadExample = { + message_id: 12345 + }; + override returnExample = { + likes: [{ emoji_id: '123', count: 10 }] + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/GetCollectionList.ts b/packages/napcat-onebot/action/extends/GetCollectionList.ts index 5bdd1655..deb84dd2 100644 --- a/packages/napcat-onebot/action/extends/GetCollectionList.ts +++ b/packages/napcat-onebot/action/extends/GetCollectionList.ts @@ -2,8 +2,6 @@ import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Type, Static } from '@sinclair/typebox'; -import { ActionExamples } from '../examples'; - const PayloadSchema = Type.Object({ category: Type.String({ description: '分类ID' }), count: Type.String({ default: '1', description: '获取数量' }), @@ -19,10 +17,18 @@ export class GetCollectionList extends OneBotAction { override actionName = ActionName.GetCollectionList; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; - override actionDescription = '获取收藏列表'; - override actionTags = ['扩展接口']; - override payloadExample = ActionExamples.GetCollectionList.payload; - override returnExample = ActionExamples.GetCollectionList.return; + override actionSummary = '获取收藏列表'; + override actionTags = ['系统扩展']; + override payloadExample = { + category: '1', + count: '10' + }; + override returnExample = [ + { + collection_id: '123', + title: '收藏标题' + } + ]; async _handle (payload: PayloadType) { return await this.core.apis.CollectionApi.getAllCollection(+payload.category, +payload.count); diff --git a/packages/napcat-onebot/action/extends/GetEmojiLikes.ts b/packages/napcat-onebot/action/extends/GetEmojiLikes.ts index 437804db..ef4a1c4d 100644 --- a/packages/napcat-onebot/action/extends/GetEmojiLikes.ts +++ b/packages/napcat-onebot/action/extends/GetEmojiLikes.ts @@ -26,6 +26,14 @@ type ReturnType = Static; export class GetEmojiLikes extends OneBotAction { override actionName = ActionName.GetEmojiLikes; + override actionSummary = '获取消息表情点赞列表'; + override actionTags = ['消息扩展']; + override payloadExample = { + message_id: 12345 + }; + override returnExample = { + likes: [{ emoji_id: '123', user_id: 654321 }] + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/GetFriendWithCategory.ts b/packages/napcat-onebot/action/extends/GetFriendWithCategory.ts index ff0766ad..0d81d652 100644 --- a/packages/napcat-onebot/action/extends/GetFriendWithCategory.ts +++ b/packages/napcat-onebot/action/extends/GetFriendWithCategory.ts @@ -20,6 +20,17 @@ export class GetFriendWithCategory extends OneBotAction { override actionName = ActionName.GetFriendsWithCategory; override payloadSchema = Type.Void(); override returnSchema = ReturnSchema; + override actionSummary = '获取带分组的好友列表'; + override actionTags = ['用户扩展']; + override payloadExample = {}; + override returnExample = [ + { + categoryId: 1, + categoryName: '我的好友', + categoryMbCount: 1, + buddyList: [] + } + ]; async _handle () { const categories = await this.core.apis.FriendApi.getBuddyV2ExWithCate(); diff --git a/packages/napcat-onebot/action/extends/GetGroupAddRequest.ts b/packages/napcat-onebot/action/extends/GetGroupAddRequest.ts index 7e2b429e..a84258a8 100644 --- a/packages/napcat-onebot/action/extends/GetGroupAddRequest.ts +++ b/packages/napcat-onebot/action/extends/GetGroupAddRequest.ts @@ -24,6 +24,22 @@ export default class GetGroupAddRequest extends OneBotAction { override actionName = ActionName.GetGroupIgnoreAddRequest; override payloadSchema = Type.Void(); override returnSchema = ReturnSchema; + override actionSummary = '获取群被忽略的加群请求'; + override actionTags = ['群组接口']; + override payloadExample = {}; + override returnExample = [ + { + request_id: 12345, + invitor_uin: 123456789, + invitor_nick: '邀请者', + group_id: 123456789, + message: '加群请求', + group_name: '群名称', + checked: false, + actor: 0, + requester_nick: '请求者' + } + ]; async _handle (): Promise { const NTQQUserApi = this.core.apis.UserApi; diff --git a/packages/napcat-onebot/action/extends/GetGroupAlbumMediaList.ts b/packages/napcat-onebot/action/extends/GetGroupAlbumMediaList.ts index fa64bd1c..317f8f8a 100644 --- a/packages/napcat-onebot/action/extends/GetGroupAlbumMediaList.ts +++ b/packages/napcat-onebot/action/extends/GetGroupAlbumMediaList.ts @@ -16,6 +16,17 @@ type ReturnType = Static; export class GetGroupAlbumMediaList extends OneBotAction { override actionName = ActionName.GetGroupAlbumMediaList; + override actionSummary = '获取群相册媒体列表'; + override actionTags = ['群组扩展']; + override payloadExample = { + group_code: 123456, + album_id: 'album_id_1' + }; + override returnExample = { + media_list: [ + { media_id: 'media_id_1', url: 'http://example.com/1.jpg' } + ] + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/GetGroupInfoEx.ts b/packages/napcat-onebot/action/extends/GetGroupInfoEx.ts index 7f5e697a..d0b2e04a 100644 --- a/packages/napcat-onebot/action/extends/GetGroupInfoEx.ts +++ b/packages/napcat-onebot/action/extends/GetGroupInfoEx.ts @@ -13,6 +13,16 @@ type ReturnType = Static; export class GetGroupInfoEx extends OneBotAction { override actionName = ActionName.GetGroupInfoEx; + override actionSummary = '获取群详细信息 (扩展)'; + override actionTags = ['群组扩展']; + override payloadExample = { + group_id: 123456 + }; + override returnExample = { + group_id: 123456, + group_name: '测试群', + member_count: 100 + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/GetMiniAppArk.ts b/packages/napcat-onebot/action/extends/GetMiniAppArk.ts index 8140608a..e3206f5e 100644 --- a/packages/napcat-onebot/action/extends/GetMiniAppArk.ts +++ b/packages/napcat-onebot/action/extends/GetMiniAppArk.ts @@ -45,8 +45,14 @@ type ReturnType = Static; export class GetMiniAppArk extends GetPacketStatusDepends { override actionName = ActionName.GetMiniAppArk; override payloadSchema = PayloadSchema; - override returnSchema = ReturnSchema; - + override returnSchema = ReturnSchema; override actionSummary = '获取小程序 Ark'; + override actionTags = ['系统扩展']; + override payloadExample = { + app_id: 'wx123456' + }; + override returnExample = { + ark: 'ark_content' + }; async _handle (payload: PayloadType) { let reqParam: MiniAppReqParams; const customParams: MiniAppReqCustomParams = { diff --git a/packages/napcat-onebot/action/extends/GetProfileLike.ts b/packages/napcat-onebot/action/extends/GetProfileLike.ts index f3b8b703..3dbf7823 100644 --- a/packages/napcat-onebot/action/extends/GetProfileLike.ts +++ b/packages/napcat-onebot/action/extends/GetProfileLike.ts @@ -34,6 +34,31 @@ export class GetProfileLike extends OneBotAction { override actionName = ActionName.GetProfileLike; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; + override actionSummary = '获取资料点赞'; + override actionTags = ['用户扩展']; + override payloadExample = { + user_id: '123456789', + start: 0, + count: 10 + }; + override returnExample = { + uid: 'u_123', + time: '1734567890', + favoriteInfo: { + userInfos: [], + total_count: 10, + last_time: 1734567890, + today_count: 5 + }, + voteInfo: { + total_count: 100, + new_count: 2, + new_nearby_count: 0, + last_visit_time: 1734567890, + userInfos: [] + } + }; + async _handle (payload: PayloadType): Promise { const isSelf = this.core.selfInfo.uin === payload.user_id || !payload.user_id; const userUid = isSelf || !payload.user_id ? this.core.selfInfo.uid : await this.core.apis.UserApi.getUidByUinV2(payload.user_id.toString()); diff --git a/packages/napcat-onebot/action/extends/GetQunAlbumList.ts b/packages/napcat-onebot/action/extends/GetQunAlbumList.ts index 3c30bf15..2302f3ec 100644 --- a/packages/napcat-onebot/action/extends/GetQunAlbumList.ts +++ b/packages/napcat-onebot/action/extends/GetQunAlbumList.ts @@ -15,6 +15,16 @@ type GetQunAlbumListReturn = Awaited { override actionName = ActionName.GetQunAlbumList; + override actionSummary = '获取群相册列表'; + override actionTags = ['群组扩展']; + override payloadExample = { + group_code: 123456 + }; + override returnExample = { + album_list: [ + { album_id: 'album_id_1', album_name: '相册1' } + ] + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/GetRkey.ts b/packages/napcat-onebot/action/extends/GetRkey.ts index a76bb540..e2eaf681 100644 --- a/packages/napcat-onebot/action/extends/GetRkey.ts +++ b/packages/napcat-onebot/action/extends/GetRkey.ts @@ -2,8 +2,6 @@ import { ActionName } from '@/napcat-onebot/action/router'; import { GetPacketStatusDepends } from '@/napcat-onebot/action/packet/GetPacketStatus'; import { Type, Static } from '@sinclair/typebox'; -import { ExtendsActionsExamples } from './examples'; - const ReturnSchema = Type.Array(Type.Any(), { description: 'Rkey列表' }); type ReturnType = Static; @@ -12,11 +10,15 @@ export class GetRkey extends GetPacketStatusDepends { override actionName = ActionName.GetRkey; override payloadSchema = Type.Void(); override returnSchema = ReturnSchema; - override actionSummary = '获取Rkey'; - override actionDescription = '获取用于媒体资源的Rkey列表'; - override actionTags = ['扩展接口']; - override payloadExample = ExtendsActionsExamples.GetRkey.payload; - override returnExample = ExtendsActionsExamples.GetRkey.response; + override actionSummary = '获取 RKey'; + override actionTags = ['系统扩展']; + override payloadExample = {}; + override returnExample = [ + { + "key": "rkey_value", + "expired": 1734567890 + } + ]; async _handle () { return await this.core.apis.PacketApi.pkt.operation.FetchRkey(); diff --git a/packages/napcat-onebot/action/extends/GetRobotUinRange.ts b/packages/napcat-onebot/action/extends/GetRobotUinRange.ts index c29846f2..84e61939 100644 --- a/packages/napcat-onebot/action/extends/GetRobotUinRange.ts +++ b/packages/napcat-onebot/action/extends/GetRobotUinRange.ts @@ -8,6 +8,12 @@ type ReturnType = Static; export class GetRobotUinRange extends OneBotAction { override actionName = ActionName.GetRobotUinRange; + override actionSummary = '获取机器人 UIN 范围'; + override actionTags = ['系统扩展']; + override payloadExample = {}; + override returnExample = [ + { minUin: '12345678', maxUin: '87654321' } + ]; override payloadSchema = Type.Void(); override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/GetUnidirectionalFriendList.ts b/packages/napcat-onebot/action/extends/GetUnidirectionalFriendList.ts index 546121f8..077d35c1 100644 --- a/packages/napcat-onebot/action/extends/GetUnidirectionalFriendList.ts +++ b/packages/napcat-onebot/action/extends/GetUnidirectionalFriendList.ts @@ -21,6 +21,18 @@ export class GetUnidirectionalFriendList extends OneBotAction override actionName = ActionName.GetUnidirectionalFriendList; override payloadSchema = Type.Void(); override returnSchema = ReturnSchema; + override actionSummary = '获取单向好友列表'; + override actionTags = ['用户扩展']; + override payloadExample = {}; + override returnExample = [ + { + uin: 123456789, + uid: 'u_123', + nick_name: '单向好友', + age: 20, + source: '来源' + } + ]; async pack_data (data: string): Promise { return ProtoBuf(class extends ProtoBufBase { diff --git a/packages/napcat-onebot/action/extends/GetUserStatus.ts b/packages/napcat-onebot/action/extends/GetUserStatus.ts index 7b4a056f..65860762 100644 --- a/packages/napcat-onebot/action/extends/GetUserStatus.ts +++ b/packages/napcat-onebot/action/extends/GetUserStatus.ts @@ -19,6 +19,15 @@ export class GetUserStatus extends GetPacketStatusDepends; export class MoveGroupFile extends GetPacketStatusDepends { override actionName = ActionName.MoveGroupFile; + override actionSummary = '移动群文件'; + override actionTags = ['文件扩展']; + override payloadExample = { + group_id: 123456, + file_id: '/file_id', + parent_id: '/target_folder_id' + }; + override returnExample = { + result: true + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/RenameGroupFile.ts b/packages/napcat-onebot/action/extends/RenameGroupFile.ts index b0df87d1..0ef446de 100644 --- a/packages/napcat-onebot/action/extends/RenameGroupFile.ts +++ b/packages/napcat-onebot/action/extends/RenameGroupFile.ts @@ -20,6 +20,16 @@ type ReturnType = Static; export class RenameGroupFile extends GetPacketStatusDepends { override actionName = ActionName.RenameGroupFile; + override actionSummary = '重命名群文件'; + override actionTags = ['文件扩展']; + override payloadExample = { + group_id: 123456, + file_id: '/file_id', + name: 'new_name.jpg' + }; + override returnExample = { + result: true + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/SendPacket.ts b/packages/napcat-onebot/action/extends/SendPacket.ts index 1b54a2d0..9f687943 100644 --- a/packages/napcat-onebot/action/extends/SendPacket.ts +++ b/packages/napcat-onebot/action/extends/SendPacket.ts @@ -19,6 +19,15 @@ export class SendPacket extends GetPacketStatusDepends override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; override actionName = ActionName.SendPacket; + override actionSummary = '发送原始数据包'; + override actionTags = ['系统扩展']; + override payloadExample = { + cmd: 'Example.Cmd', + data: '123456', + rsp: true + }; + override returnExample = '123456'; + async _handle (payload: PayloadType) { const rsp = typeof payload.rsp === 'boolean' ? payload.rsp : payload.rsp === 'true'; const packetData = Buffer.from(payload.data, 'hex') as unknown as PacketBuf; diff --git a/packages/napcat-onebot/action/extends/SetDiyOnlineStatus.ts b/packages/napcat-onebot/action/extends/SetDiyOnlineStatus.ts index 1732bf69..983789a7 100644 --- a/packages/napcat-onebot/action/extends/SetDiyOnlineStatus.ts +++ b/packages/napcat-onebot/action/extends/SetDiyOnlineStatus.ts @@ -17,8 +17,15 @@ type ReturnType = Static; export class SetDiyOnlineStatus extends OneBotAction { override actionName = ActionName.SetDiyOnlineStatus; override payloadSchema = PayloadSchema; - override returnSchema = ReturnSchema; - + override returnSchema = ReturnSchema; override actionSummary = '设置自定义在线状态'; + override actionDescription = '设置自定义在线状态'; + override actionTags = ['用户扩展']; + override payloadExample = { + status: 11 + }; + override returnExample = { + result: 0 + }; async _handle (payload: PayloadType) { const ret = await this.core.apis.UserApi.setDiySelfOnlineStatus( payload.face_id.toString(), diff --git a/packages/napcat-onebot/action/extends/SetGroupAddOption.ts b/packages/napcat-onebot/action/extends/SetGroupAddOption.ts index c3f838e5..d857b911 100644 --- a/packages/napcat-onebot/action/extends/SetGroupAddOption.ts +++ b/packages/napcat-onebot/action/extends/SetGroupAddOption.ts @@ -17,6 +17,15 @@ type ReturnType = Static; export default class SetGroupAddOption extends OneBotAction { override actionName = ActionName.SetGroupAddOption; + override actionSummary = '设置群加群选项'; + override actionTags = ['群组扩展']; + override payloadExample = { + group_id: 123456, + option: 1 + }; + override returnExample = { + result: true + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; async _handle (payload: PayloadType): Promise { diff --git a/packages/napcat-onebot/action/extends/SetGroupAlbumMediaLike.ts b/packages/napcat-onebot/action/extends/SetGroupAlbumMediaLike.ts index c62e0970..ef79947a 100644 --- a/packages/napcat-onebot/action/extends/SetGroupAlbumMediaLike.ts +++ b/packages/napcat-onebot/action/extends/SetGroupAlbumMediaLike.ts @@ -18,6 +18,15 @@ type ReturnType = Static; export class SetGroupAlbumMediaLike extends OneBotAction { override actionName = ActionName.SetGroupAlbumMediaLike; + override actionSummary = '点赞群相册媒体'; + override actionTags = ['群组扩展']; + override payloadExample = { + group_code: 123456, + media_id: 'media_id_1' + }; + override returnExample = { + result: true + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/SetGroupRemark.ts b/packages/napcat-onebot/action/extends/SetGroupRemark.ts index 5d361888..d245c016 100644 --- a/packages/napcat-onebot/action/extends/SetGroupRemark.ts +++ b/packages/napcat-onebot/action/extends/SetGroupRemark.ts @@ -2,8 +2,6 @@ import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Static, Type } from '@sinclair/typebox'; -import { ActionExamples } from '../examples'; - const PayloadSchema = Type.Object({ group_id: Type.String({ description: '群号' }), remark: Type.String({ description: '备注' }), @@ -19,9 +17,14 @@ export default class SetGroupRemark extends OneBotAction { const ret = await this.core.apis.GroupApi.setGroupRemark(payload.group_id, payload.remark); diff --git a/packages/napcat-onebot/action/extends/SetGroupRobotAddOption.ts b/packages/napcat-onebot/action/extends/SetGroupRobotAddOption.ts index 38930433..595d0669 100644 --- a/packages/napcat-onebot/action/extends/SetGroupRobotAddOption.ts +++ b/packages/napcat-onebot/action/extends/SetGroupRobotAddOption.ts @@ -16,6 +16,15 @@ type ReturnType = Static; export default class SetGroupRobotAddOption extends OneBotAction { override actionName = ActionName.SetGroupRobotAddOption; + override actionSummary = '设置群机器人加群选项'; + override actionTags = ['群组扩展']; + override payloadExample = { + group_id: 123456, + option: 1 + }; + override returnExample = { + result: true + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; async _handle (payload: PayloadType): Promise { diff --git a/packages/napcat-onebot/action/extends/SetGroupSearch.ts b/packages/napcat-onebot/action/extends/SetGroupSearch.ts index c7b4a569..f3732ddf 100644 --- a/packages/napcat-onebot/action/extends/SetGroupSearch.ts +++ b/packages/napcat-onebot/action/extends/SetGroupSearch.ts @@ -16,6 +16,15 @@ type ReturnType = Static; export default class SetGroupSearch extends OneBotAction { 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 { diff --git a/packages/napcat-onebot/action/extends/SetGroupSign.ts b/packages/napcat-onebot/action/extends/SetGroupSign.ts index 95c9b223..500c06b1 100644 --- a/packages/napcat-onebot/action/extends/SetGroupSign.ts +++ b/packages/napcat-onebot/action/extends/SetGroupSign.ts @@ -15,6 +15,12 @@ type ReturnType = Static; class SetGroupSignBase extends GetPacketStatusDepends { override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; + override actionSummary = '设置群签名'; + override actionTags = ['群扩展']; + override payloadExample = { + group_id: '123456789' + }; + override returnExample = null; async _handle (payload: PayloadType) { return await this.core.apis.PacketApi.pkt.operation.GroupSign(+payload.group_id); diff --git a/packages/napcat-onebot/action/extends/SetInputStatus.ts b/packages/napcat-onebot/action/extends/SetInputStatus.ts index d1d2ad67..89a49f27 100644 --- a/packages/napcat-onebot/action/extends/SetInputStatus.ts +++ b/packages/napcat-onebot/action/extends/SetInputStatus.ts @@ -18,6 +18,14 @@ export class SetInputStatus extends OneBotAction { override actionName = ActionName.SetInputStatus; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; + override actionSummary = '设置输入状态'; + override actionTags = ['系统扩展']; + override payloadExample = { + user_id: '123456789', + event_type: 1 + }; + override returnExample = null; + async _handle (payload: PayloadType) { const uid = await this.core.apis.UserApi.getUidByUinV2(payload.user_id.toString()); if (!uid) throw new Error('uid is empty'); diff --git a/packages/napcat-onebot/action/extends/SetOnlineStatus.ts b/packages/napcat-onebot/action/extends/SetOnlineStatus.ts index db14b260..73cad36c 100644 --- a/packages/napcat-onebot/action/extends/SetOnlineStatus.ts +++ b/packages/napcat-onebot/action/extends/SetOnlineStatus.ts @@ -2,8 +2,6 @@ import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Static, Type } from '@sinclair/typebox'; -import { ActionExamples } from '../examples'; - const PayloadSchema = Type.Object({ status: Type.Union([Type.Number(), Type.String()], { description: '在线状态' }), ext_status: Type.Union([Type.Number(), Type.String()], { description: '扩展状态' }), @@ -20,9 +18,15 @@ export class SetOnlineStatus extends OneBotAction { override actionName = ActionName.SetOnlineStatus; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; + override actionSummary = '设置在线状态'; override actionDescription = '设置在线状态'; - override actionTags = ['扩展接口']; - override payloadExample = ActionExamples.SetOnlineStatus.payload; + override actionTags = ['系统扩展']; + override payloadExample = { + status: 11, + ext_status: 0, + battery_status: 100 + }; + override returnExample = null; async _handle (payload: PayloadType) { const ret = await this.core.apis.UserApi.setSelfOnlineStatus( diff --git a/packages/napcat-onebot/action/extends/ShareContact.ts b/packages/napcat-onebot/action/extends/ShareContact.ts index f9f8d827..31ed0df5 100644 --- a/packages/napcat-onebot/action/extends/ShareContact.ts +++ b/packages/napcat-onebot/action/extends/ShareContact.ts @@ -18,6 +18,16 @@ export class SharePeerBase extends OneBotAction { override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; + override actionSummary = '分享用户 (Ark)'; + override actionDescription = '获取用户推荐的 Ark 内容'; + override actionTags = ['消息扩展']; + override payloadExample = { + user_id: '123456', + phone_number: '' + }; + override returnExample = { + ark: '...' + }; async _handle (payload: PayloadType) { if (payload.group_id) { @@ -44,6 +54,13 @@ type ReturnTypeGroupEx = Static; export class ShareGroupExBase extends OneBotAction { override payloadSchema = PayloadSchemaGroupEx; override returnSchema = ReturnSchemaGroupEx; + override actionSummary = '分享群 (Ark)'; + override actionDescription = '获取群分享的 Ark 内容'; + override actionTags = ['消息扩展']; + override payloadExample = { + group_id: '123456' + }; + override returnExample = '{"app": "com.tencent.structmsg", ...}'; async _handle (payload: PayloadTypeGroupEx) { return await this.core.apis.GroupApi.getArkJsonGroupShare(payload.group_id.toString()); diff --git a/packages/napcat-onebot/action/extends/TransGroupFile.ts b/packages/napcat-onebot/action/extends/TransGroupFile.ts index 9263d4a0..e4a92447 100644 --- a/packages/napcat-onebot/action/extends/TransGroupFile.ts +++ b/packages/napcat-onebot/action/extends/TransGroupFile.ts @@ -18,6 +18,16 @@ type ReturnType = Static; export class TransGroupFile extends GetPacketStatusDepends { override actionName = ActionName.TransGroupFile; + override actionSummary = '传输群文件'; + override actionTags = ['文件扩展']; + override payloadExample = { + group_id: 123456, + file_id: '/file_id', + target_group_id: 654321 + }; + override returnExample = { + result: true + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/extends/UploadImageToQunAlbum.ts b/packages/napcat-onebot/action/extends/UploadImageToQunAlbum.ts index 3f9a6533..3a5bbe33 100644 --- a/packages/napcat-onebot/action/extends/UploadImageToQunAlbum.ts +++ b/packages/napcat-onebot/action/extends/UploadImageToQunAlbum.ts @@ -20,6 +20,16 @@ type ReturnType = Static; export class UploadImageToQunAlbum extends OneBotAction { override actionName = ActionName.UploadImageToQunAlbum; + override actionSummary = '上传图片到群相册'; + override actionTags = ['群组扩展']; + override payloadExample = { + group_code: 123456, + album_id: 'album_id_1', + file: '/path/to/image.jpg' + }; + override returnExample = { + result: true + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/file/flash/CreateFlashTask.ts b/packages/napcat-onebot/action/file/flash/CreateFlashTask.ts index f1486e98..a1270a9e 100644 --- a/packages/napcat-onebot/action/file/flash/CreateFlashTask.ts +++ b/packages/napcat-onebot/action/file/flash/CreateFlashTask.ts @@ -22,6 +22,15 @@ export class CreateFlashTask extends OneBotAction { override actionName = ActionName.CreateFlashTask; override payloadSchema = CreateFlashTaskPayloadSchema; override returnSchema = Type.Any({ description: '任务创建结果' }); + override actionSummary = '创建闪照任务'; + override actionTags = ['文件扩展']; + override payloadExample = { + files: 'C:\\test.jpg', + name: 'test_task' + }; + override returnExample = { + task_id: 'task_123' + }; async _handle (payload: CreateFlashTaskPayload) { const fileList = Array.isArray(payload.files) ? payload.files : [payload.files]; diff --git a/packages/napcat-onebot/action/file/flash/DownloadFileset.ts b/packages/napcat-onebot/action/file/flash/DownloadFileset.ts index 58a2a655..6c770e77 100644 --- a/packages/napcat-onebot/action/file/flash/DownloadFileset.ts +++ b/packages/napcat-onebot/action/file/flash/DownloadFileset.ts @@ -12,6 +12,12 @@ export class DownloadFileset extends OneBotAction { override actionName = ActionName.DownloadFileset; override payloadSchema = DownloadFilesetPayloadSchema; override returnSchema = Type.Any({ description: '下载结果' }); + override actionSummary = '下载文件集'; + override actionTags = ['文件扩展']; + override payloadExample = { + fileset_id: 'set_123' + }; + override returnExample = null; async _handle (payload: DownloadFilesetPayload) { // 默认路径 / fileset_id /为下载路径 diff --git a/packages/napcat-onebot/action/file/flash/GetFilesetIdByCode.ts b/packages/napcat-onebot/action/file/flash/GetFilesetIdByCode.ts index b32c4461..f0079a3a 100644 --- a/packages/napcat-onebot/action/file/flash/GetFilesetIdByCode.ts +++ b/packages/napcat-onebot/action/file/flash/GetFilesetIdByCode.ts @@ -12,6 +12,14 @@ export class GetFilesetId extends OneBotAction { override actionName = ActionName.GetFilesetId; override payloadSchema = GetFilesetIdPayloadSchema; override returnSchema = Type.Any({ description: '文件集 ID' }); + override actionSummary = '获取文件集 ID'; + override actionTags = ['文件扩展']; + override payloadExample = { + share_code: '123456' + }; + override returnExample = { + fileset_id: 'set_123' + }; async _handle (payload: GetFilesetIdPayload) { // 适配share_link 防止被传 Link无法解析 diff --git a/packages/napcat-onebot/action/file/flash/GetFilesetInfo.ts b/packages/napcat-onebot/action/file/flash/GetFilesetInfo.ts index 7000b604..50534cf8 100644 --- a/packages/napcat-onebot/action/file/flash/GetFilesetInfo.ts +++ b/packages/napcat-onebot/action/file/flash/GetFilesetInfo.ts @@ -12,6 +12,15 @@ export class GetFilesetInfo extends OneBotAction { override actionName = ActionName.GetFilesetInfo; override payloadSchema = GetFilesetInfoPayloadSchema; override returnSchema = Type.Any({ description: '文件集信息' }); + override actionSummary = '获取文件集信息'; + override actionTags = ['文件扩展']; + override payloadExample = { + fileset_id: 'set_123' + }; + override returnExample = { + fileset_id: 'set_123', + file_list: [] + }; async _handle (payload: GetFilesetInfoPayload) { return await this.core.apis.FlashApi.getFileSetIndoBySetId(payload.fileset_id); diff --git a/packages/napcat-onebot/action/file/flash/GetFlashFileList.ts b/packages/napcat-onebot/action/file/flash/GetFlashFileList.ts index aee52dcc..871483f9 100644 --- a/packages/napcat-onebot/action/file/flash/GetFlashFileList.ts +++ b/packages/napcat-onebot/action/file/flash/GetFlashFileList.ts @@ -12,6 +12,17 @@ export class GetFlashFileList extends OneBotAction override actionName = ActionName.GetFlashFileList; override payloadSchema = GetFlashFileListPayloadSchema; override returnSchema = Type.Any({ description: '文件列表' }); + override actionSummary = '获取闪照文件列表'; + override actionTags = ['文件扩展']; + override payloadExample = { + fileset_id: 'set_123' + }; + override returnExample = [ + { + file_name: 'test.jpg', + size: 1024 + } + ]; async _handle (payload: GetFlashFileListPayload) { return await this.core.apis.FlashApi.getFileListBySetId(payload.fileset_id); diff --git a/packages/napcat-onebot/action/file/flash/GetFlashFileUrl.ts b/packages/napcat-onebot/action/file/flash/GetFlashFileUrl.ts index 13a52338..27c1391f 100644 --- a/packages/napcat-onebot/action/file/flash/GetFlashFileUrl.ts +++ b/packages/napcat-onebot/action/file/flash/GetFlashFileUrl.ts @@ -14,6 +14,14 @@ export class GetFlashFileUrl extends OneBotAction { override actionName = ActionName.GetFlashFileUrl; override payloadSchema = GetFlashFileUrlPayloadSchema; override returnSchema = Type.Any({ description: '文件下载链接' }); + override actionSummary = '获取闪照文件链接'; + override actionTags = ['文件扩展']; + override payloadExample = { + fileset_id: 'set_123' + }; + override returnExample = { + url: 'http://example.com/flash.jpg' + }; async _handle (payload: GetFlashFileUrlPayload) { // 文件的索引依旧从0开始 diff --git a/packages/napcat-onebot/action/file/flash/GetShareLink.ts b/packages/napcat-onebot/action/file/flash/GetShareLink.ts index dae7e705..7598bb69 100644 --- a/packages/napcat-onebot/action/file/flash/GetShareLink.ts +++ b/packages/napcat-onebot/action/file/flash/GetShareLink.ts @@ -12,6 +12,12 @@ export class GetShareLink extends OneBotAction { override actionName = ActionName.GetShareLink; override payloadSchema = GetShareLinkPayloadSchema; override returnSchema = Type.Any({ description: '分享链接' }); + override actionSummary = '获取文件分享链接'; + override actionTags = ['文件扩展']; + override payloadExample = { + fileset_id: 'set_123' + }; + override returnExample = 'http://example.com/share'; async _handle (payload: GetShareLinkPayload) { return await this.core.apis.FlashApi.getShareLinkBySetId(payload.fileset_id); diff --git a/packages/napcat-onebot/action/file/flash/SendFlashMsg.ts b/packages/napcat-onebot/action/file/flash/SendFlashMsg.ts index dd088b75..73583d00 100644 --- a/packages/napcat-onebot/action/file/flash/SendFlashMsg.ts +++ b/packages/napcat-onebot/action/file/flash/SendFlashMsg.ts @@ -15,6 +15,15 @@ export class SendFlashMsg extends OneBotAction { override actionName = ActionName.SendFlashMsg; override payloadSchema = SendFlashMsgPayloadSchema; override returnSchema = Type.Any({ description: '发送结果' }); + override actionSummary = '发送闪照消息'; + override actionTags = ['文件扩展']; + override payloadExample = { + fileset_id: 'set_123', + user_id: '123456789' + }; + override returnExample = { + message_id: 123456 + }; async _handle (payload: SendFlashMsgPayload) { let peer: Peer; diff --git a/packages/napcat-onebot/action/file/online/CancelOnlineFile.ts b/packages/napcat-onebot/action/file/online/CancelOnlineFile.ts index 05015049..4ab31d8d 100644 --- a/packages/napcat-onebot/action/file/online/CancelOnlineFile.ts +++ b/packages/napcat-onebot/action/file/online/CancelOnlineFile.ts @@ -14,6 +14,13 @@ export class CancelOnlineFile extends OneBotAction override actionName = ActionName.CancelOnlineFile; override payloadSchema = CancelOnlineFilePayloadSchema; override returnSchema = Type.Any({ description: '取消结果' }); + override actionSummary = '取消在线文件'; + override actionTags = ['文件扩展']; + override payloadExample = { + user_id: '123456789', + msg_id: '123' + }; + override returnExample = null; async _handle (payload: CancelOnlineFilePayload) { const uid = await this.core.apis.UserApi.getUidByUinV2(payload.user_id.toString()); diff --git a/packages/napcat-onebot/action/file/online/GetOnlineFileMessages.ts b/packages/napcat-onebot/action/file/online/GetOnlineFileMessages.ts index bc122260..d3bf26b1 100644 --- a/packages/napcat-onebot/action/file/online/GetOnlineFileMessages.ts +++ b/packages/napcat-onebot/action/file/online/GetOnlineFileMessages.ts @@ -13,6 +13,12 @@ export class GetOnlineFileMessages extends OneBotAction override actionName = ActionName.RefuseOnlineFile; override payloadSchema = RefuseOnlineFilePayloadSchema; override returnSchema = Type.Any({ description: '拒绝结果' }); + override actionSummary = '拒绝在线文件'; + override actionTags = ['文件扩展']; + override payloadExample = { + user_id: '123456789', + msg_id: '123' + }; + override returnExample = null; async _handle (payload: RefuseOnlineFilePayload) { const uid = await this.core.apis.UserApi.getUidByUinV2(payload.user_id.toString()); diff --git a/packages/napcat-onebot/action/file/online/SendOnlineFile.ts b/packages/napcat-onebot/action/file/online/SendOnlineFile.ts index 35cbc32a..8c0ba336 100644 --- a/packages/napcat-onebot/action/file/online/SendOnlineFile.ts +++ b/packages/napcat-onebot/action/file/online/SendOnlineFile.ts @@ -15,6 +15,14 @@ export class SendOnlineFile extends OneBotAction { override actionName = ActionName.SendOnlineFile; override payloadSchema = SendOnlineFilePayloadSchema; override returnSchema = Type.Any({ description: '发送结果' }); + override actionSummary = '发送在线文件'; + override actionTags = ['文件扩展']; + override payloadExample = { + user_id: '123456789', + file_path: 'C:\\path\\to\\file.txt', + file_name: 'test.txt' + }; + override returnExample = null; async _handle (payload: SendOnlineFilePayload) { const uid = await this.core.apis.UserApi.getUidByUinV2(payload.user_id.toString()); diff --git a/packages/napcat-onebot/action/file/online/SendOnlineFolder.ts b/packages/napcat-onebot/action/file/online/SendOnlineFolder.ts index 6bced1e0..6a3d0a79 100644 --- a/packages/napcat-onebot/action/file/online/SendOnlineFolder.ts +++ b/packages/napcat-onebot/action/file/online/SendOnlineFolder.ts @@ -15,6 +15,13 @@ export class SendOnlineFolder extends OneBotAction override actionName = ActionName.SendOnlineFolder; override payloadSchema = SendOnlineFolderPayloadSchema; override returnSchema = Type.Any({ description: '发送结果' }); + override actionSummary = '发送在线文件夹'; + override actionTags = ['文件扩展']; + override payloadExample = { + user_id: '123456789', + folder_path: 'C:\\path\\to\\folder' + }; + override returnExample = null; async _handle (payload: SendOnlineFolderPayload) { const uid = await this.core.apis.UserApi.getUidByUinV2(payload.user_id.toString()); diff --git a/packages/napcat-onebot/action/go-cqhttp/CreateGroupFileFolder.ts b/packages/napcat-onebot/action/go-cqhttp/CreateGroupFileFolder.ts index 546d35f8..a02060b5 100644 --- a/packages/napcat-onebot/action/go-cqhttp/CreateGroupFileFolder.ts +++ b/packages/napcat-onebot/action/go-cqhttp/CreateGroupFileFolder.ts @@ -1,7 +1,6 @@ import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Static, Type } from '@sinclair/typebox'; -import { GoCQHTTPActionsExamples } from './examples'; const PayloadSchema = Type.Object({ group_id: Type.String({ description: '群号' }), @@ -27,7 +26,14 @@ export class CreateGroupFileFolder extends OneBotAction override actionSummary = '创建群文件目录'; override actionDescription = '在群文件系统中创建新的文件夹'; override actionTags = ['Go-CQHTTP']; - override payloadExample = GoCQHTTPActionsExamples.CreateGroupFileFolder.payload; + override payloadExample = { + group_id: '123456789', + folder_name: '新建文件夹' + }; + override returnExample = { + result: {}, + groupItem: {} + }; async _handle (payload: PayloadType) { const folderName = payload.folder_name || payload.name; diff --git a/packages/napcat-onebot/action/go-cqhttp/SendForwardMsg.ts b/packages/napcat-onebot/action/go-cqhttp/SendForwardMsg.ts index 24b6b132..abbe57bd 100644 --- a/packages/napcat-onebot/action/go-cqhttp/SendForwardMsg.ts +++ b/packages/napcat-onebot/action/go-cqhttp/SendForwardMsg.ts @@ -2,8 +2,6 @@ import { OB11MessageMixType } from '@/napcat-onebot/types'; import { ContextMode, normalize, ReturnDataType, SendMsgBase, SendMsgPayload } from '@/napcat-onebot/action/msg/SendMsg'; import { ActionName } from '@/napcat-onebot/action/router'; -import { GoCQHTTPActionsExamples } from './examples'; - // 未验证 type GoCQHTTPSendForwardMsgPayload = SendMsgPayload & { messages?: OB11MessageMixType; }; @@ -18,8 +16,13 @@ export class GoCQHTTPSendForwardMsg extends GoCQHTTPSendForwardMsgBase { override actionSummary = '发送合并转发消息'; override actionDescription = '发送合并转发消息'; override actionTags = ['Go-CQHTTP']; - override payloadExample = GoCQHTTPActionsExamples.SendForwardMsg.payload; - override returnExample = GoCQHTTPActionsExamples.SendForwardMsg.response; + override payloadExample = { + group_id: '123456789', + messages: [] + }; + override returnExample = { + message_id: 123456 + }; protected override async check (payload: GoCQHTTPSendForwardMsgPayload) { if (payload.messages) payload.message = normalize(payload.messages); @@ -28,6 +31,15 @@ export class GoCQHTTPSendForwardMsg extends GoCQHTTPSendForwardMsgBase { } export class GoCQHTTPSendPrivateForwardMsg extends GoCQHTTPSendForwardMsgBase { override actionName = ActionName.GoCQHTTP_SendPrivateForwardMsg; + override actionSummary = '发送私聊合并转发消息'; + override actionTags = ['Go-CQHTTP']; + override payloadExample = { + user_id: '123456789', + messages: [] + }; + override returnExample = { + message_id: 123456 + }; override async _handle (payload: GoCQHTTPSendForwardMsgPayload): Promise { return this.base_handle(payload, ContextMode.Private); } @@ -35,6 +47,15 @@ export class GoCQHTTPSendPrivateForwardMsg extends GoCQHTTPSendForwardMsgBase { export class GoCQHTTPSendGroupForwardMsg extends GoCQHTTPSendForwardMsgBase { override actionName = ActionName.GoCQHTTP_SendGroupForwardMsg; + override actionSummary = '发送群合并转发消息'; + override actionTags = ['Go-CQHTTP']; + override payloadExample = { + group_id: '123456789', + messages: [] + }; + override returnExample = { + message_id: 123456 + }; override async _handle (payload: GoCQHTTPSendForwardMsgPayload): Promise { return this.base_handle(payload, ContextMode.Group); } diff --git a/packages/napcat-onebot/action/group/GetAiRecord.ts b/packages/napcat-onebot/action/group/GetAiRecord.ts index 3d32d12e..a0ea8e61 100644 --- a/packages/napcat-onebot/action/group/GetAiRecord.ts +++ b/packages/napcat-onebot/action/group/GetAiRecord.ts @@ -19,9 +19,15 @@ export class GetAiRecord extends GetPacketStatusDepends override actionName = ActionName.GetAiRecord; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; - override actionSummary = '获取AI语音'; - override actionDescription = '通过AI语音引擎获取指定文本的语音URL'; - override actionTags = ['群组接口']; + override actionSummary = '获取 AI 语音'; + override actionDescription = '通过 AI 语音引擎获取指定文本的语音 URL'; + override actionTags = ['AI 扩展']; + override payloadExample = { + character: 'ai_char_1', + group_id: '123456', + text: '你好' + }; + override returnExample = 'http://example.com/ai_voice.silk'; async _handle (payload: PayloadType) { const rawRsp = await this.core.apis.PacketApi.pkt.operation.GetAiVoice(+payload.group_id, payload.character, payload.text, AIVoiceChatType.Sound); diff --git a/packages/napcat-onebot/action/group/GetGroupIgnoredNotifies.ts b/packages/napcat-onebot/action/group/GetGroupIgnoredNotifies.ts index a8aeee9a..1c719dc7 100644 --- a/packages/napcat-onebot/action/group/GetGroupIgnoredNotifies.ts +++ b/packages/napcat-onebot/action/group/GetGroupIgnoredNotifies.ts @@ -22,6 +22,12 @@ export class GetGroupIgnoredNotifies extends OneBotAction { const SingleScreenNotifies = await this.core.apis.GroupApi.getSingleScreenNotifies(false, 50); diff --git a/packages/napcat-onebot/action/group/GetGroupShutList.ts b/packages/napcat-onebot/action/group/GetGroupShutList.ts index 9d919808..c641bb69 100644 --- a/packages/napcat-onebot/action/group/GetGroupShutList.ts +++ b/packages/napcat-onebot/action/group/GetGroupShutList.ts @@ -17,8 +17,17 @@ export class GetGroupShutList extends OneBotAction { override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; override actionSummary = '获取群禁言列表'; - override actionDescription = '获取指定群聊中被禁言的成员列表'; override actionTags = ['群组接口']; + override payloadExample = { + group_id: '123456789' + }; + override returnExample = [ + { + user_id: 123456789, + nickname: '禁言用户', + shut_up_time: 1734567890 + } + ]; async _handle (payload: PayloadType) { return await this.core.apis.GroupApi.getGroupShutUpMemberList(payload.group_id.toString()); diff --git a/packages/napcat-onebot/action/group/SendGroupAiRecord.ts b/packages/napcat-onebot/action/group/SendGroupAiRecord.ts index 12213748..d1243c37 100644 --- a/packages/napcat-onebot/action/group/SendGroupAiRecord.ts +++ b/packages/napcat-onebot/action/group/SendGroupAiRecord.ts @@ -21,9 +21,15 @@ export class SendGroupAiRecord extends GetPacketStatusDepends { override actionSummary = '撤回消息'; override actionDescription = '撤回已发送的消息'; override actionTags = ['消息接口']; - override payloadExample = ActionExamples.DeleteMsg.payload; + override payloadExample = { + message_id: 12345 + }; + override returnExample = {}; async _handle (payload: PayloadType) { const msg = MessageUnique.getMsgIdAndPeerByShortId(Number(payload.message_id)); diff --git a/packages/napcat-onebot/action/msg/ForwardSingleMsg.ts b/packages/napcat-onebot/action/msg/ForwardSingleMsg.ts index 166db586..b64a1bae 100644 --- a/packages/napcat-onebot/action/msg/ForwardSingleMsg.ts +++ b/packages/napcat-onebot/action/msg/ForwardSingleMsg.ts @@ -4,8 +4,6 @@ import { ActionName } from '@/napcat-onebot/action/router'; import { MessageUnique } from 'napcat-common/src/message-unique'; import { Static, Type } from '@sinclair/typebox'; -import { ActionExamples } from '../examples'; - const PayloadSchema = Type.Object({ message_id: Type.Union([Type.Number(), Type.String()], { description: '消息ID' }), group_id: Type.Optional(Type.String({ description: '目标群号' })), @@ -19,9 +17,14 @@ const ReturnSchema = Type.Null({ description: '操作结果' }); type ReturnType = Static; class ForwardSingleMsg extends OneBotAction { + override actionSummary = '转发单条消息'; override actionDescription = '转发单条消息'; override actionTags = ['消息接口']; - override payloadExample = ActionExamples.ForwardSingleMsg.payload; + override payloadExample = { + message_id: 12345, + group_id: '123456' + }; + override returnExample = {}; protected async getTargetPeer (payload: PayloadType): Promise { if (payload.user_id) { diff --git a/packages/napcat-onebot/action/msg/MarkMsgAsRead.ts b/packages/napcat-onebot/action/msg/MarkMsgAsRead.ts index bfa63c5e..81fdd893 100644 --- a/packages/napcat-onebot/action/msg/MarkMsgAsRead.ts +++ b/packages/napcat-onebot/action/msg/MarkMsgAsRead.ts @@ -4,8 +4,6 @@ import { ActionName } from '@/napcat-onebot/action/router'; import { MessageUnique } from 'napcat-common/src/message-unique'; import { Static, Type } from '@sinclair/typebox'; -import { ActionExamples } from '../examples'; - const PayloadSchema = Type.Object({ user_id: Type.Optional(Type.Union([Type.String(), Type.Number()], { description: '用户QQ' })), group_id: Type.Optional(Type.Union([Type.String(), Type.Number()], { description: '群号' })), @@ -22,7 +20,10 @@ class MarkMsgAsRead extends OneBotAction { override actionSummary = '标记消息已读'; override actionDescription = '标记指定渠道的消息为已读'; override actionTags = ['消息接口']; - override payloadExample = ActionExamples.MarkMsgAsRead.payload; + override payloadExample = { + message_id: 12345 + }; + override returnExample = {}; async getPeer (payload: PayloadType): Promise { if (payload.message_id) { @@ -82,6 +83,10 @@ export class GoCQHTTPMarkMsgAsRead extends MarkMsgAsRead { export class MarkAllMsgAsRead extends OneBotAction { override actionName = ActionName._MarkAllMsgAsRead; + override actionSummary = '标记所有消息已读'; + override actionTags = ['消息接口']; + override payloadExample = {}; + override returnExample = {}; async _handle (): Promise { await this.core.apis.MsgApi.markAllMsgAsRead(); diff --git a/packages/napcat-onebot/action/msg/SendPrivateMsg.ts b/packages/napcat-onebot/action/msg/SendPrivateMsg.ts index 2caf6cd7..0800985e 100644 --- a/packages/napcat-onebot/action/msg/SendPrivateMsg.ts +++ b/packages/napcat-onebot/action/msg/SendPrivateMsg.ts @@ -1,15 +1,19 @@ import { ContextMode, ReturnDataType, SendMsgBase, SendMsgPayload } from './SendMsg'; import { ActionName, BaseCheckResult } from '@/napcat-onebot/action/router'; -import { ActionExamples } from '../examples'; - // 未检测参数 class SendPrivateMsg extends SendMsgBase { override actionName = ActionName.SendPrivateMsg; + override actionSummary = '发送私聊消息'; override actionDescription = '发送私聊消息'; override actionTags = ['消息接口']; - override payloadExample = ActionExamples.SendPrivateMsg.payload; - override returnExample = ActionExamples.SendPrivateMsg.return; + override payloadExample = { + user_id: '123456789', + message: 'hello' + }; + override returnExample = { + message_id: 123456 + }; protected override async check (payload: SendMsgPayload): Promise { payload.message_type = 'private'; diff --git a/packages/napcat-onebot/action/msg/SetMsgEmojiLike.ts b/packages/napcat-onebot/action/msg/SetMsgEmojiLike.ts index f48ed65e..745bcff0 100644 --- a/packages/napcat-onebot/action/msg/SetMsgEmojiLike.ts +++ b/packages/napcat-onebot/action/msg/SetMsgEmojiLike.ts @@ -17,6 +17,16 @@ type ReturnType = Static; export class SetMsgEmojiLike extends OneBotAction { override actionName = ActionName.SetMsgEmojiLike; + override actionSummary = '设置消息表情点赞'; + override actionTags = ['消息扩展']; + override payloadExample = { + message_id: 12345, + emoji_id: '123', + set: true + }; + override returnExample = { + result: true + }; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; diff --git a/packages/napcat-onebot/action/new/SetDoubtFriendsAddRequest.ts b/packages/napcat-onebot/action/new/SetDoubtFriendsAddRequest.ts index 16a34829..cb77b40b 100644 --- a/packages/napcat-onebot/action/new/SetDoubtFriendsAddRequest.ts +++ b/packages/napcat-onebot/action/new/SetDoubtFriendsAddRequest.ts @@ -1,7 +1,6 @@ import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Static, Type } from '@sinclair/typebox'; -import { NewActionsExamples } from './examples'; export const SetDoubtFriendsAddRequestPayloadSchema = Type.Object({ flag: Type.String({ description: '请求 flag' }), @@ -19,7 +18,11 @@ export class SetDoubtFriendsAddRequest extends OneBotAction extends OneBotAction { protected override async check (payload: PT): Promise { @@ -23,8 +22,8 @@ export class GetPacketStatus extends GetPacketStatusDepends { override actionSummary = '获取Packet状态'; override actionDescription = '获取底层Packet服务的运行状态'; override actionTags = ['系统接口']; - override payloadExample = PacketActionsExamples.GetPacketStatus.payload; - override returnExample = PacketActionsExamples.GetPacketStatus.response; + override payloadExample = {}; + override returnExample = null; async _handle () { diff --git a/packages/napcat-onebot/action/packet/GetRkeyEx.ts b/packages/napcat-onebot/action/packet/GetRkeyEx.ts index 64f1b7bc..b5079d10 100644 --- a/packages/napcat-onebot/action/packet/GetRkeyEx.ts +++ b/packages/napcat-onebot/action/packet/GetRkeyEx.ts @@ -15,6 +15,17 @@ export class GetRkeyEx extends GetPacketStatusDepends { override actionName = ActionName.GetRkeyEx; override payloadSchema = Type.Object({}); override returnSchema = GetRkeyExReturnSchema; + override actionSummary = '获取扩展 RKey'; + override actionTags = ['系统扩展']; + override payloadExample = {}; + override returnExample = [ + { + type: 'private', + rkey: 'rkey_123', + created_at: 1734567890, + ttl: 3600 + } + ]; async _handle () { const rkeys = await this.core.apis.PacketApi.pkt.operation.FetchRkey(); diff --git a/packages/napcat-onebot/action/packet/GetRkeyServer.ts b/packages/napcat-onebot/action/packet/GetRkeyServer.ts index bebf167b..2a969e77 100644 --- a/packages/napcat-onebot/action/packet/GetRkeyServer.ts +++ b/packages/napcat-onebot/action/packet/GetRkeyServer.ts @@ -13,6 +13,12 @@ export type GetRkeyServerReturn = Static; export class GetRkeyServer extends GetPacketStatusDepends { override actionName = ActionName.GetRkeyServer; + override actionSummary = '获取 RKey 服务器'; + override actionTags = ['系统扩展']; + override payloadExample = {}; + override returnExample = { + server: 'http://rkey-server.com' + }; override payloadSchema = Type.Object({}); override returnSchema = GetRkeyServerReturnSchema; diff --git a/packages/napcat-onebot/action/stream/CleanStreamTempFile.ts b/packages/napcat-onebot/action/stream/CleanStreamTempFile.ts index 9d81abbf..aa02ecec 100644 --- a/packages/napcat-onebot/action/stream/CleanStreamTempFile.ts +++ b/packages/napcat-onebot/action/stream/CleanStreamTempFile.ts @@ -6,6 +6,12 @@ import { Type } from '@sinclair/typebox'; export class CleanStreamTempFile extends OneBotAction { override actionName = ActionName.CleanStreamTempFile; + override actionSummary = '清理流式传输临时文件'; + override actionTags = ['流式传输扩展']; + override payloadExample = {}; + override returnExample = { + message: 'success' + }; override payloadSchema = Type.Object({}); override returnSchema = Type.Null(); diff --git a/packages/napcat-onebot/action/stream/DownloadFileImageStream.ts b/packages/napcat-onebot/action/stream/DownloadFileImageStream.ts index c4589481..5885fcb8 100644 --- a/packages/napcat-onebot/action/stream/DownloadFileImageStream.ts +++ b/packages/napcat-onebot/action/stream/DownloadFileImageStream.ts @@ -17,6 +17,14 @@ export type DownloadFileImageStreamPayload = Static { override actionName = ActionName.DownloadFileImageStream; + override actionSummary = '下载图片文件流'; + override actionTags = ['流式传输扩展']; + override payloadExample = { + file: 'image_file_id' + }; + override returnExample = { + file: 'temp_image_path' + }; override payloadSchema = DownloadFileImageStreamPayloadSchema; override returnSchema = Type.Any({ description: '下载结果 (流式)' }); override useStream = true; diff --git a/packages/napcat-onebot/action/stream/DownloadFileRecordStream.ts b/packages/napcat-onebot/action/stream/DownloadFileRecordStream.ts index 9873f3d0..306e3802 100644 --- a/packages/napcat-onebot/action/stream/DownloadFileRecordStream.ts +++ b/packages/napcat-onebot/action/stream/DownloadFileRecordStream.ts @@ -20,6 +20,14 @@ export type DownloadFileRecordStreamPayload = Static { override actionName = ActionName.DownloadFileRecordStream; + override actionSummary = '下载语音文件流'; + override actionTags = ['流式传输扩展']; + override payloadExample = { + file: 'record_file_id' + }; + override returnExample = { + file: 'temp_record_path' + }; override payloadSchema = DownloadFileRecordStreamPayloadSchema; override returnSchema = Type.Any({ description: '下载结果 (流式)' }); override useStream = true; diff --git a/packages/napcat-onebot/action/stream/DownloadFileStream.ts b/packages/napcat-onebot/action/stream/DownloadFileStream.ts index ec542c34..54d35092 100644 --- a/packages/napcat-onebot/action/stream/DownloadFileStream.ts +++ b/packages/napcat-onebot/action/stream/DownloadFileStream.ts @@ -20,6 +20,15 @@ export class DownloadFileStream extends BaseDownloadStream> { diff --git a/packages/napcat-onebot/action/stream/TestStreamDownload.ts b/packages/napcat-onebot/action/stream/TestStreamDownload.ts index 16791ebf..a3ac7f86 100644 --- a/packages/napcat-onebot/action/stream/TestStreamDownload.ts +++ b/packages/napcat-onebot/action/stream/TestStreamDownload.ts @@ -12,6 +12,14 @@ export type TestDownloadStreamPayload = Static> { override actionName = ActionName.TestDownloadStream; + override actionSummary = '测试下载流'; + override actionTags = ['流式传输扩展']; + override payloadExample = { + url: 'http://example.com/file' + }; + override returnExample = { + success: true + }; override payloadSchema = TestDownloadStreamPayloadSchema; override returnSchema = Type.Any({ description: '测试流数据' }); override useStream = true; diff --git a/packages/napcat-onebot/action/stream/UploadFileStream.ts b/packages/napcat-onebot/action/stream/UploadFileStream.ts index a9035626..42b12f1b 100644 --- a/packages/napcat-onebot/action/stream/UploadFileStream.ts +++ b/packages/napcat-onebot/action/stream/UploadFileStream.ts @@ -73,6 +73,20 @@ export class UploadFileStream extends OneBotAction(); diff --git a/packages/napcat-onebot/action/system/CanSendImage.ts b/packages/napcat-onebot/action/system/CanSendImage.ts index 66101230..d5e4ddbb 100644 --- a/packages/napcat-onebot/action/system/CanSendImage.ts +++ b/packages/napcat-onebot/action/system/CanSendImage.ts @@ -1,10 +1,11 @@ import { ActionName } from '@/napcat-onebot/action/router'; import { CanSend } from './CanSendRecord'; -import { SystemActionsExamples } from './examples'; export default class CanSendImage extends CanSend { override actionName = ActionName.CanSendImage; + override actionSummary = '是否可以发送图片'; override actionDescription = '检查是否可以发送图片'; override actionTags = ['系统接口']; - override payloadExample = SystemActionsExamples.CanSendImage.payload; + override payloadExample = {}; + override returnExample = { yes: true }; } diff --git a/packages/napcat-onebot/action/system/CanSendRecord.ts b/packages/napcat-onebot/action/system/CanSendRecord.ts index fd007af0..760d9eec 100644 --- a/packages/napcat-onebot/action/system/CanSendRecord.ts +++ b/packages/napcat-onebot/action/system/CanSendRecord.ts @@ -2,8 +2,6 @@ import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Type, Static } from '@sinclair/typebox'; -import { SystemActionsExamples } from './examples'; - export const CanSendReturnSchema = Type.Object({ yes: Type.Boolean({ description: '是否可以发送' }), }); @@ -24,7 +22,9 @@ export class CanSend extends OneBotAction { export default class CanSendRecord extends CanSend { override actionName = ActionName.CanSendRecord; + override actionSummary = '是否可以发送语音'; override actionDescription = '检查是否可以发送语音'; override actionTags = ['系统接口']; - override payloadExample = SystemActionsExamples.CanSendRecord.payload; + override payloadExample = {}; + override returnExample = { yes: true }; } diff --git a/packages/napcat-onebot/action/system/CleanCache.ts b/packages/napcat-onebot/action/system/CleanCache.ts index 89b48b9b..b352cf87 100644 --- a/packages/napcat-onebot/action/system/CleanCache.ts +++ b/packages/napcat-onebot/action/system/CleanCache.ts @@ -8,8 +8,11 @@ export class CleanCache extends OneBotAction { override actionName = ActionName.CleanCache; override payloadSchema = Type.Object({}); override returnSchema = Type.Null(); + override actionSummary = '清理缓存'; override actionDescription = '清理缓存'; override actionTags = ['系统接口']; + override payloadExample = {}; + override returnExample = null; async _handle () { try { diff --git a/packages/napcat-onebot/action/system/GetCSRF.ts b/packages/napcat-onebot/action/system/GetCSRF.ts index 9be720d2..b01e2a99 100644 --- a/packages/napcat-onebot/action/system/GetCSRF.ts +++ b/packages/napcat-onebot/action/system/GetCSRF.ts @@ -1,7 +1,6 @@ import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Type, Static } from '@sinclair/typebox'; -import { SystemActionsExamples } from './examples'; export const GetCSRFReturnSchema = Type.Object({ token: Type.Number({ description: 'CSRF Token' }), @@ -13,9 +12,13 @@ export class GetCSRF extends OneBotAction { override actionName = ActionName.GetCSRF; override payloadSchema = Type.Object({}); override returnSchema = GetCSRFReturnSchema; + override actionSummary = '获取 CSRF Token'; override actionDescription = '获取 CSRF Token'; override actionTags = ['系统接口']; - override payloadExample = SystemActionsExamples.GetCSRF.payload; + override payloadExample = {}; + override returnExample = { + token: 123456789 + }; async _handle () { const sKey = await this.core.apis.UserApi.getSKey(); diff --git a/packages/napcat-onebot/action/system/GetCredentials.ts b/packages/napcat-onebot/action/system/GetCredentials.ts index ac89cf82..5b35fbe1 100644 --- a/packages/napcat-onebot/action/system/GetCredentials.ts +++ b/packages/napcat-onebot/action/system/GetCredentials.ts @@ -2,8 +2,6 @@ import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Static, Type } from '@sinclair/typebox'; -import { ActionExamples } from '../examples'; - export const GetCredentialsPayloadSchema = Type.Object({ domain: Type.String({ description: '需要获取 cookies 的域名' }), }); @@ -21,10 +19,16 @@ export class GetCredentials extends OneBotAction { override actionName = ActionName.GetStatus; override payloadSchema = Type.Object({}); override returnSchema = GetStatusReturnSchema; + override actionSummary = '获取运行状态'; override actionDescription = '获取运行状态'; override actionTags = ['系统接口']; - override payloadExample = ActionExamples.GetStatus.payload; - override returnExample = ActionExamples.GetStatus.return; + override payloadExample = {}; + override returnExample = { + online: true, + good: true, + stat: {} + }; async _handle (): Promise { return { diff --git a/packages/napcat-onebot/action/system/GetSystemMsg.ts b/packages/napcat-onebot/action/system/GetSystemMsg.ts index c5742446..4d7a622d 100644 --- a/packages/napcat-onebot/action/system/GetSystemMsg.ts +++ b/packages/napcat-onebot/action/system/GetSystemMsg.ts @@ -4,8 +4,6 @@ import { ActionName } from '@/napcat-onebot/action/router'; import { Static, Type } from '@sinclair/typebox'; import { OB11NotifySchema } from '../schemas'; -import { ActionExamples } from '../examples'; - export const GetGroupSystemMsgPayloadSchema = Type.Object({ count: Type.Union([Type.Number(), Type.String()], { default: 50, description: '获取的消息数量' }), }); @@ -24,10 +22,17 @@ export class GetGroupSystemMsg extends OneBotAction { const SingleScreenNotifies = await this.core.apis.GroupApi.getSingleScreenNotifies(false, +params.count); diff --git a/packages/napcat-onebot/action/system/GetVersionInfo.ts b/packages/napcat-onebot/action/system/GetVersionInfo.ts index 42d42ec2..44c92c6d 100644 --- a/packages/napcat-onebot/action/system/GetVersionInfo.ts +++ b/packages/napcat-onebot/action/system/GetVersionInfo.ts @@ -11,15 +11,18 @@ const ReturnSchema = Type.Object({ type ReturnType = Static; -import { ActionExamples } from '../examples'; - export default class GetVersionInfo extends OneBotAction { override actionName = ActionName.GetVersionInfo; override returnSchema = ReturnSchema; + override actionSummary = '获取版本信息'; override actionDescription = '获取版本信息'; override actionTags = ['系统接口']; - override payloadExample = ActionExamples.GetVersionInfo.payload; - override returnExample = ActionExamples.GetVersionInfo.return; + override payloadExample = {}; + override returnExample = { + app_name: 'NapCat.Onebot', + protocol_version: 'v11', + app_version: '1.0.0' + }; async _handle (): Promise { return { diff --git a/packages/napcat-onebot/action/system/SetRestart.ts b/packages/napcat-onebot/action/system/SetRestart.ts index df0b666c..8113d69e 100644 --- a/packages/napcat-onebot/action/system/SetRestart.ts +++ b/packages/napcat-onebot/action/system/SetRestart.ts @@ -7,8 +7,11 @@ export class SetRestart extends OneBotAction { override actionName = ActionName.Reboot; override payloadSchema = Type.Object({}); override returnSchema = Type.Null(); + override actionSummary = '重启服务'; override actionDescription = '重启服务'; override actionTags = ['系统接口']; + override payloadExample = {}; + override returnExample = null; async _handle () { const result = await WebUiDataRuntime.requestRestartProcess(); diff --git a/packages/napcat-onebot/action/user/GetCookies.ts b/packages/napcat-onebot/action/user/GetCookies.ts index 9a1d28ea..87bd4194 100644 --- a/packages/napcat-onebot/action/user/GetCookies.ts +++ b/packages/napcat-onebot/action/user/GetCookies.ts @@ -2,8 +2,6 @@ import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Static, Type } from '@sinclair/typebox'; -import { ActionExamples } from '../examples'; - export const GetCookiesPayloadSchema = Type.Object({ domain: Type.String({ description: '需要获取 cookies 的域名' }), }); @@ -21,10 +19,16 @@ export class GetCookies extends OneBotAction { const ret = await this.core.apis.UserApi.getRecentContactListSnapShot(+payload.count); diff --git a/packages/napcat-onebot/action/user/SendLike.ts b/packages/napcat-onebot/action/user/SendLike.ts index 5c44ec5b..d98735d2 100644 --- a/packages/napcat-onebot/action/user/SendLike.ts +++ b/packages/napcat-onebot/action/user/SendLike.ts @@ -18,7 +18,11 @@ export default class SendLike extends OneBotAction { override actionSummary = '点赞'; override actionDescription = '给指定用户点赞'; override actionTags = ['用户接口']; - override payloadExample = ActionExamples.SendLike.payload; + override payloadExample = { + user_id: '123456', + times: 10 + }; + override returnExample = {}; override errorExamples = [ ...ActionExamples.Common.errors, { code: 1400, description: '点赞失败(频率过快或用户不存在)' } diff --git a/packages/napcat-onebot/action/user/SetFriendAddRequest.ts b/packages/napcat-onebot/action/user/SetFriendAddRequest.ts index bd24b58b..e9f01d42 100644 --- a/packages/napcat-onebot/action/user/SetFriendAddRequest.ts +++ b/packages/napcat-onebot/action/user/SetFriendAddRequest.ts @@ -10,15 +10,19 @@ export const SetFriendAddRequestPayloadSchema = Type.Object({ export type SetFriendAddRequestPayload = Static; -import { ActionExamples } from '../examples'; - export default class SetFriendAddRequest extends OneBotAction { override actionName = ActionName.SetFriendAddRequest; override payloadSchema = SetFriendAddRequestPayloadSchema; override returnSchema = Type.Null(); - override actionDescription = '处理加好友请求'; + override actionSummary = '处理加好友请求'; + override actionDescription = '同意或拒绝加好友请求'; override actionTags = ['用户接口']; - override payloadExample = ActionExamples.SetFriendAddRequest.payload; + override payloadExample = { + flag: 'flag_12345', + approve: true, + remark: '新朋友' + }; + override returnExample = {}; async _handle (payload: SetFriendAddRequestPayload): Promise { const approve = payload.approve?.toString() !== 'false'; diff --git a/packages/napcat-onebot/action/user/SetFriendRemark.ts b/packages/napcat-onebot/action/user/SetFriendRemark.ts index 556e99bc..57009a68 100644 --- a/packages/napcat-onebot/action/user/SetFriendRemark.ts +++ b/packages/napcat-onebot/action/user/SetFriendRemark.ts @@ -15,9 +15,14 @@ export default class SetFriendRemark extends OneBotAction = {}; - export function initSchemas () { const handlers = getAllHandlers(null as any, null as any); handlers.forEach(handler => { @@ -62,63 +61,75 @@ export function generateOpenAPI () { try { initSchemas(); } catch (e) { - console.warn('Init schemas partial failure (expected due to complex imports), proceeding with collected data...'); + console.warn('Init schemas partial failure, proceeding with collected data...'); } const openapi: Record = { openapi: '3.1.0', info: { - title: 'NapCat OneBot 11 接口文档', - description: 'NapCatOneBot11 旨在提供更先进、更统一、更美观的 OneBot 11 协议实现。', + title: 'NapCat OneBot 11 HTTP API', + description: '本文档描述 NapCat OneBot 11 的 HTTP POST 接口协议。所有接口均通过 POST 请求调用,请求体为 JSON 格式。', version: '1.0.0' }, + tags: [ + { name: '消息接口', description: '发送、删除、获取消息相关接口' }, + { name: '群组接口', description: '群组管理、成员管理相关接口' }, + { name: '用户接口', description: '好友管理、个人信息相关接口' }, + { name: '系统接口', description: '状态获取、重启、缓存清理相关接口' }, + { name: '文件接口', description: '文件上传下载、预览相关接口' }, + { name: '系统扩展', description: 'NapCat 特有的系统级扩展功能' }, + { name: '群扩展', description: 'NapCat 特有的群组级扩展功能' }, + { name: '用户扩展', description: 'NapCat 特有的用户级扩展功能' }, + { name: '文件扩展', description: 'NapCat 特有的文件级扩展功能' }, + { name: 'Go-CQHTTP', description: '兼容 Go-CQHTTP 的特定接口' } + ], paths: {} as Record }; for (const [actionName, schemas] of Object.entries(actionSchemas)) { - if (!schemas.payload) continue; - const path = `/${actionName}`; + // 忽略没有定义参数且没有 Summary 的占位接口 + if (!schemas.payload && !schemas.summary) continue; - const cleanPayload = JSON.parse(JSON.stringify(schemas.payload || { type: 'object', properties: {} })); - const cleanReturn = JSON.parse(JSON.stringify(schemas.return || { type: 'object', properties: {} })); + const path = '/' + actionName; + const cleanPayload = schemas.payload ? JSON.parse(JSON.stringify(schemas.payload)) : { type: 'object', properties: {} }; + const cleanReturn = schemas.return ? JSON.parse(JSON.stringify(schemas.return)) : { type: 'object', properties: {} }; - const wrappedPayload = { + // HTTP 响应结构: {"status": "ok", "retcode": 0, "data": ...} + const httpResponseSchema = { type: 'object', properties: { - action: { type: 'string', example: actionName }, - params: cleanPayload, - echo: { type: 'string', example: `${actionName}:1234567890` } - } - }; - - const wrappedReturn = { - type: 'object', - properties: { - status: { type: 'string', example: 'ok' }, - retcode: { type: 'number', example: 0 }, - data: cleanReturn, - message: { type: 'string', example: '' }, - wording: { type: 'string', example: '' }, - echo: { type: 'string', example: `${actionName}:1234567890` } + status: { type: 'string', enum: ['ok', 'async', 'failed'], description: '执行状态', example: 'ok' }, + retcode: { type: 'number', description: '响应码 (0 为成功)', example: 0 }, + data: { ...cleanReturn, description: '响应数据' }, + message: { type: 'string', description: '错误消息', example: '' }, + wording: { type: 'string', description: '提示消息', example: '' } }, - required: ['status', 'retcode', 'data', 'message', 'wording'] + required: ['status', 'retcode', 'data'] }; - const paths = openapi['paths'] as Record; const responses: Record = { '200': { - description: '成功', + description: '成功响应', content: { 'application/json': { - schema: wrappedReturn + schema: httpResponseSchema, + example: { + status: 'ok', + retcode: 0, + data: schemas.returnExample || {}, + message: '', + wording: '' + } } } } }; + // 处理错误示例 if (schemas.errorExamples) { schemas.errorExamples.forEach(error => { - responses[error.code.toString()] = { + const codeStr = error.code.toString(); + responses[codeStr] = { description: error.description, content: { 'application/json': { @@ -137,20 +148,18 @@ export function generateOpenAPI () { }); } + const paths = openapi['paths'] as Record; paths[path] = { post: { summary: schemas.summary || actionName, - description: schemas.description || schemas.summary || actionName, + description: schemas.description || 'API Action: ' + actionName, tags: schemas.tags || ['Default'], requestBody: { + description: 'API 请求参数', content: { 'application/json': { - schema: wrappedPayload, - example: { - action: actionName, - params: schemas.payloadExample || {}, - echo: `${actionName}:1234567890` - } + schema: cleanPayload, + example: schemas.payloadExample || {} } } }, @@ -158,8 +167,42 @@ export function generateOpenAPI () { } }; } - const outputPath = resolve(__dirname, 'openapi.json'); + + const outputDir = resolve(__dirname, 'dist'); + if (!existsSync(outputDir)) { + mkdirSync(outputDir, { recursive: true }); + } + + const outputPath = resolve(outputDir, 'openapi.json'); writeFileSync(outputPath, JSON.stringify(openapi, null, 2)); - console.log(`OpenAPI schema generated at: ${outputPath}`); + console.log('OpenAPI schema (HTTP Format) generated at: ' + outputPath); + + // 生成审计报告 + generateMissingReport(); } -generateOpenAPI(); \ No newline at end of file + +function generateMissingReport() { + const missingReport: string[] = []; + for (const [actionName, schemas] of Object.entries(actionSchemas)) { + const missing: string[] = []; + if (!schemas.summary) missing.push('actionSummary'); + if (!schemas.tags || schemas.tags.length === 0) missing.push('actionTags'); + if (schemas.payloadExample === undefined && schemas.payload) missing.push('payloadExample'); + if (schemas.returnExample === undefined) missing.push('returnExample'); + + if (missing.length > 0) { + missingReport.push('[' + actionName + '] 缺失属性: ' + missing.join(', ')); + } + } + + const reportPath = resolve(__dirname, 'dist', 'missing_props.log'); + if (missingReport.length > 0) { + writeFileSync(reportPath, missingReport.join('\n')); + console.warn('\n检查到 ' + missingReport.length + ' 个接口存在元数据缺失,报告已保存至: ' + reportPath); + } else { + if (existsSync(reportPath)) writeFileSync(reportPath, ''); + console.log('\n所有接口元数据已完整!'); + } +} + +generateOpenAPI(); diff --git a/packages/napcat-schema/package.json b/packages/napcat-schema/package.json index 314d44ca..93a22595 100644 --- a/packages/napcat-schema/package.json +++ b/packages/napcat-schema/package.json @@ -6,7 +6,8 @@ "main": "index.ts", "scripts": { "generate:openapi": "node ./dist/schemas.mjs", - "build:schema": "vite build" + "build:schema": "vite build", + "run": "vite build & node ./dist/schemas.mjs" }, "dependencies": { "@sinclair/typebox": "^0.34.38",