forked from kyubotics/coolq-http-api
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config-schema.json
355 lines (355 loc) · 14.7 KB
/
config-schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
{
"definitions": {},
"$schema": "",
"$id": "https://cqhttp.cc/config-schema.json",
"type": "object",
"title": "CQHTTP 配置",
"properties": {
"host": {
"$id": "#/properties/host",
"type": "string",
"title": "HTTP 服务器 IP",
"description": "HTTP 服务器监听的 IP",
"default": "0.0.0.0",
"examples": [
"127.0.0.1",
"0.0.0.0",
"[::]"
],
"pattern": "^(.*)$"
},
"port": {
"$id": "#/properties/port",
"type": "integer",
"title": "HTTP 服务器端口",
"description": "HTTP 服务器监听的端口",
"default": 5700
},
"use_http": {
"$id": "#/properties/use_http",
"type": "boolean",
"title": "使用 HTTP 接口",
"description": "是否开启 HTTP 接口,即通过 HTTP 调用 API",
"default": true
},
"ws_host": {
"$id": "#/properties/ws_host",
"type": "string",
"title": "WebSocket 服务器 IP",
"description": "WebSocket 服务器监听的 IP",
"default": "0.0.0.0",
"examples": [
"127.0.0.1",
"0.0.0.0",
"[::]"
],
"pattern": "^(.*)$"
},
"ws_port": {
"$id": "#/properties/ws_port",
"type": "integer",
"title": "WebSocket 服务器端口",
"description": "WebSocket 服务器监听的端口",
"default": 6700
},
"use_ws": {
"$id": "#/properties/use_ws",
"type": "boolean",
"title": "使用 WebSocket 服务器",
"description": "是否开启 WebSocket 服务器,可用于调用 API 和推送事件",
"default": false
},
"ws_reverse_url": {
"$id": "#/properties/ws_reverse_url",
"type": "string",
"title": "反向 WebSocket URL",
"description": "反向 WebSocket Event 和事件上报的共用地址",
"default": "",
"examples": [
"ws://127.0.0.1:8080/ws/"
],
"pattern": "^([wW][sS][sS]?:\\/\\/(.*))?$"
},
"ws_reverse_api_url": {
"$id": "#/properties/ws_reverse_api_url",
"type": "string",
"title": "反向 WebSocket API URL",
"description": "反向 WebSocket API 地址,如果为空,则使用 ws_reverse_url 指定的值",
"default": "",
"examples": [
"ws://127.0.0.1:8080/ws/api/"
],
"pattern": "^([wW][sS][sS]?:\\/\\/(.*))?$"
},
"ws_reverse_event_url": {
"$id": "#/properties/ws_reverse_event_url",
"type": "string",
"title": "反向 WebSocket 事件 URL",
"description": "反向 WebSocket 事件上报地址,如果为空,则使用 ws_reverse_url 指定的值",
"default": "",
"examples": [
"ws://127.0.0.1:8080/ws/event/"
],
"pattern": "^([wW][sS][sS]?:\\/\\/(.*))?$"
},
"ws_reverse_reconnect_interval": {
"$id": "#/properties/ws_reverse_reconnect_interval",
"type": "integer",
"title": "反向 WebSocket 重连间隔",
"description": "反向 WebSocket 客户端断线重连间隔,单位毫秒",
"default": 3000
},
"ws_reverse_reconnect_on_code_1000": {
"$id": "#/properties/ws_reverse_reconnect_on_code_1000",
"type": "boolean",
"title": "反向 WebSocket 在 1000 关闭码时重连",
"description": "是否在关闭状态码为 1000 的时候重连",
"default": true
},
"ws_reverse_use_universal_client": {
"$id": "#/properties/ws_reverse_use_universal_client",
"type": "boolean",
"title": "反向 WebSocket 使用 Universal 客户端",
"description": "是否使用 Universal 客户端(使用单个连接传输事件数据和 API 请求)",
"default": false
},
"use_ws_reverse": {
"$id": "#/properties/use_ws_reverse",
"type": "boolean",
"title": "使用反向 WebSocket 服务",
"description": "是否使用反向 WebSocket 服务,即插件作为 WebSocket 客户端主动连接指定的 API 和事件上报地址",
"default": false
},
"post_url": {
"$id": "#/properties/post_url",
"type": "string",
"title": "HTTP 上报 URL",
"description": "消息和事件的上报地址,通过 POST 方式请求,数据以 JSON 格式发送",
"default": "",
"examples": [
"http://127.0.0.1:8080/"
],
"pattern": "^([hH][tT][tT][pP][sS]?:\\/\\/(.*))?$"
},
"post_timeout": {
"$id": "#/properties/post_timeout",
"type": "integer",
"title": "HTTP 上报超时",
"description": "HTTP 上报(即访问 post_url)的超时时间,单位秒,0 表示不设置超时",
"default": 0,
"examples": [
20
]
},
"access_token": {
"$id": "#/properties/access_token",
"type": "string",
"title": "API 访问 token",
"description": "API 访问 token,如果不为空,则会在接收到请求时验证 Authorization 请求头是否为 Bearer xxxxxxxx,xxxxxxxx 为 access token",
"default": "",
"pattern": "^(.*)$"
},
"secret": {
"$id": "#/properties/secret",
"type": "string",
"title": "上报数据签名密钥",
"description": "上报数据签名密钥,如果不为空,则会在 HTTP 上报时对 HTTP 正文进行 HMAC SHA1 哈希,使用 secret 的值作为密钥,计算出的哈希值放在上报的 X-Signature 请求头,例如 X-Signature: sha1=f9ddd4863ace61e64f462d41ca311e3d2c1176e2",
"default": "",
"pattern": "^(.*)$"
},
"post_message_format": {
"$id": "#/properties/post_message_format",
"type": "string",
"title": "上报消息格式",
"default": "string",
"examples": [
"string",
"array"
],
"pattern": "^(string|array)$"
},
"serve_data_files": {
"$id": "#/properties/serve_data_files",
"type": "boolean",
"title": "提供请求 data 目录的文件的功能",
"description": "是否提供请求 data 目录的文件的功能",
"default": false
},
"enable_cors": {
"$id": "#/properties/enable_cors",
"type": "boolean",
"title": "允许跨域请求",
"description": "是否允许跨域请求",
"default": false
},
"update_source": {
"$id": "#/properties/update_source",
"type": "string",
"title": "更新源",
"description": "更新源",
"default": "global",
"examples": [
"global",
"github",
"https://raw.githubusercontent.com/richardchien/coolq-http-api-release/master/"
],
"pattern": "^(.*)$"
},
"update_channel": {
"$id": "#/properties/update_channel",
"type": "string",
"title": "更新通道",
"description": "更新通道,目前有 stable、beta、alpha 三个",
"default": "stable",
"examples": [
"stable",
"beta",
"alpha"
],
"pattern": "^(stable|beta|alpha)$"
},
"auto_check_update": {
"$id": "#/properties/auto_check_update",
"type": "boolean",
"title": "自动检查更新",
"description": "是否自动检查更新(每次启用插件时检查),不启用的情况下,仍然可以在 酷Q 应用菜单中手动检查更新",
"default": false
},
"auto_perform_update": {
"$id": "#/properties/auto_perform_update",
"type": "boolean",
"title": "自动执行更新",
"description": "是否自动执行更新,仅在 auto_check_update 启用时有效,若启用,则插件将在自动检查到更新后,自动下载新版本(需要手动重启 酷Q 以生效)",
"default": false
},
"thread_pool_size": {
"$id": "#/properties/thread_pool_size",
"type": "integer",
"title": "工作线程池大小",
"description": "工作线程池大小,用于异步 API 调用、反向 WebSocket API 调用和一些其它小的异步任务,应根据计算机性能和实际需求适当调节,若设为 0,则使用 CPU 核心数 * 2 + 1",
"default": 4
},
"server_thread_pool_size": {
"$id": "#/properties/server_thread_pool_size",
"type": "integer",
"title": "API 服务器线程池大小",
"description": "API 服务器线程池大小,用于异步处理请求(HTTP 和 WebSocket),应根据计算机性能和实际需求适当调节,若设为 0,则使用 CPU 核心数 * 2 + 1",
"default": 4
},
"convert_unicode_emoji": {
"$id": "#/properties/convert_unicode_emoji",
"type": "boolean",
"title": "在 CQ:emoji 和实际的 Unicode 之间进行转换",
"description": "是否在 CQ:emoji 和实际的 Unicode 之间进行转换,转换可能耗更多时间,但日常情况下影响不大,如果你的机器人需要处理非常大段的消息(上千字),且对性能有要求,可以考虑关闭转换",
"default": true
},
"event_filter": {
"$id": "#/properties/event_filter",
"type": "string",
"title": "事件过滤规则文件",
"description": "指定事件过滤规则文件,见 事件过滤器,留空将不开启事件过滤器",
"default": "",
"examples": [
"filter.json"
],
"pattern": "^(.*)$"
},
"enable_backward_compatibility": {
"$id": "#/properties/enable_backward_compatibility",
"type": "boolean",
"title": "启用旧版兼容性",
"description": "是否启用旧版兼容性,启用时事件上报的数据将和 3.x 版本保持兼容",
"default": false
},
"show_log_console": {
"$id": "#/properties/show_log_console",
"type": "boolean",
"title": "显示日志输出控制台",
"description": "是否显示日志输出控制台",
"default": true
},
"max_log_file_size": {
"$id": "#/properties/max_log_file_size",
"type": "integer",
"title": "最大单日志文件大小",
"description": "最大单日志文件大小,单位字节,默认 6 MB",
"default": 6291456
},
"max_log_files": {
"$id": "#/properties/max_log_files",
"type": "integer",
"title": "最大日志文件备份数量",
"description": "最大日志文件备份数量(采用日志轮替机制)",
"default": 1
},
"log_level": {
"$id": "#/properties/log_level",
"type": "string",
"title": "日志等级",
"description": "日志文件和日志控制台的日志等级,可选 debug、info、warning、error、fatal",
"default": "",
"examples": [
"debug",
"info",
"warning",
"error",
"fatal"
],
"pattern": "^(debug|info|warning|error|fatal)$"
},
"use_extension": {
"$id": "#/properties/use_extension",
"type": "boolean",
"title": "启用扩展机制",
"description": "是否启用扩展机制",
"default": false
},
"disable_coolq_log": {
"$id": "#/properties/disable_coolq_log",
"type": "boolean",
"title": "禁用 酷Q 原生日志",
"description": "是否禁用 酷Q 原生日志,由于使用 酷Q 原生日志可能会导致快速重启时插件卡死,所以默认禁用,如果你不在乎重启时卡死,并且需要在 酷Q 原生日志窗口查看插件的日志,可以将此项设为 false",
"default": true
},
"online_status_detection_method": {
"$id": "#/properties/online_status_detection_method",
"type": "string",
"title": "QQ 在线状态检测方式",
"description": "QQ 在线状态检测方式,默认(get_stranger_info)通过陌生人查询接口判断,设为 log_db 可切换成从 酷Q 的日志数据库判断,具体区别见 其 API 说明",
"default": "get_stranger_info",
"examples": [
"get_stranger_info",
"log_db"
],
"pattern": "^(get_stranger_info|log_db)$"
},
"enable_heartbeat": {
"$id": "#/properties/enable_heartbeat",
"type": "boolean",
"title": "启用心跳机制",
"description": "是否启用心跳机制,启用时会产生类型为 heartbeat 的元事件",
"default": false
},
"heartbeat_interval": {
"$id": "#/properties/heartbeat_interval",
"type": "integer",
"title": "产生心跳元事件的间隔",
"description": "产生心跳元事件的时间间隔,单位毫秒",
"default": 15000
},
"enable_rate_limited_actions": {
"$id": "#/properties/enable_rate_limited_actions",
"type": "boolean",
"title": "启用限速 API 调用的支持",
"description": "是否启用限速 API 调用的支持",
"default": false
},
"rate_limit_interval": {
"$id": "#/properties/rate_limit_interval",
"type": "integer",
"title": "限速 API 调用的排队间隔",
"description": "限速 API 调用的排队间隔时间,单位毫秒",
"default": 500
}
}
}