ntqq-cqhttp
Version:
基于 ntqq onebot 框架进行二次封装的 sdk 开发包,主要方便直接进行机器人的操作。
1,103 lines (1,016 loc) • 29.6 kB
text/typescript
import { Event } from '../core/Event'
import { AxiosInstance } from 'axios';
import qs from 'qs';
import CQCode from './CQCode'
// qq,group 消息结构体
interface InfoDataPack {
fromUser: number,
fromGroup: number,
rawMessage: string,
robot: number,
isAt: boolean,
QQInfo: {
card: string,
nickname: string
},
success: boolean,
type: string,
}
// 事件消息结构体
interface EventDataPack {
// fromUser: {},
// fromGroup: {},
// rawMessage: '',
robot: number,
// isAt: boolean,
// QQInfo: { nickname: string},
user_id: number,
group_id: number,
notice_type: string,
sub_type: string,
success: boolean,
type: string,
}
/**
* 机器人类,有回调事件,上发操作等功能。
*/
export class Robot extends Event {
private qq: string | number = '';
private botID: string = '';
private http: AxiosInstance = null;
private _onPrivateMsg: Array<Function> = [];
private _onGroupMsg: Array<Function> = [];
private _onEventMsg: Array<Function> = [];
private groupFunMap: Map<string | number, Function> = null;
private privateCmdAction: Map<Array<string | number>, Function> = null;
private groupCmdAction: Map<Array<string | number>, Function> = null;
constructor(qq: string | number, http: AxiosInstance, botID) {
super();
this.qq = String(qq);
this.http = http;
this.botID = botID;
this.groupFunMap = new Map();
this.privateCmdAction = new Map();
this.groupCmdAction = new Map();
this.on('private', pack => {
if (this._onPrivateMsg) {
this._onPrivateMsg.forEach(fun => {
if (fun) {
fun(pack);
}
})
}
// 遍历注册指令
this.privateCmdAction.forEach((doAction, cmdArray) => {
if (cmdArray.includes(pack.rawMessage)) {
doAction(pack);
}
})
})
this.on('group', pack => {
if (this._onGroupMsg) {
this._onGroupMsg.forEach(fun => {
if (fun) {
fun(pack);
}
})
}
let groupFun = this.groupFunMap.get(String(pack.fromGroup));
if (groupFun) {
groupFun(pack);
}
// 遍历注册指令
this.groupCmdAction.forEach((doAction, cmdArray) => {
if (cmdArray.includes(pack.rawMessage) && ((doAction as any).group == pack.fromGroup)) {
doAction(pack);
}
})
})
this.on('notice', pack => {
if (this._onEventMsg) {
this._onEventMsg.forEach(fun => {
if (fun) {
fun(pack);
}
})
}
})
}
/**
* 获取 CQ Code 模板对象
*/
public get CQCode() {
return CQCode
}
/**
* 返回实例化机器人的请求器
*/
public get httpRequest() {
return this.http
}
/**
* 返回机器人序号 ID
*/
public get id() {
return this.botID
}
/**
* 返回机器人 QQ 号
*/
public get QQ() {
return this.qq
}
/**
* 当私聊信息触发时,回调时带回消息包
* @param resPack 参数包
* ```
* {
* fromUser: 发送者QQ
* rawMessage:接收的消息
* robot: 框架QQ
* isAt: 机器人是否被 at 的
* OOInfo:{card,nickname} // 昵称,群昵称
* success: 成功状态
* }
* ```
*/
public onPrivateMsg(fun: (pack: InfoDataPack) => void) {
this._onPrivateMsg.push(fun);
}
/**
* 当群聊消息触发时,回调时带回消息包
* @param resPack 参数包
* ```
* {
* fromUser: 发送者QQ
* fromGroup: 接收群
* rawMessage:接收的消息
* robot: 框架QQ
* isAt: 机器人是否被 at 的
* OOInfo:{card,nickname} // 昵称,群昵称
* success: 成功状态
* }
* ```
*/
public onGroupMsg(fun: (pack: InfoDataPack) => void) {
this._onGroupMsg.push(fun);
}
/**
* 绑定特定群组回调消息
* @param group 群号
* @param fun 回调函数,返回的参数为消息数据包
*/
public setOnGroupMsg(group: string | number, fun: (pack: InfoDataPack) => void) {
this.groupFunMap.set(String(group), fun);
}
public getOnGroupMsg(group: string | number) {
return this.groupFunMap.get(String(group))
}
/**
* 当操作事件触发时,回调时带回消息包
*/
public onEventMsg(fun: (pack: EventDataPack) => void) {
this._onEventMsg.push(fun);
}
/**
* 快速注册一个私聊指令并执行对应的方法
* @param {Array<string>} cmd 监听的指令
* @param doAction 要执行的动作,回调参数为发送者相关信息
*/
public regPrivateCmd(cmd: Array<string | number>, doAction: (pack: InfoDataPack) => void) {
this.privateCmdAction.set(cmd, doAction);
}
/**
* 快速注册一个群要使用的指令并执行对应的方法
* @param group 监听的目标群
* @param {Array<string>} cmd 监听的指令
* @param doAction 要执行的动作,回调参数为发送者相关信息
*/
public regGroupCmd(group: string | number, cmd: Array<string | number>, doAction: (pack: InfoDataPack) => void) {
Object.assign(doAction, {
group
})
this.groupCmdAction.set(cmd, doAction);
}
/************************************ Bot 账号 *************************************/
/**
* 获取登录号信息
* @return Promise
*/
public getLoginInfo() {
return this.http.post('/get_login_info');
}
/**
* 设置登录号资料
* @param nickname 名称
* @param company 公司
* @param email 邮箱
* @param college 学校
* @param personal_note 个人说明
* @return Promise
*/
public setQQProfile(nickname: string, company: string, email: string, college: string, personal_note: string) {
return this.http.post('/send_msg',
qs.stringify({
nickname,
company,
email,
college,
personal_note
})
)
}
/**
* 获取企点账号信息,该API只有企点协议可用
* @return promise
*/
public qidianGetAccountInfo() {
return this.http.post('/qidian_get_account_info');
}
/**
* 获取在线机型
* @param model 机型名称
* @return promise
*/
public getModelShow(model: string) {
return this.http.post('/_get_model_show', qs.stringify({
model
}));
}
/**
* 设置在线机型
* @param model 机型名称
* @param model_show
* @return promise
*/
public setModelShow(model: string, model_show: string) {
return this.http.post('/_set_model_show', qs.stringify({
model,
model_show
}));
}
/**
* 获取当前账号在线客户端列表
* @param no_cache 是否无视缓存
* @return Promise
*/
public getOnlineClients(no_cache: boolean) {
return this.http.post('/get_online_clients', qs.stringify({
no_cache
}));
}
/************************************ 好友信息 *************************************/
/**
* 获取当前账号在线客户端列表
* @param user_id QQ 号
* @param no_cache 是否不使用缓存(使用缓存可能更新不及时, 但响应更快)
* @return Promise
*/
public getStrangerInfo(user_id: number, no_cache: boolean) {
return this.http.post('/get_stranger_info', qs.stringify({
user_id,
no_cache
}));
}
/**
* 获取好友列表
* @return Promise
*/
public getFriendList() {
return this.http.post('/get_friend_list');
}
/**
* 获取单向好友列表
* @return Promise
*/
public getUnidirectionalFriendList() {
return this.http.post('/get_unidirectional_friend_list');
}
/************************************ 好友操作 *************************************/
/**
* 删除好友
* @param user_id 好友 QQ 号
* @return Promise
*/
public deleteFriend(user_id: boolean) {
return this.http.post('/delete_friend', qs.stringify({
user_id
}));
}
/**
* 删除单向好友
* @param user_id 好友 QQ 号
* @return Promise
*/
public deleteUnidirectionalFriend(user_id: boolean) {
return this.http.post('/delete_unidirectional_friend', qs.stringify({
user_id
}));
}
/************************************ 消息 *************************************/
/**
* 发送好友私聊消息
* @param toqq 目标 QQ
* @param text 发送的文本
* @param type 文本类型:xml,json,可不传
* @return httpRequestPromise 返回请求的 promise
*/
public sendPrivateMsg(toqq: string | number, text: string) {
return this.http.post('/send_msg',
qs.stringify({
message_type: 'private',
user_id: toqq,
message: text,
})
)
}
/**
* 发送群临时会话消息
* @param fromGroup 来自群号
* @param toqq 目标 QQ
* @param text 发送文本
* @return httpRequestPromise 返回请求的 promise
*/
public sendGroupPrivateMsg(fromGroup: string | number, toqq: string | number, text: string) {
return this.http.post('/send_private_msg',
qs.stringify({
user_id: toqq,
group_id: fromGroup,
message: text,
})
)
}
/**
* 发送群组消息
* @param toGroup 目标群
* @param text 文本
* @param anonymous 是否匿名,默认:false
* @return httpRequestPromise 返回请求的 promise
*/
public sendGroupMsg(toGroup: string | number, text: string, anonymous: boolean = false) {
return this.http.post('/send_msg',
qs.stringify({
message_type: 'group',
group_id: toGroup,
message: text,
anonymous
})
)
}
/**
* 私聊发送图片
* @param toqq 发送目标 qq
* @param imgSrc 图片资源:url,base64,路径均可
* @param flashpic 是否发送闪照,默认 false
* @return httpRequestPromise 返回请求的 promise
*/
public sendPrivateImg(toqq: string | number, imgSrc: string, flashpic: boolean = false) {
return this.sendPrivateMsg(toqq, `[CQ:image,file=${imgSrc},type=${flashpic ? 'flash' : 'show'},id=40004]`)
}
/**
* 发送群临时私聊图片
* @param fromGroup 群号
* @param toqq 目标 qq
* @param imgSrc 图片资源
* @param flashpic 是否闪照
* @return httpRequestPromise 返回请求的 promise
*/
public sendGroupPrivateImg(fromGroup: string | number, toqq: string | number, imgSrc: string, flashpic: boolean = false) {
return this.sendGroupPrivateMsg(fromGroup, toqq, `[CQ:image,file=${imgSrc},type=${flashpic ? 'flash' : 'show'},id=40004]`)
}
/**
* 向群发送图片
* @param togroup 目标群号
* @param imgSrc 图片资源
* @param flashpic 是否为闪照
* @return httpRequestPromise 返回请求的 promise
*/
public sendGroupImg(togroup: string | number, imgSrc: string, flashpic: boolean = false) {
return this.sendGroupMsg(togroup, `[CQ:image,file=${imgSrc},type=${flashpic ? 'flash' : ''},id=40004,subType=0]`)
}
/**
* 私聊发送语音
* @param toqq 发送目标 qq
* @param recordSrc 图片资源:url,base64,路径均可
* @return httpRequestPromise 返回请求的 promise
*/
public sendPrivateRecord(toqq: string | number, recordSrc: string) {
return this.sendPrivateMsg(toqq, `[CQ:image,file=${recordSrc}]`)
}
/**
* 发送群临时私聊图片
* @param fromGroup 群号
* @param toqq 目标 qq
* @param recordSrc 图片资源:url,base64,路径均可
* @return httpRequestPromise 返回请求的 promise
*/
public sendGroupPrivateRecord(fromGroup: string | number, toqq: string | number, recordSrc: string) {
return this.sendGroupPrivateMsg(fromGroup, toqq, `[CQ:record,file=${recordSrc}]`)
}
/**
* 向群发送图片
* @param togroup 目标群号
* @param recordSrc 图片资源:url,base64,路径均可
* @return httpRequestPromise 返回请求的 promise
*/
public sendGroupRecord(togroup: string | number, recordSrc: string) {
return this.sendGroupMsg(togroup, `[CQ:record,file=${recordSrc}]`)
}
/**
* 获取消息
* @param message_id 消息id
* @return promise
*/
public getMsg(message_id: number) {
return this.http.post('/get_msg',
qs.stringify({
message_id
})
)
}
/**
* 撤回消息
* @param message_id 消息id
* @return promise
*/
public deleteMsg(message_id: number) {
return this.http.post('/delete_msg',
qs.stringify({
message_id
})
)
}
/**
* 标记消息已读
* @param message_id 消息id
* @return promise
*/
public markMsgAsRead(message_id: number) {
return this.http.post('/mark_msg_as_read',
qs.stringify({
message_id
})
)
}
/**
* 获取合并转发内容
* @param message_id 消息id
* @return promise
*/
public getForwardMsg(message_id: number) {
return this.http.post('/get_forward_msg',
qs.stringify({
message_id
})
)
}
/**
* 获取合并转发内容
* @param group_id 群号
* @param messages 自定义转发消息, 具体看 CQcode
* @return promise
*/
public sendGroupForwardMsg(group_id: number, messages: any) {
return this.http.post('/send_group_forward_msg',
qs.stringify({
group_id,
messages
})
)
}
/**
* 发送合并转发 ( 好友 )
* @param user_id 好友QQ号
* @param messages 自定义转发消息, 具体看 CQcode
* @return promise
*/
public sendPrivateForwardMsg(user_id: number, messages: any) {
return this.http.post('/send_private_forward_msg',
qs.stringify({
user_id,
messages
})
)
}
/**
* 获取群消息历史记录
* @param message_seq 起始消息序号, 可通过 get_msg 获得
* @param group_id 号
* @return promise
*/
public getGroupMsgHistory(message_seq: number, group_id: number) {
return this.http.post('/get_group_msg_history',
qs.stringify({
message_seq,
group_id
})
)
}
/************************************ 图片 *************************************/
/**
* 获取图片信息
* @param file 图片缓存文件名
* @return promise
*/
public getImage(file: string) {
return this.http.post('/get_image',
qs.stringify({
file
})
)
}
/**
* 检查是否可以发送图片
* @return promise
*/
public canSendImage(file: string) {
return this.http.post('/can_send_image')
}
/**
* 图片 OCR
* @param image 图片ID
* @return promise
*/
public ocrImage(image: string) {
return this.http.post('/ocr_image',
qs.stringify({
image
})
)
}
/************************************ 语音 *************************************/
/**
* 检查是否可以发送语音
* @return promise
*/
public canSendRecord(file: string) {
return this.http.post('/can_send_record')
}
/************************************ 处理 *************************************/
/**
* 处理加好友请求
* @param flag 加好友请求的 flag(需从上报的数据中获得)
* @param approve 是否同意请求
* @param remark 添加后的好友备注(仅在同意时有效)
* @return promise
*/
public setFriendAddRequest(flag: string, approve: boolean, remark: string) {
return this.http.post('/set_friend_add_request', qs.stringify({
flag,
approve,
remark
}))
}
/**
* 处理加群请求/邀请
* @param flag 加群请求的 flag(需从上报的数据中获得)
* @param sub_type add 或 invite, 请求类型(需要和上报消息中的 sub_type 字段相符)
* @param approve 是否同意请求/邀请
* @param reason 拒绝理由(仅在拒绝时有效)
* @return promise
*/
public setGroupAddRequest(flag: string, sub_type: string, approve: boolean, reason: string) {
return this.http.post('/set_group_add_request', qs.stringify({
flag,
sub_type,
approve,
reason
}))
}
/************************************ 群消息 *************************************/
/**
* 获取群信息
* @param group_id 群号
* @param no_cache 是否不使用缓存(使用缓存可能更新不及时, 但响应更快)
* @return promise
*/
public getGroupInfo(group_id: string, no_cache: string) {
return this.http.post('/get_group_info', qs.stringify({
group_id,
no_cache
}))
}
/**
* 获取群列表
* @param no_cache 是否不使用缓存(使用缓存可能更新不及时, 但响应更快)
* @return promise
*/
public getGroupList(no_cache: string) {
return this.http.post('/get_group_list', qs.stringify({
no_cache
}))
}
/**
* 获取群成员信息
* @param group_id 群号
* @param user_id QQ 号
* @param no_cache 是否不使用缓存(使用缓存可能更新不及时, 但响应更快)
* @return promise
*/
public getGroupMemberInfo(group_id: number, user_id: number, no_cache: string) {
return this.http.post('/get_group_member_info', qs.stringify({
group_id,
user_id,
no_cache
}))
}
/**
* 获取群成员列表
* @param group_id 群号
* @param no_cache 是否不使用缓存(使用缓存可能更新不及时, 但响应更快)
* @return promise
*/
public getGroupMemberList(group_id: number, no_cache: string) {
return this.http.post('/get_group_member_list', qs.stringify({
group_id,
no_cache
}))
}
/**
* 获取群荣誉信息
* @param group_id 群号
* @param type 要获取的群荣誉类型, 可传入 talkative performer legend strong_newbie emotion 以分别获取单个类型的群荣誉数据, 或传入 all 获取所有数据
* @return promise
*/
public getGroupHonorInfo(group_id: number, type: string) {
return this.http.post('/get_group_honor_info', qs.stringify({
group_id,
type
}))
}
/**
* 获取群系统消息
* @return promise
*/
public getGroupSystemMsg() {
return this.http.post('/get_group_system_msg')
}
/**
* 获取精华消息列表
* @param group_id 群号
* @return promise
*/
public getEssenceMsgList(group_id: number) {
return this.http.post('/get_essence_msg_list', qs.stringify({
group_id
}))
}
/**
* 获取群 @全体成员 剩余次数
* @param group_id 群号
* @return promise
*/
public getGroupAtallremain(group_id: number) {
return this.http.post('/get_group_at_all_remain', qs.stringify({
group_id
}))
}
/************************************ 群设置 *************************************/
/**
* 设置群名
* @param group_id 群号
* @param group_name 新群名
* @return promise
*/
public setGroupName(group_id: number, group_name: string) {
return this.http.post('/set_group_name', qs.stringify({
group_id,
group_name
}))
}
/**
* 设置群头像
* @param group_id 群号
* @param file 图片文件名,格式同图片参数接口
* @param cache 表示是否使用已缓存的文件
* @return promise
*/
public setGroupPortrait(group_id: number, file: string, cache: boolean) {
return this.http.post('/set_group_portrait', qs.stringify({
group_id,
file,
cache
}))
}
/**
* 设置群管理员
* @param group_id 群号
* @param user_id 要设置管理员的 QQ 号
* @param enable true 为设置, false 为取消
* @return promise
*/
public setGroupAdmin(group_id: number, user_id: number, enable: boolean) {
return this.http.post('/set_group_admin', qs.stringify({
group_id,
user_id,
enable
}))
}
/**
* 设置群名片 ( 群备注 )
* @param group_id 群号
* @param user_id 要设置的 QQ 号
* @param card 群名片内容, 不填或空字符串表示删除群名片
* @return promise
*/
public setGroupCard(group_id: number, user_id: number, card: string) {
return this.http.post('/set_group_card', qs.stringify({
group_id,
user_id,
card
}))
}
/**
* 设置群组专属头衔
* @param group_id 群号
* @param user_id 要设置的 QQ 号
* @param special_title 专属头衔, 不填或空字符串表示删除专属头衔
* @param duration 专属头衔有效期, 单位秒, -1 表示永久, 不过此项似乎没有效果, 可能是只有某些特殊的时间长度有效, 有待测试
* @return promise
*/
public setGroupSpecialTitle(group_id: number, user_id: number, special_title: string, duration: number) {
return this.http.post('/set_group_special_title', qs.stringify({
group_id,
user_id,
special_title,
duration
}))
}
/************************************ 群操作 *************************************/
/**
* 群单人禁言
* @param group_id 群号
* @param user_id 要禁言的 QQ 号
* @param duration 禁言时长, 单位秒, 0 表示取消禁言
* @return promise
*/
public setGroupBan(group_id: number, user_id: number, duration: number) {
return this.http.post('/set_group_ban', qs.stringify({
group_id,
user_id,
duration
}))
}
/**
* 群全员禁言
* @param group_id 群号
* @param enable 是否禁言
* @return promise
*/
public setGroupWholeBan(group_id: number, enable: boolean) {
return this.http.post('/set_group_whole_ban', qs.stringify({
group_id,
enable
}))
}
/**
* 群匿名用户禁言
* @param group_id 群号
* @param anonymous 可选, 要禁言的匿名用户对象(群消息上报的 anonymous 字段)
* @param flag 可选, 要禁言的匿名用户的 flag(需从群消息上报的数据中获得)
* @param duration 禁言时长, 单位秒, 无法取消匿名用户禁言
* @return promise
*/
public setGroupAnonymousBan(group_id: number, anonymous: any, flag: string, duration: number) {
return this.http.post('/set_group_anonymous_ban', qs.stringify({
group_id,
anonymous,
flag,
duration
}))
}
/**
* 设置精华消息
* @param message_id 消息ID
* @return promise
*/
public setEssenceMsg(message_id: number) {
return this.http.post('/set_essence_msg', qs.stringify({
message_id
}))
}
/**
* 移出精华消息
* @param message_id 消息ID
* @return promise
*/
public deleteEssenceMsg(message_id: number) {
return this.http.post('/delete_essence_msg', qs.stringify({
message_id
}))
}
/**
* 群打卡
* @param group_id 群号
* @return promise
*/
public sendGroupSign(group_id: number) {
return this.http.post('/send_group_sign', qs.stringify({
group_id
}))
}
/**
* 发送群公告
* @param group_id 群号
* @param content 公告内容
* @param image 图片路径(可选)
* @return promise
*/
public sendGroupNotice(group_id: number, content: string, image: string) {
return this.http.post('/_send_group_notice', qs.stringify({
group_id,
content,
image
}))
}
/**
* 获取群公告
* @param group_id 群号
* @return promise
*/
public getGroupNotice(group_id: number) {
return this.http.post('/_get_group_notice', qs.stringify({
group_id
}))
}
/**
* 群组踢人
* @param group_id 群号
* @param user_id 要踢的 QQ 号
* @param reject_add_request 拒绝此人的加群请求
* @return promise
*/
public setGroupKick(group_id: number, user_id: number, reject_add_request: boolean) {
return this.http.post('/set_group_kick', qs.stringify({
group_id,
user_id,
reject_add_request
}))
}
/**
* 退出群组
* @param group_id 群号
* @param is_dismiss 是否解散, 如果登录号是群主, 则仅在此项为 true 时能够解散
* @return promise
*/
public setGroupLeave(group_id: number, is_dismiss: boolean) {
return this.http.post('/set_group_leave', qs.stringify({
group_id,
is_dismiss
}))
}
/************************************ 文件 *************************************/
/**
* 上传群文件
* @param group_id 群号
* @param file 本地文件路径,只能上传本地文件, 需要上传 http 文件的话请先调用 download_file API下载
* @param name 储存名称
* @param folder 父目录ID,在不提供 folder 参数的情况下默认上传到根目录
* @return promise
*/
public uploadGroupFile(group_id: number, file: string, name: string, folder: string) {
return this.http.post('/upload_group_file', qs.stringify({
group_id,
file,
name,
folder
}))
}
/**
* 删除群文件
* @param group_id 群号
* @param file_id 文件ID 参考 File 对象
* @param busid 文件类型 参考 File 对象
* @return promise
*/
public deleteGroupFile(group_id: number, file_id: string, busid: number) {
return this.http.post('/delete_group_file', qs.stringify({
group_id,
file_id,
busid
}))
}
/**
* 创建群文件文件夹,仅能在根目录创建文件夹
* @param group_id 群号
* @param name 文件夹名称
* @param parent_id 仅能为 /
* @return promise
*/
public createGroupFileFolder(group_id: number, name: string, parent_id: string) {
return this.http.post('/create_group_file_folder', qs.stringify({
group_id,
name,
parent_id
}))
}
/**
* 删除群文件文件夹
* @param group_id 群号
* @param folder_id 文件夹ID 参考 Folder 对象
* @return promise
*/
public deleteGroupFolder(group_id: number, folder_id: string) {
return this.http.post('/delete_group_folder', qs.stringify({
group_id,
folder_id
}))
}
/**
* 获取群文件系统信息
* @param group_id 群号
* @return promise
*/
public getGroupFileSystemInfo(group_id: number) {
return this.http.post('/get_group_file_system_info', qs.stringify({
group_id
}))
}
/**
* 获取群根目录文件列表
* @param group_id 群号
* @return promise
*/
public getGroupRootFiles(group_id: number) {
return this.http.post('/get_group_root_files', qs.stringify({
group_id
}))
}
/**
* 获取群文件资源链接
* @param group_id 群号
* @param file_id 文件ID 参考 File 对象
* @param busid 文件类型 参考 File 对象
* @return promise
*/
public getGroupFileUrl(group_id: number, file_id: string, busid: number) {
return this.http.post('/get_group_file_url', qs.stringify({
group_id,
file_id,
busid
}))
}
/**
* 上传私聊文件,只能上传本地文件, 需要上传 http 文件的话请先调用 download_file API下载
* @param user_id 对方 QQ 号
* @param file 本地文件路径
* @param name 文件名称
* @return promise
*/
public uploadPrivateFile(user_id: number, file: string, name: string) {
return this.http.post('/upload_private_file', qs.stringify({
user_id,
file,
name
}))
}
/************************************ Go-CqHttp 相关 *************************************/
/**
* 获取版本信息
* @return promise
*/
public getVersionInfo() {
return this.http.post('/get_version_info')
}
/**
* 获取状态
* @return promise
*/
public getStatus() {
return this.http.post('/get_status')
}
/**
* 获取状态
* @param file 事件过滤器文件
* @return promise
*/
public reloadEventFilter(file: string) {
return this.http.post('/reload_event_filter', qs.stringify({
file
}))
}
/**
* 下载文件到缓存目录
* @param url 链接地址
* @param thread_count 下载线程数
* @param headers 自定义请求头
* @return promise
*/
public downloadFile(url: string, thread_count: number, headers: string | []) {
return this.http.post('/download_file', qs.stringify({
url,
thread_count,
headers
}))
}
/**
* 检查链接安全性
* @param url 需要检查的链接
* @return promise
*/
public checkUrlSafely(url: string) {
return this.http.post('/check_url_safely', qs.stringify({
url
}))
}
}