0.1.1 • Published 6 years ago
@ion-bot/sender-cqhttp v0.1.1
@ion-bot/sender-cqhttp
@ion-bot/sender-cqhttp 是一系列用以存储 coolq-http-api 上报对象并提供方法来回应它们的类。
Introduction
@ion-bot/sender-cqhttp 是一个类库,因此你可以这样将其包含进你的项目中:
import * as Senders from '@ion-bot/sender-cqhttp'
const sendAddress = 'http://localhost:5700' // cqhttp api 所在 URL
Senders.IonSenderCqhttp.setSendAddress(sendAddress) // 设置上报 URL
// 四类 sender,params 在下文指代原始上报对象
const PlainSender = new Senders.IonSenderCqhttp(params)
const MessageSender = new Senders.IonSenderCqhttpMessage(params) // 继承了 IonSenderCqhttp
const RequestSender = new Senders.IonSenderCqhttpRequest(params) // 继承了 IonSenderCqhttp
const NoticeSender = new Senders.IonSenderCqhttpNotice(params) // 继承了 IonSenderCqhttp
Definition
这里列出了四个 sender 类中所有可用方法、属性,附带说明。
所有返回
Promise
的函数,除非特别说明,返回的将是AxiosPromise
,即 http 请求。
IonSenderCqhttp
class IonSenderCqhttp {
startTime: Date // 创建对象的时间
// 3个分别为是否群组/讨论组/私聊
isGroup: boolean
isDiscuss: boolean
isPrivate: boolean
target: number // 发信群/讨论组/用户
targetUser: number // 发信用户
region: string // 类别(message/request/notice)
type: string // 细分类别
// 原始上报对象
// 建议只读
param: object
// 获取 IonSenderCqhttp 这一 class
// 以便直接调用 static 函数
static()
async info(): object // 获取发信者信息
async memberList(): object[] // (当群组时)获取成员列表
leave(): Promise // (当群组时)退群/退讨论组
kick(rejectAddRequest: boolean = false): Promise // (当群组时)(当有权限时)踢出发送者
ban(duration: number): Promise // (当群组时)(当有权限时)禁言发送者
unban(): Promise // (当群组时)(当有权限时)解除禁言发送者
wholeBan(): Promise // (当群组时)(当有权限时)全员禁言
wholeUnban(): Promise // (当群组时)(当有权限时)解除全员禁言
rename(card: string): Promise // (当群组时)(当有权限时)更改发送者名片
admin(): Promise // (当群组时)(当有权限时)将发送者设为管理员
unadmin(): Promise // (当群组时)(当有权限时)将发送者解除管理员
static private(user_id: number, message: string): Promise // 发送私聊消息
static group(group_id: number, message: string): Promise // 发送群消息
static discuss(discuss_id: number, message: string): Promise // 发送讨论组消息
static async groupList(): object[] // 获取群列表
static async memberList(group_id: number): object[] // 获取群成员列表
static async userInfo(user_id: number, group_id: number): object // 获取用户信息
static async selfInfo(): object // 获取登录号信息
static kick(group_id: number, user_id: number, reject_add_request: boolean = false): Promise // 踢人
static ban(group_id: number, user_id: number, duration: number): Promise // 禁言
static unban(group_id: number, user_id: number): Promise // 解除禁言
static wholeBan(group_id: number): Promise // 全员禁言
static wholeUnban(group_id: number): Promise // 解除全员禁言
static leave(group_id: number): Promise // 退群
static leaveDiscuss(discuss_id: number): Promise // 退讨论组
static rename(group_id: number, user_id: number, card: string): Promise // 改名片
static admin(group_id: number, user_id: number): Promise // 设管理员
static unadmin(group_id: number, user_id: number): Promise // 解除管理员
static request = {
friend(flag: string, approve: boolean): Promise, // 同意好友请求
group(flag: string, approve: boolean): Promise, // 同意拉进群请求
}
enter(flag: string, approve: boolean): Promise // 同意加群请求
}
IonSenderCqhttpMessage
当 region
为 message
时应使用此类。
class IonSenderCqhttpMessage extends IonSenderCqhttp {
content: string // 发来的消息
send(message: string|{type: string, data: object}[]) // 发送消息给 target
error(err: Error) // 发送 error stacktrace 给 target
}
IonSenderCqhttpRequest
当 region
为 request
时应使用此类。
class IonSenderCqhttpRequest extends IonSenderCqhttp {
flag: string // 请求标识符
requestType: string // 请求类型
send(approve: boolean) // 同意或拒绝请求
}
IonSenderCqhttpNotice
当 region
为 notice
时应使用此类。
class IonSenderCqhttpNotice extends IonSenderCqhttp {
// 因事件而异
// 当 type === 'group_upload'
file: object // 文件信息
// 当 type === 'group_admin'
noticeType: string // set:上管理,unset:下管理
// 当 type === 'group_decrease'
noticeType: string // leave:主动退,kick:踢,kick_me:自己被踢
// 当 type === 'group_increase'
noticeType: string // approve:别人申请,invite:管理邀请
operatorUser: number // 操作人
// 当 type === 'friend_add'
// 无
}