UNPKG

ntqq-cqhttp

Version:

基于 ntqq onebot 框架进行二次封装的 sdk 开发包,主要方便直接进行机器人的操作。

617 lines (616 loc) 23.8 kB
import { Event } from '../core/Event'; import { AxiosInstance } from 'axios'; interface InfoDataPack { fromUser: number; fromGroup: number; rawMessage: string; robot: number; isAt: boolean; QQInfo: { card: string; nickname: string; }; success: boolean; type: string; } interface EventDataPack { robot: number; user_id: number; group_id: number; notice_type: string; sub_type: string; success: boolean; type: string; } /** * 机器人类,有回调事件,上发操作等功能。 */ export declare class Robot extends Event { private qq; private botID; private http; private _onPrivateMsg; private _onGroupMsg; private _onEventMsg; private groupFunMap; private privateCmdAction; private groupCmdAction; constructor(qq: string | number, http: AxiosInstance, botID: any); /** * 获取 CQ Code 模板对象 */ get CQCode(): { Face(id: Number): string; Record(file: string, magic: Number, cache: string, timeout: number): string; Video(file: string, cover: string): string; At(qq: string, name: string): string; Share(url: string, title: string, content: string, image: string): string; Music(type: string, id: Number, url: string, audio: string, title: string, content: string, image: string): string; Image(file: string, type: string, subType: number, url: string, cache: number, id?: number): string; Reply(id: number, text: string, qq: number, time: number, seq: number): string; Redbag(title: string): string; Poke(qq: string): string; Gift(qq: string, id: number): string; Forward(id: string): string; XML(data: string): string; JSON(data: string, resid: number): string; Cardimage(file: string, minwidth: number, minheight: number, maxwidth: number, maxheight: number, source: string, icon: string): string; Tts(text: string): string; }; /** * 返回实例化机器人的请求器 */ get httpRequest(): AxiosInstance; /** * 返回机器人序号 ID */ get id(): string; /** * 返回机器人 QQ 号 */ get QQ(): string | number; /** * 当私聊信息触发时,回调时带回消息包 * @param resPack 参数包 * ``` * { * fromUser: 发送者QQ * rawMessage:接收的消息 * robot: 框架QQ * isAt: 机器人是否被 at 的 * OOInfo:{card,nickname} // 昵称,群昵称 * success: 成功状态 * } * ``` */ onPrivateMsg(fun: (pack: InfoDataPack) => void): void; /** * 当群聊消息触发时,回调时带回消息包 * @param resPack 参数包 * ``` * { * fromUser: 发送者QQ * fromGroup: 接收群 * rawMessage:接收的消息 * robot: 框架QQ * isAt: 机器人是否被 at 的 * OOInfo:{card,nickname} // 昵称,群昵称 * success: 成功状态 * } * ``` */ onGroupMsg(fun: (pack: InfoDataPack) => void): void; /** * 绑定特定群组回调消息 * @param group 群号 * @param fun 回调函数,返回的参数为消息数据包 */ setOnGroupMsg(group: string | number, fun: (pack: InfoDataPack) => void): void; getOnGroupMsg(group: string | number): Function; /** * 当操作事件触发时,回调时带回消息包 */ onEventMsg(fun: (pack: EventDataPack) => void): void; /** * 快速注册一个私聊指令并执行对应的方法 * @param {Array<string>} cmd 监听的指令 * @param doAction 要执行的动作,回调参数为发送者相关信息 */ regPrivateCmd(cmd: Array<string | number>, doAction: (pack: InfoDataPack) => void): void; /** * 快速注册一个群要使用的指令并执行对应的方法 * @param group 监听的目标群 * @param {Array<string>} cmd 监听的指令 * @param doAction 要执行的动作,回调参数为发送者相关信息 */ regGroupCmd(group: string | number, cmd: Array<string | number>, doAction: (pack: InfoDataPack) => void): void; /************************************ Bot 账号 *************************************/ /** * 获取登录号信息 * @return Promise */ getLoginInfo(): Promise<import("axios").AxiosResponse<any>>; /** * 设置登录号资料 * @param nickname 名称 * @param company 公司 * @param email 邮箱 * @param college 学校 * @param personal_note 个人说明 * @return Promise */ setQQProfile(nickname: string, company: string, email: string, college: string, personal_note: string): Promise<import("axios").AxiosResponse<any>>; /** * 获取企点账号信息,该API只有企点协议可用 * @return promise */ qidianGetAccountInfo(): Promise<import("axios").AxiosResponse<any>>; /** * 获取在线机型 * @param model 机型名称 * @return promise */ getModelShow(model: string): Promise<import("axios").AxiosResponse<any>>; /** * 设置在线机型 * @param model 机型名称 * @param model_show * @return promise */ setModelShow(model: string, model_show: string): Promise<import("axios").AxiosResponse<any>>; /** * 获取当前账号在线客户端列表 * @param no_cache 是否无视缓存 * @return Promise */ getOnlineClients(no_cache: boolean): Promise<import("axios").AxiosResponse<any>>; /************************************ 好友信息 *************************************/ /** * 获取当前账号在线客户端列表 * @param user_id QQ 号 * @param no_cache 是否不使用缓存(使用缓存可能更新不及时, 但响应更快) * @return Promise */ getStrangerInfo(user_id: number, no_cache: boolean): Promise<import("axios").AxiosResponse<any>>; /** * 获取好友列表 * @return Promise */ getFriendList(): Promise<import("axios").AxiosResponse<any>>; /** * 获取单向好友列表 * @return Promise */ getUnidirectionalFriendList(): Promise<import("axios").AxiosResponse<any>>; /************************************ 好友操作 *************************************/ /** * 删除好友 * @param user_id 好友 QQ 号 * @return Promise */ deleteFriend(user_id: boolean): Promise<import("axios").AxiosResponse<any>>; /** * 删除单向好友 * @param user_id 好友 QQ 号 * @return Promise */ deleteUnidirectionalFriend(user_id: boolean): Promise<import("axios").AxiosResponse<any>>; /************************************ 消息 *************************************/ /** * 发送好友私聊消息 * @param toqq 目标 QQ * @param text 发送的文本 * @param type 文本类型:xml,json,可不传 * @return httpRequestPromise 返回请求的 promise */ sendPrivateMsg(toqq: string | number, text: string): Promise<import("axios").AxiosResponse<any>>; /** * 发送群临时会话消息 * @param fromGroup 来自群号 * @param toqq 目标 QQ * @param text 发送文本 * @return httpRequestPromise 返回请求的 promise */ sendGroupPrivateMsg(fromGroup: string | number, toqq: string | number, text: string): Promise<import("axios").AxiosResponse<any>>; /** * 发送群组消息 * @param toGroup 目标群 * @param text 文本 * @param anonymous 是否匿名,默认:false * @return httpRequestPromise 返回请求的 promise */ sendGroupMsg(toGroup: string | number, text: string, anonymous?: boolean): Promise<import("axios").AxiosResponse<any>>; /** * 私聊发送图片 * @param toqq 发送目标 qq * @param imgSrc 图片资源:url,base64,路径均可 * @param flashpic 是否发送闪照,默认 false * @return httpRequestPromise 返回请求的 promise */ sendPrivateImg(toqq: string | number, imgSrc: string, flashpic?: boolean): Promise<import("axios").AxiosResponse<any>>; /** * 发送群临时私聊图片 * @param fromGroup 群号 * @param toqq 目标 qq * @param imgSrc 图片资源 * @param flashpic 是否闪照 * @return httpRequestPromise 返回请求的 promise */ sendGroupPrivateImg(fromGroup: string | number, toqq: string | number, imgSrc: string, flashpic?: boolean): Promise<import("axios").AxiosResponse<any>>; /** * 向群发送图片 * @param togroup 目标群号 * @param imgSrc 图片资源 * @param flashpic 是否为闪照 * @return httpRequestPromise 返回请求的 promise */ sendGroupImg(togroup: string | number, imgSrc: string, flashpic?: boolean): Promise<import("axios").AxiosResponse<any>>; /** * 私聊发送语音 * @param toqq 发送目标 qq * @param recordSrc 图片资源:url,base64,路径均可 * @return httpRequestPromise 返回请求的 promise */ sendPrivateRecord(toqq: string | number, recordSrc: string): Promise<import("axios").AxiosResponse<any>>; /** * 发送群临时私聊图片 * @param fromGroup 群号 * @param toqq 目标 qq * @param recordSrc 图片资源:url,base64,路径均可 * @return httpRequestPromise 返回请求的 promise */ sendGroupPrivateRecord(fromGroup: string | number, toqq: string | number, recordSrc: string): Promise<import("axios").AxiosResponse<any>>; /** * 向群发送图片 * @param togroup 目标群号 * @param recordSrc 图片资源:url,base64,路径均可 * @return httpRequestPromise 返回请求的 promise */ sendGroupRecord(togroup: string | number, recordSrc: string): Promise<import("axios").AxiosResponse<any>>; /** * 获取消息 * @param message_id 消息id * @return promise */ getMsg(message_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 撤回消息 * @param message_id 消息id * @return promise */ deleteMsg(message_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 标记消息已读 * @param message_id 消息id * @return promise */ markMsgAsRead(message_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 获取合并转发内容 * @param message_id 消息id * @return promise */ getForwardMsg(message_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 获取合并转发内容 * @param group_id 群号 * @param messages 自定义转发消息, 具体看 CQcode * @return promise */ sendGroupForwardMsg(group_id: number, messages: any): Promise<import("axios").AxiosResponse<any>>; /** * 发送合并转发 ( 好友 ) * @param user_id 好友QQ号 * @param messages 自定义转发消息, 具体看 CQcode * @return promise */ sendPrivateForwardMsg(user_id: number, messages: any): Promise<import("axios").AxiosResponse<any>>; /** * 获取群消息历史记录 * @param message_seq 起始消息序号, 可通过 get_msg 获得 * @param group_id 号 * @return promise */ getGroupMsgHistory(message_seq: number, group_id: number): Promise<import("axios").AxiosResponse<any>>; /************************************ 图片 *************************************/ /** * 获取图片信息 * @param file 图片缓存文件名 * @return promise */ getImage(file: string): Promise<import("axios").AxiosResponse<any>>; /** * 检查是否可以发送图片 * @return promise */ canSendImage(file: string): Promise<import("axios").AxiosResponse<any>>; /** * 图片 OCR * @param image 图片ID * @return promise */ ocrImage(image: string): Promise<import("axios").AxiosResponse<any>>; /************************************ 语音 *************************************/ /** * 检查是否可以发送语音 * @return promise */ canSendRecord(file: string): Promise<import("axios").AxiosResponse<any>>; /************************************ 处理 *************************************/ /** * 处理加好友请求 * @param flag 加好友请求的 flag(需从上报的数据中获得) * @param approve 是否同意请求 * @param remark 添加后的好友备注(仅在同意时有效) * @return promise */ setFriendAddRequest(flag: string, approve: boolean, remark: string): Promise<import("axios").AxiosResponse<any>>; /** * 处理加群请求/邀请 * @param flag 加群请求的 flag(需从上报的数据中获得) * @param sub_type add 或 invite, 请求类型(需要和上报消息中的 sub_type 字段相符) * @param approve 是否同意请求/邀请 * @param reason 拒绝理由(仅在拒绝时有效) * @return promise */ setGroupAddRequest(flag: string, sub_type: string, approve: boolean, reason: string): Promise<import("axios").AxiosResponse<any>>; /************************************ 群消息 *************************************/ /** * 获取群信息 * @param group_id 群号 * @param no_cache 是否不使用缓存(使用缓存可能更新不及时, 但响应更快) * @return promise */ getGroupInfo(group_id: string, no_cache: string): Promise<import("axios").AxiosResponse<any>>; /** * 获取群列表 * @param no_cache 是否不使用缓存(使用缓存可能更新不及时, 但响应更快) * @return promise */ getGroupList(no_cache: string): Promise<import("axios").AxiosResponse<any>>; /** * 获取群成员信息 * @param group_id 群号 * @param user_id QQ 号 * @param no_cache 是否不使用缓存(使用缓存可能更新不及时, 但响应更快) * @return promise */ getGroupMemberInfo(group_id: number, user_id: number, no_cache: string): Promise<import("axios").AxiosResponse<any>>; /** * 获取群成员列表 * @param group_id 群号 * @param no_cache 是否不使用缓存(使用缓存可能更新不及时, 但响应更快) * @return promise */ getGroupMemberList(group_id: number, no_cache: string): Promise<import("axios").AxiosResponse<any>>; /** * 获取群荣誉信息 * @param group_id 群号 * @param type 要获取的群荣誉类型, 可传入 talkative performer legend strong_newbie emotion 以分别获取单个类型的群荣誉数据, 或传入 all 获取所有数据 * @return promise */ getGroupHonorInfo(group_id: number, type: string): Promise<import("axios").AxiosResponse<any>>; /** * 获取群系统消息 * @return promise */ getGroupSystemMsg(): Promise<import("axios").AxiosResponse<any>>; /** * 获取精华消息列表 * @param group_id 群号 * @return promise */ getEssenceMsgList(group_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 获取群 @全体成员 剩余次数 * @param group_id 群号 * @return promise */ getGroupAtallremain(group_id: number): Promise<import("axios").AxiosResponse<any>>; /************************************ 群设置 *************************************/ /** * 设置群名 * @param group_id 群号 * @param group_name 新群名 * @return promise */ setGroupName(group_id: number, group_name: string): Promise<import("axios").AxiosResponse<any>>; /** * 设置群头像 * @param group_id 群号 * @param file 图片文件名,格式同图片参数接口 * @param cache 表示是否使用已缓存的文件 * @return promise */ setGroupPortrait(group_id: number, file: string, cache: boolean): Promise<import("axios").AxiosResponse<any>>; /** * 设置群管理员 * @param group_id 群号 * @param user_id 要设置管理员的 QQ 号 * @param enable true 为设置, false 为取消 * @return promise */ setGroupAdmin(group_id: number, user_id: number, enable: boolean): Promise<import("axios").AxiosResponse<any>>; /** * 设置群名片 ( 群备注 ) * @param group_id 群号 * @param user_id 要设置的 QQ 号 * @param card 群名片内容, 不填或空字符串表示删除群名片 * @return promise */ setGroupCard(group_id: number, user_id: number, card: string): Promise<import("axios").AxiosResponse<any>>; /** * 设置群组专属头衔 * @param group_id 群号 * @param user_id 要设置的 QQ 号 * @param special_title 专属头衔, 不填或空字符串表示删除专属头衔 * @param duration 专属头衔有效期, 单位秒, -1 表示永久, 不过此项似乎没有效果, 可能是只有某些特殊的时间长度有效, 有待测试 * @return promise */ setGroupSpecialTitle(group_id: number, user_id: number, special_title: string, duration: number): Promise<import("axios").AxiosResponse<any>>; /************************************ 群操作 *************************************/ /** * 群单人禁言 * @param group_id 群号 * @param user_id 要禁言的 QQ 号 * @param duration 禁言时长, 单位秒, 0 表示取消禁言 * @return promise */ setGroupBan(group_id: number, user_id: number, duration: number): Promise<import("axios").AxiosResponse<any>>; /** * 群全员禁言 * @param group_id 群号 * @param enable 是否禁言 * @return promise */ setGroupWholeBan(group_id: number, enable: boolean): Promise<import("axios").AxiosResponse<any>>; /** * 群匿名用户禁言 * @param group_id 群号 * @param anonymous 可选, 要禁言的匿名用户对象(群消息上报的 anonymous 字段) * @param flag 可选, 要禁言的匿名用户的 flag(需从群消息上报的数据中获得) * @param duration 禁言时长, 单位秒, 无法取消匿名用户禁言 * @return promise */ setGroupAnonymousBan(group_id: number, anonymous: any, flag: string, duration: number): Promise<import("axios").AxiosResponse<any>>; /** * 设置精华消息 * @param message_id 消息ID * @return promise */ setEssenceMsg(message_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 移出精华消息 * @param message_id 消息ID * @return promise */ deleteEssenceMsg(message_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 群打卡 * @param group_id 群号 * @return promise */ sendGroupSign(group_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 发送群公告 * @param group_id 群号 * @param content 公告内容 * @param image 图片路径(可选) * @return promise */ sendGroupNotice(group_id: number, content: string, image: string): Promise<import("axios").AxiosResponse<any>>; /** * 获取群公告 * @param group_id 群号 * @return promise */ getGroupNotice(group_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 群组踢人 * @param group_id 群号 * @param user_id 要踢的 QQ 号 * @param reject_add_request 拒绝此人的加群请求 * @return promise */ setGroupKick(group_id: number, user_id: number, reject_add_request: boolean): Promise<import("axios").AxiosResponse<any>>; /** * 退出群组 * @param group_id 群号 * @param is_dismiss 是否解散, 如果登录号是群主, 则仅在此项为 true 时能够解散 * @return promise */ setGroupLeave(group_id: number, is_dismiss: boolean): Promise<import("axios").AxiosResponse<any>>; /************************************ 文件 *************************************/ /** * 上传群文件 * @param group_id 群号 * @param file 本地文件路径,只能上传本地文件, 需要上传 http 文件的话请先调用 download_file API下载 * @param name 储存名称 * @param folder 父目录ID,在不提供 folder 参数的情况下默认上传到根目录 * @return promise */ uploadGroupFile(group_id: number, file: string, name: string, folder: string): Promise<import("axios").AxiosResponse<any>>; /** * 删除群文件 * @param group_id 群号 * @param file_id 文件ID 参考 File 对象 * @param busid 文件类型 参考 File 对象 * @return promise */ deleteGroupFile(group_id: number, file_id: string, busid: number): Promise<import("axios").AxiosResponse<any>>; /** * 创建群文件文件夹,仅能在根目录创建文件夹 * @param group_id 群号 * @param name 文件夹名称 * @param parent_id 仅能为 / * @return promise */ createGroupFileFolder(group_id: number, name: string, parent_id: string): Promise<import("axios").AxiosResponse<any>>; /** * 删除群文件文件夹 * @param group_id 群号 * @param folder_id 文件夹ID 参考 Folder 对象 * @return promise */ deleteGroupFolder(group_id: number, folder_id: string): Promise<import("axios").AxiosResponse<any>>; /** * 获取群文件系统信息 * @param group_id 群号 * @return promise */ getGroupFileSystemInfo(group_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 获取群根目录文件列表 * @param group_id 群号 * @return promise */ getGroupRootFiles(group_id: number): Promise<import("axios").AxiosResponse<any>>; /** * 获取群文件资源链接 * @param group_id 群号 * @param file_id 文件ID 参考 File 对象 * @param busid 文件类型 参考 File 对象 * @return promise */ getGroupFileUrl(group_id: number, file_id: string, busid: number): Promise<import("axios").AxiosResponse<any>>; /** * 上传私聊文件,只能上传本地文件, 需要上传 http 文件的话请先调用 download_file API下载 * @param user_id 对方 QQ 号 * @param file 本地文件路径 * @param name 文件名称 * @return promise */ uploadPrivateFile(user_id: number, file: string, name: string): Promise<import("axios").AxiosResponse<any>>; /************************************ Go-CqHttp 相关 *************************************/ /** * 获取版本信息 * @return promise */ getVersionInfo(): Promise<import("axios").AxiosResponse<any>>; /** * 获取状态 * @return promise */ getStatus(): Promise<import("axios").AxiosResponse<any>>; /** * 获取状态 * @param file 事件过滤器文件 * @return promise */ reloadEventFilter(file: string): Promise<import("axios").AxiosResponse<any>>; /** * 下载文件到缓存目录 * @param url 链接地址 * @param thread_count 下载线程数 * @param headers 自定义请求头 * @return promise */ downloadFile(url: string, thread_count: number, headers: string | []): Promise<import("axios").AxiosResponse<any>>; /** * 检查链接安全性 * @param url 需要检查的链接 * @return promise */ checkUrlSafely(url: string): Promise<import("axios").AxiosResponse<any>>; } export {};