Skip to content
This repository was archived by the owner on Nov 2, 2023. It is now read-only.

Commit 1aa8396

Browse files
Merge pull request #37 from takayama-lily/dev
-
2 parents 049adb0 + b373565 commit 1aa8396

File tree

8 files changed

+321
-141
lines changed

8 files changed

+321
-141
lines changed

client.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -570,7 +570,7 @@ class AndroidClient extends Client {
570570
try {
571571
this.friend_list_lock = true;
572572
this.friend_list = new Map();
573-
let start = 0, limit = 250;
573+
let start = 0, limit = 5000;
574574
while (1) {
575575
const total = await this.send(outgoing.buildFriendListRequestPacket(start, limit, this));
576576
start += limit;

docs/api.md

Lines changed: 186 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# API和事件
22

33
+ [oicq.createClient(uin[,config])](#oicq.createClient(uin[,config]))
4-
+ [oicq.setGlobalConfig(config)](#oicq.setGlobalConfig(config))
54
+ [Class: oicq.Client](#Class-Client)
65
+ [Events](#Events)
76
+ [Event: system](#Event-system)
@@ -12,6 +11,7 @@
1211
+ [client.captchaLogin(captcha)](#client.captchaLogin(captcha))
1312
+ [client.terminate()](#client.terminate())
1413
+ [APIs](#APIs)
14+
+ [oicq.setGlobalConfig(config)](#oicq.setGlobalConfig(config))
1515

1616
----
1717

@@ -20,7 +20,7 @@
2020
+ `uin` \<number>
2121
+ `config` \<Object>
2222

23-
创建一个实例
23+
创建client一个实例
2424

2525
```js
2626
const oicq = require("oicq");
@@ -40,62 +40,43 @@ const config = {
4040
};
4141
```
4242

43-
※ 不建议在单个工作线程中运行多个实例。如果确实有需要,建议使用 [Worker threads](https://nodejs.org/dist/latest/docs/api/worker_threads.html)[Child process](https://nodejs.org/dist/latest/docs/api/child_process.html) 管理实例。
44-
45-
----
46-
47-
## oicq.setGlobalConfig(config)
48-
49-
+ `config` \<Object>
50-
51-
全局设置
52-
53-
```js
54-
//要使用默认配置请勿传递该字段
55-
oicq.setGlobalConfig({
56-
web_image_timeout: 0, //下载网络图片的超时时间(0表示系统自己判断)
57-
web_record_timeout: 0, //下载网络语音的超时时间
58-
cache_root: "", //缓存文件夹根目录,需要可写权限,默认主目录下的data文件夹
59-
debug: false,
60-
});
61-
```
62-
63-
----
64-
65-
## Class: `Client`
66-
67-
只能使用工厂方法 createClient 创建实例。
68-
6943
----
7044

7145
## Events
7246

7347
使用 `client.on()` 来监听一个事件:
7448

7549
```js
76-
client.on("system.login", (data)=>{
50+
client.on("system.login.captcha", (data)=>{
7751
console.log(data);
7852
});
7953
```
8054

81-
事件为冒泡传递,例如 `request.group.add` 事件,若未监听会沿着 `request.group` 传递到 `request`
55+
事件为冒泡传递,例如 `request.group.add` 事件,若未监听会沿着二级分类 `request.group` 传递到一级分类 `request`
8256
事件使用cqhttp风格命名和参数,所有事件数据都为json对象,并包含以下共通字段:
8357

8458
+ `self_id`
8559
+ `time`
8660
+ `post_type` 一级分类 system, message, request, notice
87-
+ `{post_type}_type` 二级分类如 system.login, request.group
88-
+ `sub_type` 三级分类,有时会没有
61+
+ `{post_type}_type` 二级分类 如:login, online, offline, group, friend, private 等
62+
+ `sub_type` 三级分类 如:captcha, add, invite 等,有时会没有
63+
64+
之后只列出其他非共通的字段。
8965

9066
----
9167

9268
## Event: `system`
9369

9470
+ `system.login`
95-
+ `system.login.captcha` 收到验证码 `image` 字段为图像Buffer
96-
+ `system.login.device` 需要解设备锁 `url` 字段为设备锁验证地址
97-
+ `system.login.error` 其他原因如密码错误 `message` 字段为失败原因
71+
+ `system.login.captcha` 收到验证码
72+
+ *`image`* 图片数据(Buffer)
73+
+ `system.login.device` 需要解设备锁
74+
+ *`url`* 设备锁验证地址(string)
75+
+ `system.login.error` 其他原因导致登陆失败
76+
+ *`message`* "密码错误"等(string)
77+
9878
+ `system.online` 上线事件,可以开始处理消息
79+
9980
+ `system.offline` 下线事件
10081
+ `system.offline.network` 网络断开
10182
+ `system.offline.frozen` 被冻结
@@ -105,58 +86,197 @@ client.on("system.login", (data)=>{
10586

10687
----
10788

108-
以下事件与 [CQHTTP](https://github.com/howmanybots/onebot/blob/master/v11/specs/event/README.md) 大同小异
89+
以下事件使用 [CQHTTP](https://github.com/howmanybots/onebot/blob/master/v11/specs/event/README.md) 风格的命名和字段
10990

11091
## Event: `message`
11192

112-
+ `message.private`
93+
+ **message.private**
94+
11395
+ `message.private.friend` 好友消息
11496
+ `message.private.single` 单向好友消息(对方未加你)
11597
+ `message.private.group` 群临时会话
11698
+ `message.private.other` 其他临时会话
117-
+ `message.group`
99+
+ *`message_id`* string型
100+
+ *`user_id`* 对方QQ号(number)
101+
+ *`font`* 字体名称(string),如:"微软雅黑"
102+
+ *`message`* 数组格式的消息
103+
+ *`raw_message`* 字符串格式的消息(CQ码已转义)
104+
+ *`sender`*
105+
+ *`user_id`*
106+
+ *`nickname`* 昵称(string)
107+
+ *`remark`* 备注
108+
+ *`sex`* "male"或"female"或"unknown"
109+
+ *`age`* 年龄(number)
110+
111+
+ **message.group**
112+
118113
+ `message.group.normal` 群消息
119114
+ `message.group.anonymous` 群匿名消息
115+
+ *`message_id`* string型
116+
+ *`group_id`* 群号(number)
117+
+ *`group_name`* 群名(string)
118+
+ *`user_id`* 对方QQ号(number)
119+
+ *`anonymous`* 非匿名消息时为null
120+
+ *`id`* 暂时为0
121+
+ *`name`* 匿名者的名字
122+
+ *`flag`* 暂时为空
123+
+ *`font`* 字体名称(string),如:"微软雅黑"
124+
+ *`message`* 数组格式的消息
125+
+ *`raw_message`* 字符串格式的消息(CQ码已转义)
126+
+ *`sender`*
127+
+ *`user_id`*
128+
+ *`nickname`* 昵称(string)
129+
+ *`card`* 群名片
130+
+ *`sex`* "male"或"female"或"unknown"
131+
+ *`age`* 年龄(number)
132+
+ *`area`* 暂时为"unknown"
133+
+ *`level`* 群等级(number)
134+
+ *`role`* "owner"或"admin"或"member"
135+
+ *`title`* 群头衔(string)
120136

121137
----
122138

123139
## Event: `request`
124140

125-
+ `request.friend`
141+
+ **request.friend**
142+
126143
+ `request.friend.add` 好友请求
127-
+ `request.group`
144+
+ *`user_id`*
145+
+ *`nickname`*
146+
+ *`source`* 来源(某QQ群或搜索等)(string)
147+
+ *`comment`*
148+
+ *`sex`*
149+
+ *`age`*
150+
+ *`flag`* 用于处理请求时传入(string)
151+
152+
+ **request.group**
153+
128154
+ `request.group.add` 加群请求
155+
+ *`group_id`*
156+
+ *`group_name`*
157+
+ *`user_id`*
158+
+ *`nickname`*
159+
+ *`comment`*
160+
+ *`flag`*
161+
129162
+ `request.group.invite` 加群邀请
163+
+ *`group_id`*
164+
+ *`group_name`*
165+
+ *`user_id`*
166+
+ *`nickname`*
167+
+ *`role`* 邀请者的权限(admin或member)
168+
+ *`flag`*
130169

131170
----
132171

133172
## Event: `notice`
134173

135174
为了统一风格,notice事件的命名和原版cqhttp有一定出入
136175

137-
+ `notice.friend`
176+
+ **notice.friend**
177+
138178
+ `notice.friend.increase` 好友增加
139-
+ `notice.friend.decrease` 好友减少(被拉黑或自己删除)
179+
+ *`user_id`*
180+
+ *`nickname`*
181+
182+
+ `notice.friend.decrease` 好友减少(被拉黑或自己删除都会触发)
183+
+ *`user_id`*
184+
+ *`nickname`*
185+
140186
+ `notice.friend.recall` 消息撤回事件
141-
+ `notice.group`
187+
+ *`user_id`*
188+
+ *`message_id`*
189+
190+
+ **notice.group**
191+
142192
+ `notice.group.increase` 群员增加
143-
+ `notice.group.decrease` 群员减少
144-
+ `notice.group.recall` 消息撤回事件
145-
+ `notice.group.admin` 管理变更事件
193+
+ *`group_id`*
194+
+ *`user_id`*
195+
+ *`nickname`*
196+
197+
+ `notice.group.decrease` 群员减少(bot在其他客户端自己退群,事件不会触发)
198+
+ *`group_id`*
199+
+ *`operator_id`* 操作者,自己退群的时候和user_id相同
200+
+ *`user_id`*
201+
+ *`dismiss`* 是否是解散(boolean型)
202+
203+
+ `notice.group.recall` 群消息撤回事件
204+
+ *`group_id`*
205+
+ *`operator_id`*
206+
+ *`user_id`*
207+
+ *`message_id`*
208+
209+
+ `notice.group.admin` 管理变更事件(bot是群主,在其他客户端设置管理,事件不会触发)
210+
+ *`group_id`*
211+
+ *`user_id`*
212+
+ *`set`* boolean型
213+
146214
+ `notice.group.ban` 群禁言事件
215+
+ *`group_id`*
216+
+ *`operator_id`*
217+
+ *`user_id`*
218+
+ *`duration`* 时间(0为解禁)
219+
147220
+ `notice.group.transfer` 群转让事件
221+
+ *`group_id`*
222+
+ *`operator_id`* 旧群主
223+
+ *`user_id`* 新群主
224+
148225
+ `notice.group.notice` 收到群公告
226+
+ *`group_id`*
227+
+ *`user_id`*
228+
+ *`title`*
229+
+ *`content`*
230+
149231
+ `notice.group.file` 收到群文件
232+
+ *`group_id`*
233+
+ *`user_id`*
234+
+ *`file`*
235+
+ *`name`*
236+
+ *`url`*
237+
+ *`size`*
238+
+ *`md5`*
239+
+ *`duration`*
240+
150241
+ `notice.group.name` 群名变更事件
242+
+ *`group_id`*
243+
+ *`user_id`*
244+
+ *`new_name`*
245+
246+
+ `notice.group.title` 群头衔变更事件
247+
+ *`group_id`*
248+
+ *`user_id`*
249+
+ *`new_title`*
250+
151251
+ `notice.group.poke` 群戳一戳事件
252+
+ *`group_id`*
253+
+ *`operator_id`* 操作者
254+
+ *`user_id`* 目标
255+
+ *`action`* 动作名
256+
+ *`suffix`* 动作后缀
257+
258+
+ `notice.group.setting` 群设置变更事件,以下带有enable的字段都为 `boolean`
259+
+ *`enable_guest`* 允许游客进入
260+
+ *`enable_anonymous`* 允许匿名
261+
+ *`enable_upload_album`* 允许群员上传相册
262+
+ *`enable_upload_file`* 允许群员上传文件
263+
+ *`enable_temp_chat`* 允许临时会话
264+
+ *`enable_new_group`* 允许发起新群聊
265+
+ *`enable_show_honor`* 展示群互动标识(龙王等)
266+
+ *`enable_show_level`* 展示群等级
267+
+ *`enable_show_title`* 展示群头衔
268+
+ *`enable_confess`* 开启坦白说
269+
+ *`enable_cowrite`* 开启一起写
270+
+ *`group_id`*
271+
+ *`user_id`* 操作者不明的时候为 -1
152272

153273
----
154274

155275
## 系统类API
156276

157277
## `client.login(password_md5)` 密码登陆
158278

159-
+ `password_md5` \<string|Buffer> md5后的密码,可以是字符串或Buffer
279+
+ `password_md5` \<string|Buffer> md5后的密码,hex字符串或Buffer
160280

161281
----
162282

@@ -172,7 +292,7 @@ client.on("system.login", (data)=>{
172292

173293
## APIs
174294

175-
( [CQHTTP](https://github.com/howmanybots/onebot/blob/master/v11/specs/api/public.md) 大同小异)
295+
(使用 [CQHTTP](https://github.com/howmanybots/onebot/blob/master/v11/specs/api/public.md) 风格的命名和参数)
176296

177297
同步函数会直接返回。异步函数标注为 `async` ,返回的是 `Promise` ,返回值为以下格式的json对象:
178298

@@ -265,3 +385,21 @@ message可以使用 `Array` 格式或 `String` 格式,支持CQ码
265385
+ `client.getLoginInfo()`
266386

267387
----
388+
389+
## oicq.setGlobalConfig(config)
390+
391+
+ `config` \<Object>
392+
393+
全局设置
394+
395+
```js
396+
//要使用默认配置请勿传递该字段
397+
oicq.setGlobalConfig({
398+
web_image_timeout: 0, //下载网络图片的超时时间(0表示系统自己判断)
399+
web_record_timeout: 0, //下载网络语音的超时时间
400+
cache_root: "", //缓存文件夹根目录,需要可写权限,默认主目录下的data文件夹
401+
debug: false,
402+
});
403+
```
404+
405+
----

docs/project.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
|修改名片|||
3535
|修改群名|||
3636
|群公告|||
37-
|其他设置|||
37+
|其他设置|||
3838
|群文件|||
3939
|设置头衔|||
4040
|设置管理|||

0 commit comments

Comments
 (0)