@alemonjs/qq-bot 2.1.0-alpha.3 → 2.1.0-alpha.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +7 -30
  2. package/dist/assets/index.js +1 -1
  3. package/lib/config.d.ts +8 -0
  4. package/lib/config.js +20 -0
  5. package/lib/desktop.d.ts +1 -3
  6. package/lib/desktop.js +3 -12
  7. package/lib/hook.d.ts +220 -9
  8. package/lib/hook.js +20 -18
  9. package/lib/index.d.ts +5 -6
  10. package/lib/index.js +12 -20
  11. package/lib/index.webhook.d.ts +1 -0
  12. package/lib/index.webhook.js +5 -4
  13. package/lib/index.websoket.d.ts +1 -0
  14. package/lib/index.websoket.js +45 -23
  15. package/lib/message/AT_MESSAGE_CREATE.d.ts +35 -0
  16. package/lib/message/AT_MESSAGE_CREATE.js +1 -0
  17. package/lib/message/CHANNEL_CREATE.d.ts +15 -0
  18. package/lib/message/CHANNEL_CREATE.js +1 -0
  19. package/lib/message/CHANNEL_DELETE.d.ts +15 -0
  20. package/lib/message/CHANNEL_DELETE.js +1 -0
  21. package/lib/message/CHANNEL_UPDATE.d.ts +15 -0
  22. package/lib/message/CHANNEL_UPDATE.js +1 -0
  23. package/lib/message/DIRECT_MESSAGE_CREATE.d.ts +29 -0
  24. package/lib/message/DIRECT_MESSAGE_CREATE.js +1 -0
  25. package/lib/message/DIRECT_MESSAGE_DELETE.d.ts +17 -0
  26. package/lib/message/DIRECT_MESSAGE_DELETE.js +1 -0
  27. package/lib/message/ERROR.d.ts +1 -0
  28. package/lib/message/ERROR.js +1 -0
  29. package/lib/message/GUILD_CREATE.d.ts +15 -0
  30. package/lib/message/GUILD_CREATE.js +1 -0
  31. package/lib/message/GUILD_DELETE.d.ts +15 -0
  32. package/lib/message/GUILD_DELETE.js +1 -0
  33. package/lib/message/GUILD_MEMBER_ADD.d.ts +14 -0
  34. package/lib/message/GUILD_MEMBER_ADD.js +1 -0
  35. package/lib/message/GUILD_MEMBER_REMOVE.d.ts +14 -0
  36. package/lib/message/GUILD_MEMBER_REMOVE.js +1 -0
  37. package/lib/message/GUILD_MEMBER_UPDATE.d.ts +14 -0
  38. package/lib/message/GUILD_MEMBER_UPDATE.js +1 -0
  39. package/lib/message/GUILD_UPDATE.d.ts +15 -0
  40. package/lib/message/GUILD_UPDATE.js +1 -0
  41. package/lib/message/INTERACTION_CREATE.d.ts +53 -0
  42. package/lib/message/INTERACTION_CREATE.js +1 -0
  43. package/lib/message/MESSAGE_CREATE.d.ts +1 -0
  44. package/lib/message/MESSAGE_CREATE.js +1 -0
  45. package/lib/message/MESSAGE_DELETE.d.ts +1 -0
  46. package/lib/message/MESSAGE_DELETE.js +1 -0
  47. package/lib/message/MESSAGE_REACTION_ADD.d.ts +13 -0
  48. package/lib/message/MESSAGE_REACTION_ADD.js +1 -0
  49. package/lib/message/MESSAGE_REACTION_REMOVE.d.ts +13 -0
  50. package/lib/message/MESSAGE_REACTION_REMOVE.js +1 -0
  51. package/lib/message/PUBLIC_MESSAGE_DELETE.d.ts +15 -0
  52. package/lib/message/PUBLIC_MESSAGE_DELETE.js +1 -0
  53. package/lib/message/READY.d.ts +6 -0
  54. package/lib/message/READY.js +1 -0
  55. package/lib/message/group/C2C_MESSAGE_CREATE.d.ts +9 -0
  56. package/lib/message/group/C2C_MESSAGE_CREATE.js +1 -0
  57. package/lib/message/group/C2C_MSG_RECEIVE.d.ts +4 -0
  58. package/lib/message/group/C2C_MSG_RECEIVE.js +1 -0
  59. package/lib/message/group/C2C_MSG_REJECT.d.ts +4 -0
  60. package/lib/message/group/C2C_MSG_REJECT.js +1 -0
  61. package/lib/message/group/FRIEND_ADD.d.ts +4 -0
  62. package/lib/message/group/FRIEND_ADD.js +1 -0
  63. package/lib/message/group/FRIEND_DEL.d.ts +4 -0
  64. package/lib/message/group/FRIEND_DEL.js +1 -0
  65. package/lib/message/group/GROUP_ADD_ROBOT.d.ts +5 -0
  66. package/lib/message/group/GROUP_ADD_ROBOT.js +1 -0
  67. package/lib/message/group/GROUP_AT_MESSAGE_CREATE.d.ts +11 -0
  68. package/lib/message/group/GROUP_AT_MESSAGE_CREATE.js +1 -0
  69. package/lib/message/group/GROUP_DEL_ROBOT.d.ts +5 -0
  70. package/lib/message/group/GROUP_DEL_ROBOT.js +1 -0
  71. package/lib/message/group/GROUP_MSG_RECEIVE.d.ts +5 -0
  72. package/lib/message/group/GROUP_MSG_RECEIVE.js +1 -0
  73. package/lib/message/group/GROUP_MSG_REJECT.d.ts +5 -0
  74. package/lib/message/group/GROUP_MSG_REJECT.js +1 -0
  75. package/lib/register.d.ts +2 -3
  76. package/lib/register.js +313 -189
  77. package/lib/sdk/api.d.ts +197 -0
  78. package/lib/sdk/api.js +294 -925
  79. package/lib/sdk/client.webhook.d.ts +9 -0
  80. package/lib/sdk/{client.js → client.webhook.js} +18 -55
  81. package/lib/sdk/client.websoket.d.ts +9 -0
  82. package/lib/sdk/client.websoket.js +52 -97
  83. package/lib/sdk/config.d.ts +1 -0
  84. package/lib/sdk/instance.d.ts +3 -0
  85. package/lib/sdk/instance.js +93 -0
  86. package/lib/sdk/intents.d.ts +3 -0
  87. package/lib/sdk/intents.js +25 -90
  88. package/lib/sdk/message.d.ts +4 -0
  89. package/lib/sdk/message.group.d.ts +24 -0
  90. package/lib/sdk/message.group.js +1 -0
  91. package/lib/sdk/message.guild.d.ts +38 -0
  92. package/lib/sdk/message.guild.js +1 -0
  93. package/lib/sdk/message.js +1 -0
  94. package/lib/sdk/message.public.d.ts +6 -0
  95. package/lib/sdk/message.public.js +1 -0
  96. package/lib/sdk/typing.d.ts +73 -0
  97. package/lib/sdk/typing.js +1 -0
  98. package/lib/sdk/webhook.secret.d.ts +14 -0
  99. package/lib/sdk/webhook.secret.js +6 -21
  100. package/lib/sends.d.ts +29 -0
  101. package/lib/sends.js +340 -596
  102. package/lib/utils.d.ts +1 -0
  103. package/lib/utils.js +8 -0
  104. package/package.json +9 -5
  105. package/lib/index.group.js +0 -19
  106. package/lib/index.guild.js +0 -36
  107. package/lib/sdk/client.websoket.group.js +0 -221
  108. package/lib/sdk/client.websoket.guild.js +0 -205
  109. package/lib/sdk/counter.js +0 -19
  110. package/lib/sdk/from.js +0 -44
package/lib/sdk/api.js CHANGED
@@ -1,195 +1,132 @@
1
1
  import axios from 'axios';
2
2
  import { config } from './config.js';
3
3
  import FormData from 'form-data';
4
- import { createPicFrom } from './from.js';
4
+ import { createPicFrom } from 'alemonjs/utils';
5
+ import { createAxiosInstance } from './instance.js';
5
6
 
7
+ const BOTS_API_RUL = 'https://bots.qq.com';
8
+ const API_URL_SANDBOX = 'https://sandbox.api.sgroup.qq.com';
9
+ const API_URL = 'https://api.sgroup.qq.com';
10
+ const msgMap = new Map();
6
11
  class QQBotAPI {
7
- /**
8
- * qq机器人
9
- */
10
- BOTS_API_RUL = 'https://bots.qq.com';
11
- /**
12
- * qq群 沙河接口
13
- */
14
- API_URL_SANDBOX = 'https://sandbox.api.sgroup.qq.com';
15
- /**
16
- * qq群
17
- */
18
- API_URL = 'https://api.sgroup.qq.com';
19
- /**
20
- * 得到鉴权
21
- * @param app_id
22
- * @param clientSecret
23
- * @returns
24
- */
25
- getAuthentication(app_id, clientSecret) {
26
- return axios.post(`${this.BOTS_API_RUL}/app/getAppAccessToken`, {
27
- appId: app_id,
28
- clientSecret: clientSecret
12
+ getAuthentication() {
13
+ const app_id = config.get('app_id');
14
+ const secret = config.get('secret');
15
+ const baseUrlAppAccessToken = config.get('base_url_app_access_token');
16
+ const params = {
17
+ url: '/app/getAppAccessToken'
18
+ };
19
+ if (baseUrlAppAccessToken) {
20
+ params.baseURL = baseUrlAppAccessToken;
21
+ }
22
+ const service = axios.create({
23
+ baseURL: BOTS_API_RUL,
24
+ timeout: 20000
25
+ });
26
+ return createAxiosInstance(service, {
27
+ ...params,
28
+ method: 'post',
29
+ data: {
30
+ appId: `${app_id}`,
31
+ clientSecret: `${secret}`
32
+ }
29
33
  });
30
34
  }
31
- /**
32
- * group
33
- * @param config
34
- * @returns
35
- */
36
- async groupService(options) {
35
+ groupService(options) {
37
36
  const app_id = config.get('app_id');
38
- // 群聊是加密token
39
37
  const token = config.get('access_token');
40
- const service = await axios.create({
41
- baseURL: this.API_URL,
38
+ const service = axios.create({
39
+ baseURL: API_URL,
42
40
  timeout: 20000,
43
41
  headers: {
44
42
  'X-Union-Appid': app_id,
45
- 'Authorization': `QQBot ${token}`
43
+ Authorization: `QQBot ${token}`
46
44
  }
47
45
  });
48
- return service(options);
49
- }
50
- /**
51
- * guild
52
- * @param opstion
53
- * @returns
54
- */
55
- async guildServer(opstion) {
46
+ return createAxiosInstance(service, options);
47
+ }
48
+ guildServer(opstion) {
56
49
  const app_id = config.get('app_id');
57
50
  const token = config.get('token');
58
51
  const sandbox = config.get('sandbox');
59
- const service = await axios.create({
60
- baseURL: sandbox ? this.API_URL_SANDBOX : this.API_URL,
52
+ const service = axios.create({
53
+ baseURL: sandbox ? API_URL_SANDBOX : API_URL,
61
54
  timeout: 20000,
62
55
  headers: {
63
56
  Authorization: `Bot ${app_id}.${token}`
64
57
  }
65
58
  });
66
- return service(opstion);
59
+ return createAxiosInstance(service, opstion);
67
60
  }
68
- /**
69
- * 得到鉴权
70
- * @returns
71
- */
72
- async gateway() {
61
+ gateway() {
73
62
  const mode = config.get('mode');
63
+ const baseUrlGateway = config.get('base_url_gateway');
64
+ const params = {
65
+ url: '/gateway'
66
+ };
67
+ if (baseUrlGateway) {
68
+ params.baseURL = baseUrlGateway;
69
+ }
74
70
  if (mode === 'group') {
75
- return this.groupService({
76
- url: '/gateway'
77
- }).then(res => res?.data);
71
+ return this.groupService(params);
78
72
  }
79
73
  else if (mode === 'guild') {
80
- return this.guildServer({
81
- url: '/gateway'
82
- }).then(res => res?.data);
74
+ return this.guildServer(params);
83
75
  }
84
76
  else {
85
- // 默认group
86
- return this.groupService({
87
- url: '/gateway'
88
- }).then(res => res?.data);
77
+ return this.groupService(params);
89
78
  }
90
79
  }
91
- /**
92
- * 发送私聊消息
93
- * @param openid
94
- * @param content
95
- * @param msg_id
96
- * @returns
97
- * 0 文本 1 图文 2 md 3 ark 4 embed
98
- */
99
- async usersOpenMessages(openid, data, _msg_id) {
80
+ usersOpenMessages(openid, data) {
81
+ const db = {
82
+ ...(data.event_id
83
+ ? { event_id: data.event_id }
84
+ : {
85
+ msg_seq: this.getMessageSeq(data.msg_id || '')
86
+ }),
87
+ ...data
88
+ };
100
89
  return this.groupService({
101
90
  url: `/v2/users/${openid}/messages`,
102
91
  method: 'post',
103
- data: data
104
- }).then(res => res?.data);
105
- }
106
- // /\[🔗[^\]]+\]\([^)]+\)|@everyone/.test(content)
107
- #map = new Map();
108
- /**
109
- * 得到消息序列
110
- * @param MessageId
111
- * @returns
112
- */
92
+ data: db
93
+ });
94
+ }
113
95
  getMessageSeq(MessageId) {
114
- let seq = this.#map.get(MessageId) || 0;
96
+ let seq = msgMap.get(MessageId) || 0;
115
97
  seq++;
116
- this.#map.set(MessageId, seq);
117
- // 如果映射表大小超过 100,则删除最早添加的 MessageId
118
- if (this.#map.size > 100) {
119
- const firstKey = this.#map.keys().next().value;
120
- if (firstKey)
121
- this.#map.delete(firstKey);
98
+ msgMap.set(MessageId, seq);
99
+ if (msgMap.size > 100) {
100
+ const firstKey = msgMap.keys().next().value;
101
+ if (firstKey) {
102
+ msgMap.delete(firstKey);
103
+ }
122
104
  }
123
105
  return seq;
124
106
  }
125
- /**
126
- * 发送群聊消息
127
- * @param group_openid
128
- * @param data
129
- * @returns
130
- */
131
- async groupOpenMessages(group_openid, data) {
107
+ groupOpenMessages(group_openid, data) {
108
+ const db = {
109
+ ...(data.event_id
110
+ ? { event_id: data.event_id }
111
+ : {
112
+ msg_seq: this.getMessageSeq(data.msg_id || '')
113
+ }),
114
+ ...data
115
+ };
132
116
  return this.groupService({
133
117
  url: `/v2/groups/${group_openid}/messages`,
134
118
  method: 'post',
135
- data: data
136
- }).then(res => res?.data);
137
- }
138
- /**
139
- * 发送私聊富媒体文件
140
- * @param openid
141
- * @param data
142
- * @returns
143
- * 1 图文 2 视频 3 语言 4 文件
144
- * 图片:png/jpg,视频:mp4,语音:silk
145
- */
146
- async postRichMediaByUsers(openid, data) {
147
- return this.groupService({
148
- url: `/v2/users/${openid}/files`,
149
- method: 'post',
150
- data: data
151
- }).then(res => res?.data);
152
- }
153
- /**
154
- * 发送私聊富媒体文件
155
- * @param openid
156
- * @param data
157
- * @returns
158
- * 1 图文 2 视频 3 语言 4 文件
159
- * 图片:png/jpg,视频:mp4,语音:silk
160
- */
161
- async userFiles(openid, data) {
119
+ data: db
120
+ });
121
+ }
122
+ postRichMediaByUser(openid, data) {
162
123
  return this.groupService({
163
124
  url: `/v2/users/${openid}/files`,
164
125
  method: 'post',
165
126
  data: data
166
- }).then(res => res?.data);
167
- }
168
- /**
169
- * 发送群里文件
170
- * @param openid
171
- * @param data
172
- * @returns
173
- * 1 图文 2 视频 3 语言 4 文件
174
- * 图片:png/jpg,视频:mp4,语音:silk
175
- */
176
- async postRichMediaByGroup(openid, data) {
177
- return this.groupService({
178
- url: `/v2/groups/${openid}/files`,
179
- method: 'post',
180
- data: {
181
- srv_send_msg: false,
182
- ...data
183
- }
184
- }).then(res => res?.data);
185
- }
186
- /**
187
- *
188
- * @param openid
189
- * @param data
190
- * @returns
191
- */
192
- async groupsFiles(openid, data) {
127
+ });
128
+ }
129
+ postRichMediaByGroup(openid, data) {
193
130
  return this.groupService({
194
131
  url: `/v2/groups/${openid}/files`,
195
132
  method: 'post',
@@ -197,172 +134,35 @@ class QQBotAPI {
197
134
  srv_send_msg: false,
198
135
  ...data
199
136
  }
200
- }).then(res => res?.data);
201
- }
202
- /**
203
- * 创建模板
204
- * *********
205
- * 使用该方法,你需要申请模板Id
206
- * 并设置markdown源码为{{.text_0}}{{.text_1}}
207
- * {{.text_2}}{{.text_3}}{{.text_4}}{{.text_5}}
208
- * {{.text_6}}{{.text_7}}{{.text_8}}{{.text_9}}
209
- * 当前,你也可以传递回调对key和values进行休整
210
- * @param custom_template_id
211
- * @param mac 默认 9
212
- * @param callBack 默认 (key,values)=>({key,values})
213
- * @returns
214
- */
215
- createTemplate(custom_template_id, mac = 10, callBack = (key, values) => ({ key, values })) {
216
- let size = -1;
217
- const params = [];
218
- const Id = custom_template_id;
219
- /**
220
- * 消耗一个参数
221
- * @param value 值
222
- * @param change 是否换行
223
- * @returns
224
- */
225
- const text = (value, change = false) => {
226
- // 仅限push
227
- if (size > mac - 1)
228
- return;
229
- size++;
230
- params.push(callBack(`text_${size}`, [`${value}${change ? '\r' : ''}`]));
231
- };
232
- /**
233
- * 消耗一个参数
234
- * @param start 开始的值
235
- * @param change 是否换行
236
- * @returns
237
- */
238
- const prefix = (start, label) => {
239
- text(`${start}[${label}]`);
240
- };
241
- /**
242
- * 消耗一个参数
243
- * @param param0.value 发送的值
244
- * @param param0.enter 是否自动发送
245
- * @param param0.reply 是否回复
246
- * @param param0.change 是否换行
247
- * @param param0.end 尾部字符串
248
- */
249
- const suffix = ({ value, enter = true, reply = false, change = false, end = '' }) => {
250
- text(`(mqqapi://aio/inlinecmd?command=${value}&enter=${enter}&reply=${reply})${end}${change ? '\r' : ''}`);
251
- };
252
- /**
253
- * 消耗2个参数
254
- * @param param0.label 显示的值
255
- * @param param0.value 发送的值
256
- * @param param0.enter 是否自动发送
257
- * @param param0.reply 是否回复
258
- * @param param0.change 是否换行
259
- * @param param0.start 头部字符串
260
- * @param param0.end 尾部字符串
261
- */
262
- const button = ({ label, value, start = '', end = '', enter = true, reply = false, change = false }) => {
263
- // size 只少留两个
264
- if (size > mac - 1 - 2)
265
- return;
266
- prefix(start, label);
267
- suffix({ value, enter, reply, change, end });
268
- };
269
- /**
270
- * **********
271
- * 代码块
272
- * **********
273
- * 跟在后面
274
- * 前面需要设置换行
275
- * 消耗4个参数
276
- * @param val
277
- * @returns
278
- */
279
- const code = (val) => {
280
- // size 至少留4个
281
- if (size > mac - 1 - 4)
282
- return;
283
- text('``');
284
- text('`javascript\r' + val);
285
- text('\r`');
286
- text('``\r');
287
- };
288
- const getParam = () => {
289
- return {
290
- msg_type: 2,
291
- markdown: {
292
- custom_template_id: Id,
293
- params
294
- }
295
- };
296
- };
297
- return {
298
- size,
299
- text,
300
- prefix,
301
- suffix,
302
- button,
303
- code,
304
- getParam
305
- };
137
+ });
306
138
  }
307
- /**
308
- *
309
- * @param openid
310
- * @param message_id
311
- * @returns
312
- */
313
139
  userMessageDelete(openid, message_id) {
314
140
  return this.groupService({
315
141
  url: `/v2/users/${openid}/messages/${message_id}`,
316
142
  method: 'delete'
317
- }).then(res => res?.data);
318
- }
319
- /**
320
- *
321
- * @param group_openid
322
- * @param message_id
323
- * @returns
324
- */
143
+ });
144
+ }
325
145
  grouMessageDelte(group_openid, message_id) {
326
146
  return this.groupService({
327
147
  url: `/v2/groups/${group_openid}/messages/${message_id}`,
328
148
  method: 'delete'
329
- }).then(res => res?.data);
330
- }
331
- /**
332
- * 创建form
333
- * @param image
334
- * @param msg_id
335
- * @param content
336
- * @param name
337
- * @returns
338
- */
339
- async createFrom(image, msg_id, content, Name = 'image.jpg') {
340
- const from = await createPicFrom(image, Name);
341
- if (!from)
342
- return false;
343
- const { picData, name } = from;
149
+ });
150
+ }
151
+ async channelsMessages(channel_id, message, image) {
344
152
  const formdata = new FormData();
345
- formdata.append('msg_id', msg_id);
346
- if (typeof content === 'string')
347
- formdata.append('content', content);
348
- formdata.append('file_image', picData, name);
349
- return formdata;
350
- }
351
- /**
352
- * ************
353
- * 消息-图片接口
354
- * ***********
355
- */
356
- /**
357
- * 发送buffer图片
358
- * @param id 私信传频道id,公信传子频道id
359
- * @param message {消息编号,图片,内容}
360
- * @param isGroup 是否是群聊
361
- * @returns
362
- */
363
- async postImage(channel_id, message) {
364
- const formdata = await this.createFrom(message.image, message.msg_id, message.content, message.name);
365
- const dary = formdata != false ? formdata.getBoundary() : '';
153
+ for (const key in message) {
154
+ if (message[key] !== undefined) {
155
+ formdata.append(key, message[key]);
156
+ }
157
+ }
158
+ if (image) {
159
+ const from = await createPicFrom({ image });
160
+ if (from) {
161
+ const { picData, name } = from;
162
+ formdata.append('file_image', picData, name);
163
+ }
164
+ }
165
+ const dary = formdata.getBoundary();
366
166
  return this.guildServer({
367
167
  method: 'post',
368
168
  url: `/channels/${channel_id}/messages`,
@@ -370,17 +170,23 @@ class QQBotAPI {
370
170
  'Content-Type': `multipart/form-data; boundary=${dary}`
371
171
  },
372
172
  data: formdata
373
- }).then(res => res?.data);
374
- }
375
- /**
376
- * 私聊发送buffer图片
377
- * @param id 私信传频道id,公信传子频道id
378
- * @param message {消息编号,图片,内容}
379
- * @returns
380
- */
381
- async postDirectImage(guild_id, message) {
382
- const formdata = await this.createFrom(message.image, message.msg_id, message.content, message.name);
383
- const dary = formdata != false ? formdata.getBoundary() : '';
173
+ });
174
+ }
175
+ async dmsMessages(guild_id, message, image) {
176
+ const formdata = new FormData();
177
+ for (const key in message) {
178
+ if (message[key] !== undefined) {
179
+ formdata.append(key, message[key]);
180
+ }
181
+ }
182
+ if (image) {
183
+ const from = await createPicFrom({ image });
184
+ if (from) {
185
+ const { picData, name } = from;
186
+ formdata.append('file_image', picData, name);
187
+ }
188
+ }
189
+ const dary = formdata.getBoundary();
384
190
  return this.guildServer({
385
191
  method: 'post',
386
192
  url: `/dms/${guild_id}/messages`,
@@ -388,289 +194,131 @@ class QQBotAPI {
388
194
  'Content-Type': `multipart/form-data; boundary=${dary}`
389
195
  },
390
196
  data: formdata
391
- }).then(res => res?.data);
392
- }
393
- /**
394
- * ********
395
- * 用户api
396
- * *******
397
- */
398
- /**
399
- * 获取用户详情
400
- * @param message
401
- * @returns
402
- */
403
- async usersMe() {
197
+ });
198
+ }
199
+ usersMe() {
404
200
  return this.guildServer({
405
201
  method: 'get',
406
- url: `/users/@me`
407
- }).then(res => res?.data);
408
- }
409
- /**
410
- * 获取用户频道列表
411
- * @param message
412
- * @returns
413
- */
414
- async usersMeGuilds(params) {
202
+ url: '/users/@me'
203
+ });
204
+ }
205
+ usersMeGuilds(params) {
415
206
  return this.guildServer({
416
207
  method: 'get',
417
- url: `/users/@me/guilds`,
208
+ url: '/users/@me/guilds',
418
209
  params
419
- }).then(res => res?.data);
420
- }
421
- /**
422
- * **********
423
- * 频道api
424
- * **********
425
- */
426
- /**
427
- * 获取频道详细
428
- * @param guild_id
429
- * @returns
430
- */
431
- async guilds(guild_id) {
210
+ });
211
+ }
212
+ guilds(guild_id) {
432
213
  return this.guildServer({
433
214
  method: 'get',
434
215
  url: `/guilds/${guild_id}`
435
- }).then(res => res?.data);
436
- }
437
- /**
438
- * ************
439
- * 子频道api
440
- * ***********
441
- */
442
- /**
443
- * 获取子频道列表
444
- * @param guild_id
445
- * @returns
446
- */
447
- async guildsChannels(guild_id) {
216
+ });
217
+ }
218
+ guildsChannels(guild_id) {
448
219
  return this.guildServer({
449
220
  method: 'get',
450
221
  url: `/guilds/${guild_id}/channels`
451
- }).then(res => res?.data);
452
- }
453
- /**
454
- * 获取子频道详情
455
- * @param channel_id
456
- * @returns
457
- */
458
- async channels(channel_id) {
222
+ });
223
+ }
224
+ channels(channel_id) {
459
225
  return this.guildServer({
460
226
  method: 'get',
461
227
  url: `/channels/${channel_id}`
462
- }).then(res => res?.data);
463
- }
464
- /**
465
- * 创建子频道
466
- * @param guild_id
467
- * @returns
468
- */
469
- async guildsChannelsCreate(guild_id, data) {
228
+ });
229
+ }
230
+ guildsChannelsCreate(guild_id, data) {
470
231
  return this.guildServer({
471
232
  method: 'post',
472
233
  url: `/guilds/${guild_id}/channels`,
473
234
  data
474
- }).then(res => res?.data);
475
- }
476
- /**
477
- * 创建子频道
478
- * @param channel_id
479
- * @returns
480
- */
481
- async guildsChannelsUpdate(channel_id, data) {
235
+ });
236
+ }
237
+ guildsChannelsUpdate(channel_id, data) {
482
238
  return this.guildServer({
483
239
  method: 'PATCH',
484
240
  url: `/channels/${channel_id}`,
485
241
  data
486
- }).then(res => res?.data);
487
- }
488
- /**
489
- * 删除子频道
490
- * @param channel_id
491
- * @param data
492
- * @returns
493
- */
494
- async guildsChannelsdelete(channel_id, data) {
242
+ });
243
+ }
244
+ guildsChannelsdelete(channel_id, data) {
495
245
  return this.guildServer({
496
246
  method: 'DELETE',
497
247
  url: `/channels/${channel_id}`,
498
248
  data
499
- }).then(res => res?.data);
500
- }
501
- /**
502
- * 获取在线成员数
503
- * @param channel_id
504
- * @returns
505
- */
506
- async channelsChannelOnlineNums(channel_id) {
249
+ });
250
+ }
251
+ channelsChannelOnlineNums(channel_id) {
507
252
  return this.guildServer({
508
253
  method: 'GET',
509
254
  url: `/channels/${channel_id}/online_nums`
510
- }).then(res => res?.data);
511
- }
512
- /**
513
- * *********
514
- * 成员api
515
- * *********
516
- */
517
- /**
518
- * 获取频道成员列表
519
- * @param guild_id
520
- * @returns
521
- */
522
- async guildsMembers(guild_id, params) {
255
+ });
256
+ }
257
+ guildsMembers(guild_id, params) {
523
258
  return this.guildServer({
524
259
  method: 'GET',
525
260
  url: `/guilds/${guild_id}/members`,
526
261
  params
527
- }).then(res => res?.data);
528
- }
529
- /**
530
- * 获取频道身份组成员列表
531
- * @param guild_id
532
- * @param role_id
533
- * @param params
534
- * @returns
535
- */
536
- async guildsRolesMembers(guild_id, role_id, params) {
262
+ });
263
+ }
264
+ guildsRolesMembers(guild_id, role_id, params) {
537
265
  return this.guildServer({
538
266
  method: 'GET',
539
267
  url: `/guilds/${guild_id}/roles/${role_id}/members`,
540
268
  params
541
- }).then(res => res?.data);
542
- }
543
- /**
544
- * 获取成员详情
545
- * @param guild_id
546
- * @param user_id
547
- * @returns
548
- */
549
- async guildsMembersMessage(guild_id, user_id) {
269
+ });
270
+ }
271
+ guildsMembersMessage(guild_id, user_id) {
550
272
  return this.guildServer({
551
273
  method: 'GET',
552
274
  url: `/guilds/${guild_id}/members/${user_id}`
553
- }).then(res => res?.data);
554
- }
555
- /**
556
- * 删除频道成员
557
- * @param guild_id
558
- * @param user_id
559
- * @returns
560
- */
561
- async guildsMembersDelete(guild_id, user_id) {
275
+ });
276
+ }
277
+ guildsMembersDelete(guild_id, user_id) {
562
278
  return this.guildServer({
563
279
  method: 'DELETE',
564
280
  url: `/guilds/${guild_id}/members/${user_id}`
565
- }).then(res => res?.data);
566
- }
567
- /**
568
- * 获取指定消息
569
- * @param channel_id
570
- * @param message_id
571
- * @returns
572
- */
573
- async channelsMessages(channel_id, message_id) {
281
+ });
282
+ }
283
+ channelsMessagesById(channel_id, message_id) {
574
284
  return this.guildServer({
575
285
  method: 'GET',
576
286
  url: `/channels/${channel_id}/messages/${message_id}`
577
- }).then(res => res?.data);
578
- }
579
- /**
580
- * 发送消息
581
- * @param channel_id
582
- * @param message_id
583
- * @param data
584
- * @returns
585
- */
586
- async channelsMessagesPost(channel_id, data) {
587
- return this.guildServer({
588
- method: 'POST',
589
- url: `/channels/${channel_id}/messages`,
590
- data
591
- }).then(res => res?.data);
592
- }
593
- /**
594
- * 撤回消息
595
- * @param channel_id
596
- * @param message_id
597
- * @param hidetip
598
- * @returns
599
- */
600
- async channelsMessagesDelete(channel_id, message_id, hidetip = true) {
287
+ });
288
+ }
289
+ channelsMessagesDelete(channel_id, message_id, hidetip = true) {
601
290
  return this.guildServer({
602
291
  method: 'DELETE',
603
292
  url: `/channels/${channel_id}/messages/${message_id}?hidetip=${hidetip}`
604
- }).then(res => res?.data);
605
- }
606
- /**
607
- * ***********
608
- * 频道身份api
609
- * ***********
610
- */
611
- /**
612
- * 获取频道身份组列表
613
- * @param guild_id 频道id
614
- * @returns
615
- */
616
- async guildsRoles(guild_id) {
293
+ });
294
+ }
295
+ guildsRoles(guild_id) {
617
296
  return this.guildServer({
618
297
  method: 'GET',
619
298
  url: `/guilds/${guild_id}/roles`
620
- }).then(res => res?.data);
621
- }
622
- /**
623
- * 创建频道身份组
624
- * @param guild_id 频道id
625
- * @param {object} data 参数
626
- * @param {object?} data.name 身份组名称
627
- * @param {object?} data.color ARGB 的 HEX 十六进制颜色值转换后的十进制数值
628
- * @param {object?} data.hoist 在成员列表中单独展示: 0-否, 1-是
629
- * @returns
630
- */
631
- async guildsRolesPost(guild_id, data) {
299
+ });
300
+ }
301
+ guildsRolesPost(guild_id, data) {
632
302
  return this.guildServer({
633
303
  method: 'POST',
634
304
  url: `/guilds/${guild_id}/roles`,
635
305
  data
636
- }).then(res => res?.data);
637
- }
638
- /**
639
- * 修改频道身份组
640
- * @param guild_id 频道id
641
- * @param {object} data 参数
642
- * @param {object?} data.name 身份组名称
643
- * @param {object?} data.color ARGB 的 HEX 十六进制颜色值转换后的十进制数值
644
- * @param {object?} data.hoist 在成员列表中单独展示: 0-否, 1-是
645
- * @returns
646
- */
647
- async guildsRolesPatch(guild_id, role_id, data) {
306
+ });
307
+ }
308
+ guildsRolesPatch(guild_id, role_id, data) {
648
309
  return this.guildServer({
649
310
  method: 'PATCH',
650
311
  url: `/guilds/${guild_id}/roles/${role_id}`,
651
312
  data
652
- }).then(res => res?.data);
653
- }
654
- /**
655
- * 删除频道身份组
656
- * @param guild_id 频道id
657
- * @param role_id 身份组id
658
- */
659
- async guildsRolesDelete(guild_id, role_id) {
313
+ });
314
+ }
315
+ guildsRolesDelete(guild_id, role_id) {
660
316
  return this.guildServer({
661
317
  method: 'DELETE',
662
318
  url: `/guilds/${guild_id}/roles/${role_id}`
663
- }).then(res => res?.data);
664
- }
665
- /**
666
- * 将成员添加到频道身份组
667
- * @param guild_id 频道id
668
- * @param channel_id 子频道id
669
- * @param user_id 用户id
670
- * @param role_id 身份组id
671
- * @returns
672
- */
673
- async guildsRolesMembersPut(guild_id, channel_id, user_id, role_id) {
319
+ });
320
+ }
321
+ guildsRolesMembersPut(guild_id, channel_id, user_id, role_id) {
674
322
  return this.guildServer({
675
323
  method: 'PUT',
676
324
  url: `/guilds/${guild_id}/members/${user_id}/roles/${role_id}`,
@@ -679,17 +327,9 @@ class QQBotAPI {
679
327
  id: channel_id
680
328
  }
681
329
  }
682
- }).then(res => res?.data);
683
- }
684
- /**
685
- * 将成员从频道身份组移除
686
- * @param guild_id 频道id
687
- * @param channel_id 子频道id
688
- * @param user_id 用户id
689
- * @param role_id 身份组id
690
- * @returns
691
- */
692
- async guildsRolesMembersDelete(guild_id, channel_id, user_id, role_id) {
330
+ });
331
+ }
332
+ guildsRolesMembersDelete(guild_id, channel_id, user_id, role_id) {
693
333
  return this.guildServer({
694
334
  method: 'DELETE',
695
335
  url: `/guilds/${guild_id}/members/${user_id}/roles/${role_id}`,
@@ -698,31 +338,15 @@ class QQBotAPI {
698
338
  id: channel_id
699
339
  }
700
340
  }
701
- }).then(res => res?.data);
702
- }
703
- /**
704
- * **********
705
- * 子频道权限api
706
- * **********
707
- */
708
- /**
709
- * 获取子频道用户权限
710
- * @param channel_id 子频道id
711
- * @param user_id 用户id
712
- */
713
- async channelsPermissions(channel_id, user_id) {
341
+ });
342
+ }
343
+ channelsPermissions(channel_id, user_id) {
714
344
  return this.guildServer({
715
345
  method: 'GET',
716
346
  url: `/channels/${channel_id}/members/${user_id}/permissions`
717
- }).then(res => res?.data);
718
- }
719
- /**
720
- * 修改子频道用户权限
721
- * @param channel_id 子频道id
722
- * @param user_id 用户id
723
- * @param 参数包括add和remove两个字段分别表示授予的权限以及删除的权限。要授予用户权限即把add对应位置 1,删除用户权限即把remove对应位置 1。当两个字段同一位都为 1,表现为删除权限。
724
- */
725
- async channelsPermissionsPut(channel_id, user_id, add, remove) {
347
+ });
348
+ }
349
+ channelsPermissionsPut(channel_id, user_id, add, remove) {
726
350
  return this.guildServer({
727
351
  method: 'PUT',
728
352
  url: `/channels/${channel_id}/members/${user_id}/permissions`,
@@ -730,453 +354,198 @@ class QQBotAPI {
730
354
  add,
731
355
  remove
732
356
  }
733
- }).then(res => res?.data);
734
- }
735
- /**
736
- * *******
737
- * 消息api
738
- * ********
739
- */
740
- /**
741
- * ************
742
- * 消息频率api
743
- * **********
744
- */
745
- /**
746
- * 查询频道消息频率限制
747
- * @param guild_id 频道id
748
- * @returns
749
- */
750
- async guildsMessageSetting(guild_id) {
357
+ });
358
+ }
359
+ guildsMessageSetting(guild_id) {
751
360
  return this.guildServer({
752
361
  method: 'GET',
753
362
  url: `/guilds/${guild_id}/message/setting`
754
- }).then(res => res?.data);
755
- }
756
- /**
757
- * ***********
758
- * 私信api
759
- * **********
760
- */
761
- /**
762
- * 创建私信会话
763
- * @param recipient_id 接收者 id
764
- * @param source_guild_id 源频道 id
765
- * @returns
766
- */
767
- async usersMeDms() {
768
- return this.guildServer({
769
- method: 'POST',
770
- url: `/users/@me/dms`
771
- }).then(res => res?.data);
772
- }
773
- /**
774
- * 发送私信
775
- * @param guild_id
776
- * @returns
777
- */
778
- async dmsMessage(guild_id, data) {
363
+ });
364
+ }
365
+ usersMeDms() {
779
366
  return this.guildServer({
780
367
  method: 'POST',
781
- url: `/dms/${guild_id}/messages`,
782
- data
783
- }).then(res => res?.data);
784
- }
785
- /**
786
- * 撤回私信
787
- * @param guild_id
788
- * @param data
789
- * @returns
790
- */
791
- async dmsMessageDelete(guild_id, message_id, hidetip = true) {
368
+ url: '/users/@me/dms'
369
+ });
370
+ }
371
+ dmsMessageDelete(guild_id, message_id, hidetip = true) {
792
372
  return this.guildServer({
793
373
  method: 'DELETE',
794
374
  url: `/dms/${guild_id}/messages/${message_id}?hidetip=${hidetip}`
795
- }).then(res => res?.data);
796
- }
797
- /**
798
- * *********
799
- * 禁言api
800
- * *******
801
- */
802
- /**
803
- * 全体禁言(非管理员)
804
- * @param guild_id 频道id
805
- * @param data { mute_end_timestamp:禁言结束时间戳, mute_seconds:禁言时长 } 两个参数必须传一个 优先级 mute_end_timestamp > mute_seconds
806
- * 将mute_end_timestamp或mute_seconds传值为字符串'0',则表示解除全体禁言
807
- */
808
- async guildsMuteAll(guild_id, data) {
375
+ });
376
+ }
377
+ guildsMuteAll(guild_id, data) {
809
378
  return this.guildServer({
810
379
  method: 'PATCH',
811
380
  url: `/guilds/${guild_id}/mute`,
812
381
  data
813
- }).then(res => res?.data);
814
- }
815
- /**
816
- * 频道指定成员禁言
817
- * @param guild_id 频道id
818
- * @param user_id 用户id
819
- * @param data { mute_end_timestamp:禁言结束时间戳, mute_seconds:禁言时长 } 两个参数必须传一个 优先级 mute_end_timestamp > mute_seconds
820
- * 将mute_end_timestamp或mute_seconds传值为字符串'0',则表示解除禁言
821
- * @returns
822
- */
823
- async guildsMemberMute(guild_id, user_id, data) {
382
+ });
383
+ }
384
+ guildsMemberMute(guild_id, user_id, data) {
824
385
  return this.guildServer({
825
386
  method: 'PATCH',
826
387
  url: `/guilds/${guild_id}/members/${user_id}/mute`,
827
388
  data
828
- }).then(res => res?.data);
829
- }
830
- /**
831
- * 频道批量禁言
832
- * @param guild_id 频道id
833
- * @param data { mute_end_timestamp:禁言结束时间戳, mute_seconds:禁言时长, user_ids:用户id数组 } 两个参数必须传一个 优先级 mute_end_timestamp > mute_seconds
834
- * 将mute_end_timestamp或mute_seconds传值为字符串'0',则表示解除禁言
835
- */
836
- async guildsMute(guild_id, data) {
389
+ });
390
+ }
391
+ guildsMute(guild_id, data) {
837
392
  return this.guildServer({
838
393
  method: 'PATCH',
839
394
  url: `/guilds/${guild_id}/mute`,
840
395
  data
841
- }).then(res => res?.data);
842
- }
843
- /**
844
- * *******
845
- * 公告api
846
- * *******
847
- */
848
- /**
849
- * 创建频道公告
850
- * 公告类型分为 消息类型的频道公告 和 推荐子频道类型的频道公告
851
- * 详见 https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/content/announces/post_guild_announces.html#%E5%8A%9F%E8%83%BD%E6%8F%8F%E8%BF%B0
852
- * @param guild_id 频道id
853
- * @param data { message_id:消息id, channel_id:频道id, announces_type:公告类型, recommend_channels:推荐频道id数组 }
854
- * @param channel_id 子频道id 消息id存在时必须传
855
- * @param announces_type 0:成员公告 1:欢迎公告 默认为 0
856
- * @param recommend_channels 推荐频道id数组 "recommend_channels": [{ "channel_id": "xxxx","introduce": "推荐语" }]
857
- * @returns 返回Announces 对象 (https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/content/announces/model.html#Announces)
858
- */
859
- async guildsAnnounces(guild_id, data) {
396
+ });
397
+ }
398
+ guildsAnnounces(guild_id, data) {
860
399
  return this.guildServer({
861
400
  method: 'POST',
862
401
  url: `/guilds/${guild_id}/announces`,
863
402
  data
864
- }).then(res => res?.data);
865
- }
866
- /**
867
- * 删除频道公告
868
- * @param guild_id 频道id
869
- * @param message_id 消息id message_id 有值时,会校验 message_id 合法性,若不校验校验 message_id,请将 message_id 设置为 all
870
- * @returns
871
- */
872
- async guildsAnnouncesDelete(guild_id, message_id) {
403
+ });
404
+ }
405
+ guildsAnnouncesDelete(guild_id, message_id) {
873
406
  return this.guildServer({
874
407
  method: 'DELETE',
875
408
  url: `/guilds/${guild_id}/announces/${message_id}`
876
- }).then(res => res?.data);
877
- }
878
- /**
879
- * **********
880
- * 精华消息api
881
- * **********
882
- */
883
- /**
884
- * 添加精华消息
885
- * @param channel_id 频道id
886
- * @param message_id 消息id
887
- * @returns 返回 PinsMessage对象 { "guild_id": "xxxxxx", "channel_id": "xxxxxx", "message_ids": ["xxxxx"]}
888
- * @returns message_ids 为当前请求后子频道内所有精华消息 message_id 数组
889
- */
890
- async channelsPinsPut(channel_id, message_id) {
409
+ });
410
+ }
411
+ channelsPinsPut(channel_id, message_id) {
891
412
  return this.guildServer({
892
413
  method: 'PUT',
893
414
  url: `/channels/${channel_id}/pins/${message_id}`
894
- }).then(res => res?.data);
895
- }
896
- /**
897
- * 删除精华消息
898
- * @param channel_id 子频道id
899
- * @param message_id 消息id
900
- * 删除子频道内全部精华消息,请将 message_id 设置为 all
901
- * @returns
902
- */
903
- async channelsPinsDelete(channel_id, message_id) {
415
+ });
416
+ }
417
+ channelsPinsDelete(channel_id, message_id) {
904
418
  return this.guildServer({
905
419
  method: 'DELETE',
906
420
  url: `/channels/${channel_id}/pins/${message_id}`
907
- }).then(res => res?.data);
908
- }
909
- /**
910
- * 获取精华消息
911
- * @param channel_id 子频道id
912
- * @returns 返回 PinsMessage对象 { "guild_id": "xxxxxx", "channel_id": "xxxxxx", "message_ids": ["xxxxx"]}
913
- * @returns message_ids 为当前请求后子频道内所有精华消息 message_id 数组
914
- */
915
- async channelsPins(channel_id) {
421
+ });
422
+ }
423
+ channelsPins(channel_id) {
916
424
  return this.guildServer({
917
425
  method: 'GET',
918
426
  url: `/channels/${channel_id}/pins`
919
- }).then(res => res?.data);
920
- }
921
- /**
922
- * ********
923
- * 日程api
924
- * *******
925
- */
926
- /**
927
- * 获取频道日程列表
928
- * @param channel_id 子频道id
929
- * @returns 返回 Schedule 对象数组(详见https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/content/schedule/model.html#schedule)
930
- */
931
- async channelsSchedules(channel_id) {
427
+ });
428
+ }
429
+ channelsSchedules(channel_id) {
932
430
  return this.guildServer({
933
431
  method: 'GET',
934
432
  url: `/channels/${channel_id}/schedules`
935
- }).then(res => res?.data);
936
- }
937
- /**
938
- * 获取频道日程详情
939
- * @param channel_id 子频道id
940
- * @param schedule_id 日程id
941
- * @returns 返回 Schedule 对象(详见https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/content/schedule/model.html#schedule)
942
- */
943
- async channelsSchedulesSchedule(channel_id, schedule_id) {
433
+ });
434
+ }
435
+ channelsSchedulesSchedule(channel_id, schedule_id) {
944
436
  return this.guildServer({
945
437
  method: 'GET',
946
438
  url: `/channels/${channel_id}/schedules/${schedule_id}`
947
- }).then(res => res?.data);
948
- }
949
- /**
950
- * 创建频道日程
951
- * @param channel_id 子频道id
952
- * @param name 日程名称
953
- * @param description 日程描述
954
- * @param start_timestamp 日程开始时间戳
955
- * @param end_timestamp 日程结束时间戳
956
- * @param jump_channel_id 日程开始时跳转的子频道id
957
- * @param remind_type 日程提醒类型
958
- * 0 不提醒
959
- * 1 开始时提醒
960
- * 2 开始前 5 分钟提醒
961
- * 3 开始前 15 分钟提醒
962
- * 4 开始前 30 分钟提醒
963
- * 5 开始前 60 分钟提醒
964
- * @returns 返回 Schedule 对象(详见https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/content/schedule/model.html#schedule)
965
- */
966
- async channelsSchedulesPost(channel_id, data) {
439
+ });
440
+ }
441
+ channelsSchedulesPost(channel_id, data) {
967
442
  return this.guildServer({
968
443
  method: 'POST',
969
444
  url: `/channels/${channel_id}/schedules`,
970
445
  data
971
- }).then(res => res?.data);
972
- }
973
- /**
974
- * 修改频道日程
975
- * @param channel_id 子频道id
976
- * @param schedule_id 日程id
977
- * @param name 日程名称
978
- * @param description 日程描述
979
- * @param start_timestamp 日程开始时间戳
980
- * @param end_timestamp 日程结束时间戳
981
- * @param jump_channel_id 日程开始时跳转的子频道id
982
- * @param remind_type 日程提醒类型
983
- * 0 不提醒
984
- * 1 开始时提醒
985
- * 2 开始前 5 分钟提醒
986
- * 3 开始前 15 分钟提醒
987
- * 4 开始前 30 分钟提醒
988
- * 5 开始前 60 分钟提醒
989
- * @returns 返回 Schedule 对象(详见https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/content/schedule/model.html#schedule)
990
- */
991
- async channelsSchedulesSchedulePatch(channel_id, schedule_id, data) {
446
+ });
447
+ }
448
+ channelsSchedulesSchedulePatch(channel_id, schedule_id, data) {
992
449
  return this.guildServer({
993
450
  method: 'PATCH',
994
451
  url: `/channels/${channel_id}/schedules/${schedule_id}`,
995
452
  data
996
- }).then(res => res?.data);
997
- }
998
- /**
999
- * 删除频道日程
1000
- * @param channel_id 子频道id
1001
- * @param schedule_id 日程id
1002
- * @returns
1003
- */
1004
- async channelsSchedulesScheduleDelete(channel_id, schedule_id) {
453
+ });
454
+ }
455
+ channelsSchedulesScheduleDelete(channel_id, schedule_id) {
1005
456
  return this.guildServer({
1006
457
  method: 'DELETE',
1007
458
  url: `/channels/${channel_id}/schedules/${schedule_id}`
1008
- }).then(res => res?.data);
1009
- }
1010
- /**
1011
- * ***********
1012
- * 表情表态api
1013
- * ***********
1014
- */
1015
- /**
1016
- * 机器人发表表情表态
1017
- * @param channel_id 子频道id
1018
- * @param message_id 消息id
1019
- * @param type 表情类型 1:系统表情 2:emoji表情
1020
- * @param id 表情id 参考https://bot.q.qq.com/wiki/develop/api-v2/openapi/emoji/model.html#Emoji%20%E5%88%97%E8%A1%A8
1021
- * @returns
1022
- */
1023
- async channelsMessagesReactionsPut(channel_id, message_id, type, id) {
459
+ });
460
+ }
461
+ channelsMessagesReactionsPut(channel_id, message_id, type, id) {
1024
462
  return this.guildServer({
1025
463
  method: 'PUT',
1026
464
  url: `/channels/${channel_id}/messages/${message_id}/reactions/${type}/${id}`
1027
- }).then(res => res?.data);
1028
- }
1029
- /**
1030
- * 删除机器人发表的表情表态
1031
- * @param channel_id 子频道id
1032
- * @param message_id 消息id
1033
- * @param type 表情类型 1:系统表情 2:emoji表情
1034
- * @param id 表情id 参考https://bot.q.qq.com/wiki/develop/api-v2/openapi/emoji/model.html#Emoji%20%E5%88%97%E8%A1%A8
1035
- * @returns
1036
- */
1037
- async channelsMessagesReactionsDelete(channel_id, message_id, type, id) {
465
+ });
466
+ }
467
+ channelsMessagesReactionsDelete(channel_id, message_id, type, id) {
1038
468
  return this.guildServer({
1039
469
  method: 'DELETE',
1040
470
  url: `/channels/${channel_id}/messages/${message_id}/reactions/${type}/${id}`
1041
- }).then(res => res?.data);
1042
- }
1043
- /**
1044
- * 获取消息表情表态的用户列表
1045
- * @param channel_id 子频道id
1046
- * @param message_id 消息id
1047
- * @param type 表情类型 1:系统表情 2:emoji表情
1048
- * @param id 表情id 参考https://bot.q.qq.com/wiki/develop/api-v2/openapi/emoji/model.html#Emoji%20%E5%88%97%E8%A1%A8
1049
- * @param {object} data
1050
- * @param {object} data.cookie 返回的cookie 第一次请求不传,后续请求传上次返回的cookie
1051
- * @param {object} data.limit 返回的用户数量 默认20 最大50
1052
- * @returns data:{ users:User[], cookie:string,is_end:true|false }
1053
- */
1054
- async channelsMessagesReactionsUsers(channel_id, message_id, type, id, data) {
471
+ });
472
+ }
473
+ channelsMessagesReactionsUsers(channel_id, message_id, type, id, data) {
1055
474
  return this.guildServer({
1056
475
  method: 'GET',
1057
476
  url: `/channels/${channel_id}/messages/${message_id}/reactions/${type}/${id}`,
1058
477
  data
1059
- }).then(res => res?.data);
1060
- }
1061
- /**
1062
- * ***********
1063
- * 音频api
1064
- * 音频接口:仅限音频类机器人才能使用,后续会根据机器人类型自动开通接口权限,现如需调用,需联系平台申请权限
1065
- * **********
1066
- */
1067
- /**
1068
- * 音频控制
1069
- * @param channel_id 子频道id
1070
- * @param audio_url 音频url status为0时传
1071
- * @param status 0:开始 1:暂停 2:继续 3:停止
1072
- * @param text 状态文本(比如:简单爱-周杰伦),可选,status为0时传,其他操作不传
1073
- * @returns
1074
- */
1075
- async channelsAudioPost(channel_id, data) {
478
+ });
479
+ }
480
+ channelsAudioPost(channel_id, data) {
1076
481
  return this.guildServer({
1077
482
  method: 'POST',
1078
483
  url: `/channels/${channel_id}/audio`,
1079
484
  data
1080
- }).then(res => res?.data);
1081
- }
1082
- /**
1083
- * 机器人上麦
1084
- * @param channel_id 语音子频道id
1085
- * @returns {}
1086
- */
1087
- async channelsMicPut(channel_id) {
485
+ });
486
+ }
487
+ channelsMicPut(channel_id) {
1088
488
  return this.guildServer({
1089
489
  method: 'PUT',
1090
490
  url: `/channels/${channel_id}/mic`
1091
- }).then(res => res?.data);
1092
- }
1093
- /**
1094
- * 机器人下麦
1095
- * @param channel_id 语音子频道id
1096
- * @returns {}
1097
- */
1098
- async channelsMicDelete(channel_id) {
491
+ });
492
+ }
493
+ channelsMicDelete(channel_id) {
1099
494
  return this.guildServer({
1100
495
  method: 'DELETE',
1101
496
  url: `/channels/${channel_id}/mic`
1102
- }).then(res => res?.data);
1103
- }
1104
- /**
1105
- * **********
1106
- * 帖子api
1107
- * 注意
1108
- * 公域机器人暂不支持申请,仅私域机器人可用,选择私域机器人后默认开通。
1109
- * 注意: 开通后需要先将机器人从频道移除,然后重新添加,方可生效。
1110
- * **********
1111
- */
1112
- /**
1113
- * 获取帖子列表
1114
- * @param channel_id 子频道id
1115
- * @returns {threads:Thread[],is_finish:0|1}
1116
- * @returns 返回 Thread 对象数组(详见https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/content/forum/model.html#Thread)
1117
- * @returns is_finish 为 1 时,表示已拉取完 为 0 时,表示未拉取完
1118
- */
1119
- async channelsThreads(channel_id) {
497
+ });
498
+ }
499
+ channelsThreads(channel_id) {
1120
500
  return this.guildServer({
1121
501
  method: 'GET',
1122
502
  url: `/channels/${channel_id}/threads`
1123
- }).then(res => res?.data);
1124
- }
1125
- /**
1126
- * 获取帖子详情
1127
- * @param channel_id 子频道id
1128
- * @param thread_id 帖子id
1129
- * @returns 返回 帖子详情对象(详见https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/content/forum/model.html#ThreadInfo)
1130
- * 其中content字段可参考 https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/content/forum/model.html#RichText
1131
- */
1132
- async channelsThreadsThread(channel_id, thread_id) {
503
+ });
504
+ }
505
+ channelsThreadsThread(channel_id, thread_id) {
1133
506
  return this.guildServer({
1134
507
  method: 'GET',
1135
508
  url: `/channels/${channel_id}/threads/${thread_id}`
1136
- }).then(res => res?.data);
1137
- }
1138
- /**
1139
- * 发表帖子
1140
- * @param channel_id 子频道id
1141
- * @param title 帖子标题
1142
- * @param content 帖子内容
1143
- * @param format 帖子内容格式 1:纯文本 2:HTML 3:Markdown 4:JSON
1144
- * @returns 返回 {task_id:string,create_time:string} 其中 task_id 为帖子id,create_time 发帖时间戳
1145
- */
1146
- async channelsThreadsPut(channel_id, data) {
509
+ });
510
+ }
511
+ channelsThreadsPut(channel_id, data) {
1147
512
  return this.guildServer({
1148
513
  method: 'PUT',
1149
514
  url: `/channels/${channel_id}/threads`,
1150
515
  data
1151
- }).then(res => res?.data);
1152
- }
1153
- /**
1154
- * 删除帖子
1155
- * @param channel_id 子频道id
1156
- * @param thread_id 帖子id
1157
- * @returns
1158
- */
1159
- async channelsThreadsDelete(channel_id, thread_id) {
516
+ });
517
+ }
518
+ channelsThreadsDelete(channel_id, thread_id) {
1160
519
  return this.guildServer({
1161
520
  method: 'DELETE',
1162
521
  url: `/channels/${channel_id}/threads/${thread_id}`
1163
- }).then(res => res?.data);
1164
- }
1165
- /**
1166
- * ********
1167
- * 接口权限api
1168
- * **********
1169
- */
1170
- /**
1171
- * 获得频道可用权限列表
1172
- * @param guild_id
1173
- * @returns
1174
- */
1175
- async guildApiPermission(guild_id) {
522
+ });
523
+ }
524
+ guildApiPermission(guild_id) {
1176
525
  return this.guildServer({
1177
526
  url: `/guilds/${guild_id}/api_permission`
1178
- }).then(res => res?.data);
527
+ });
528
+ }
529
+ interactionResponse(mode, interaction_id, code) {
530
+ if (mode === 'group') {
531
+ return this.groupService({
532
+ method: 'PUT',
533
+ url: `/interactions/${interaction_id}`,
534
+ data: {
535
+ code: code || 0
536
+ }
537
+ });
538
+ }
539
+ else {
540
+ return this.guildServer({
541
+ method: 'PUT',
542
+ url: `/interactions/${interaction_id}`,
543
+ data: {
544
+ code: code || 0
545
+ }
546
+ });
547
+ }
1179
548
  }
1180
549
  }
1181
550
 
1182
- export { QQBotAPI };
551
+ export { API_URL, API_URL_SANDBOX, BOTS_API_RUL, QQBotAPI };