@alemonjs/qq-bot 0.0.20 → 0.0.21

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.
package/lib/send/index.js CHANGED
@@ -1,236 +1,257 @@
1
- import { readFileSync } from 'fs';
2
- import axios from 'axios';
1
+ import { readFileSync } from 'fs'
2
+ import axios from 'axios'
3
3
 
4
- const createButtonsData = (rows) => {
5
- let id = 0;
6
- const data = {
7
- rows: rows.map(row => {
8
- const val = row.value;
9
- return {
10
- buttons: val.map(button => {
11
- const value = button.value;
12
- const options = button.options;
13
- id++;
14
- return {
15
- id: String(id),
16
- render_data: {
17
- label: typeof value == 'object' ? value.title : value,
18
- visited_label: typeof value == 'object' ? value.label : value,
19
- // tudo
20
- style: 0
21
- },
22
- action: {
23
- // 0 link 1 callback , 2 command
24
- type: typeof options.data === 'object' ? 1 : options?.isLink ? 0 : 2,
25
- permission: {
26
- // 所有人
27
- type: 2
28
- // "specify_role_ids": ["1", "2", "3"]
29
- },
30
- // "click_limit": 10,
31
- unsupport_tips: options?.toolTip ?? '',
32
- data: options?.data ?? '',
33
- // reply: true,
34
- at_bot_show_channel_list: options.showList ?? false,
35
- enter: options?.autoEnter ?? false
36
- }
37
- };
38
- })
39
- };
4
+ const createButtonsData = rows => {
5
+ let id = 0
6
+ const data = {
7
+ rows: rows.map(row => {
8
+ const val = row.value
9
+ return {
10
+ buttons: val.map(button => {
11
+ const value = button.value
12
+ const options = button.options
13
+ id++
14
+ return {
15
+ id: String(id),
16
+ render_data: {
17
+ label: typeof value == 'object' ? value.title : value,
18
+ visited_label: typeof value == 'object' ? value.label : value,
19
+ // tudo
20
+ style: 0
21
+ },
22
+ action: {
23
+ // 0 link 1 callback , 2 command
24
+ type: typeof options.data === 'object' ? 1 : options?.isLink ? 0 : 2,
25
+ permission: {
26
+ // 所有人
27
+ type: 2
28
+ // "specify_role_ids": ["1", "2", "3"]
29
+ },
30
+ // "click_limit": 10,
31
+ unsupport_tips: options?.toolTip ?? '',
32
+ data: options?.data ?? '',
33
+ // reply: true,
34
+ at_bot_show_channel_list: options.showList ?? false,
35
+ enter: options?.autoEnter ?? false
36
+ }
37
+ }
40
38
  })
41
- };
42
- return data;
43
- };
39
+ }
40
+ })
41
+ }
42
+ return data
43
+ }
44
44
  const GROUP_AT_MESSAGE_CREATE = (client, event, val) => {
45
- const content = val
46
- .filter(item => item.type == 'Mention' || item.type == 'Text')
47
- .map(item => {
48
- // if (item.type == 'Link') {
49
- // return `[${item.options?.title ?? item.value}](${item.value})`
50
- // } else
51
- if (item.type == 'Mention') {
52
- if (item.value == 'everyone' ||
53
- item.value == 'all' ||
54
- item.value == '' ||
55
- typeof item.value != 'string') {
56
- return ``;
57
- }
58
- if (item.options?.belong == 'user') {
59
- return `<@${item.value}>`;
60
- }
61
- return '';
45
+ const content = val
46
+ .filter(item => item.type == 'Mention' || item.type == 'Text')
47
+ .map(item => {
48
+ // if (item.type == 'Link') {
49
+ // return `[${item.options?.title ?? item.value}](${item.value})`
50
+ // } else
51
+ if (item.type == 'Mention') {
52
+ if (
53
+ item.value == 'everyone' ||
54
+ item.value == 'all' ||
55
+ item.value == '' ||
56
+ typeof item.value != 'string'
57
+ ) {
58
+ return ``
62
59
  }
63
- else if (item.type == 'Text') {
64
- return item.value;
60
+ if (item.options?.belong == 'user') {
61
+ return `<@${item.value}>`
65
62
  }
63
+ return ''
64
+ } else if (item.type == 'Text') {
65
+ return item.value
66
+ }
66
67
  })
67
- .join('');
68
- if (content) {
69
- return Promise.all([content].map(item => client.groupOpenMessages(event.GuildId, {
70
- content: item,
68
+ .join('')
69
+ if (content) {
70
+ return Promise.all(
71
+ [content].map(item =>
72
+ client.groupOpenMessages(event.GuildId, {
73
+ content: item,
74
+ msg_id: event.MessageId,
75
+ msg_type: 0,
76
+ msg_seq: client.getMessageSeq(event.MessageId)
77
+ })
78
+ )
79
+ )
80
+ }
81
+ const images = val.filter(
82
+ item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL'
83
+ )
84
+ if (images && images.length > 0) {
85
+ return Promise.all(
86
+ images.map(async item => {
87
+ if (item.type == 'ImageURL') {
88
+ return client.groupOpenMessages(event.GuildId, {
89
+ content: '',
90
+ media: {
91
+ file_info: item.value
92
+ },
71
93
  msg_id: event.MessageId,
72
- msg_type: 0,
94
+ msg_type: 7,
73
95
  msg_seq: client.getMessageSeq(event.MessageId)
74
- })));
75
- }
76
- const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
77
- if (images && images.length > 0) {
78
- return Promise.all(images.map(async (item) => {
79
- if (item.type == 'ImageURL') {
80
- return client.groupOpenMessages(event.GuildId, {
81
- content: '',
82
- media: {
83
- file_info: item.value
84
- },
85
- msg_id: event.MessageId,
86
- msg_type: 7,
87
- msg_seq: client.getMessageSeq(event.MessageId)
88
- });
89
- }
90
- const file_data = item.type == 'ImageFile'
91
- ? readFileSync(item.value, 'base64')
92
- : item.value.toString('base64');
93
- const file_info = await client
94
- .postRichMediaByGroup(event.GuildId, {
95
- file_type: 1,
96
- file_data: file_data
97
- })
98
- .then(res => res?.file_info);
99
- if (!file_info)
100
- return Promise.resolve(null);
101
- return client.groupOpenMessages(event.GuildId, {
102
- content: '',
103
- media: {
104
- file_info
105
- },
106
- msg_id: event.MessageId,
107
- msg_type: 7,
108
- msg_seq: client.getMessageSeq(event.MessageId)
109
- });
110
- }));
111
- }
112
- // buttons
113
- const buttons = val.filter(item => item.type == 'BT.group');
114
- if (buttons && buttons.length > 0) {
115
- return Promise.all(buttons.map(async (item) => {
116
- const template_id = item?.options?.template_id;
117
- if (template_id) {
118
- return client.groupOpenMessages(event.GuildId, {
119
- content: '',
120
- msg_id: event.MessageId,
121
- keyboard: {
122
- id: template_id
123
- },
124
- msg_type: 2,
125
- msg_seq: client.getMessageSeq(event.MessageId)
126
- });
127
- }
128
- const rows = item.value;
129
- // 构造成按钮
130
- const data = createButtonsData(rows);
131
- return client.groupOpenMessages(event.GuildId, {
132
- content: '',
133
- msg_id: event.MessageId,
134
- keyboard: {
135
- content: data
136
- },
137
- msg_type: 2,
138
- msg_seq: client.getMessageSeq(event.MessageId)
139
- });
140
- }));
141
- }
142
- return Promise.all([]);
143
- };
144
- const C2C_MESSAGE_CREATE = (client, event, val) => {
145
- const content = val
146
- .filter(item => item.type == 'Mention' || item.type == 'Text')
147
- .map(item => {
148
- if (item.type == 'Text') {
149
- return item.value;
96
+ })
97
+ }
98
+ const file_data =
99
+ item.type == 'ImageFile'
100
+ ? readFileSync(item.value, 'base64')
101
+ : item.value.toString('base64')
102
+ const file_info = await client
103
+ .postRichMediaByGroup(event.GuildId, {
104
+ file_type: 1,
105
+ file_data: file_data
106
+ })
107
+ .then(res => res?.file_info)
108
+ if (!file_info) return Promise.resolve(null)
109
+ return client.groupOpenMessages(event.GuildId, {
110
+ content: '',
111
+ media: {
112
+ file_info
113
+ },
114
+ msg_id: event.MessageId,
115
+ msg_type: 7,
116
+ msg_seq: client.getMessageSeq(event.MessageId)
117
+ })
118
+ })
119
+ )
120
+ }
121
+ // buttons
122
+ const buttons = val.filter(item => item.type == 'BT.group')
123
+ if (buttons && buttons.length > 0) {
124
+ return Promise.all(
125
+ buttons.map(async item => {
126
+ const template_id = item?.options?.template_id
127
+ if (template_id) {
128
+ return client.groupOpenMessages(event.GuildId, {
129
+ content: '',
130
+ msg_id: event.MessageId,
131
+ keyboard: {
132
+ id: template_id
133
+ },
134
+ msg_type: 2,
135
+ msg_seq: client.getMessageSeq(event.MessageId)
136
+ })
150
137
  }
151
- return '';
138
+ const rows = item.value
139
+ // 构造成按钮
140
+ const data = createButtonsData(rows)
141
+ return client.groupOpenMessages(event.GuildId, {
142
+ content: '',
143
+ msg_id: event.MessageId,
144
+ keyboard: {
145
+ content: data
146
+ },
147
+ msg_type: 2,
148
+ msg_seq: client.getMessageSeq(event.MessageId)
149
+ })
150
+ })
151
+ )
152
+ }
153
+ return Promise.all([])
154
+ }
155
+ const C2C_MESSAGE_CREATE = (client, event, val) => {
156
+ const content = val
157
+ .filter(item => item.type == 'Mention' || item.type == 'Text')
158
+ .map(item => {
159
+ if (item.type == 'Text') {
160
+ return item.value
161
+ }
162
+ return ''
152
163
  })
153
- .join('');
154
- if (content) {
155
- return Promise.all([content].map(item => client.usersOpenMessages(event.OpenId, {
156
- content: item,
164
+ .join('')
165
+ if (content) {
166
+ return Promise.all(
167
+ [content].map(item =>
168
+ client.usersOpenMessages(event.OpenId, {
169
+ content: item,
170
+ msg_id: event.MessageId,
171
+ msg_type: 0,
172
+ msg_seq: client.getMessageSeq(event.MessageId)
173
+ })
174
+ )
175
+ )
176
+ }
177
+ const images = val.filter(
178
+ item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL'
179
+ )
180
+ if (images && images.length > 0) {
181
+ return Promise.all(
182
+ images.map(async item => {
183
+ if (item.type == 'ImageURL') {
184
+ return client.usersOpenMessages(event.OpenId, {
185
+ content: '',
186
+ media: {
187
+ file_info: item.value
188
+ },
157
189
  msg_id: event.MessageId,
158
- msg_type: 0,
190
+ msg_type: 7,
159
191
  msg_seq: client.getMessageSeq(event.MessageId)
160
- })));
161
- }
162
- const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
163
- if (images && images.length > 0) {
164
- return Promise.all(images.map(async (item) => {
165
- if (item.type == 'ImageURL') {
166
- return client.usersOpenMessages(event.OpenId, {
167
- content: '',
168
- media: {
169
- file_info: item.value
170
- },
171
- msg_id: event.MessageId,
172
- msg_type: 7,
173
- msg_seq: client.getMessageSeq(event.MessageId)
174
- });
175
- }
176
- const file_data = item.type == 'ImageFile'
177
- ? readFileSync(item.value, 'base64')
178
- : item.value.toString('base64');
179
- const file_info = await client
180
- .postRichMediaByUsers(event.OpenId, {
181
- file_type: 1,
182
- file_data: file_data
183
- })
184
- .then(res => res?.file_info);
185
- if (!file_info)
186
- return Promise.resolve(null);
187
- return client.usersOpenMessages(event.OpenId, {
188
- content: '',
189
- media: {
190
- file_info
191
- },
192
- msg_id: event.MessageId,
193
- msg_type: 7,
194
- msg_seq: client.getMessageSeq(event.MessageId)
195
- });
196
- }));
197
- }
198
- // buttons
199
- const buttons = val.filter(item => item.type == 'BT.group');
200
- if (buttons && buttons.length > 0) {
201
- return Promise.all(buttons.map(async (item) => {
202
- const template_id = item?.options?.template_id;
203
- if (template_id) {
204
- return client.groupOpenMessages(event.GuildId, {
205
- content: '',
206
- msg_id: event.MessageId,
207
- keyboard: {
208
- id: template_id
209
- },
210
- msg_type: 2,
211
- msg_seq: client.getMessageSeq(event.MessageId)
212
- });
213
- }
214
- const rows = item.value;
215
- // 看看是否是模板id的
216
- rows.map(row => {
217
- return row;
218
- });
219
- // 构造成按钮
220
- const data = createButtonsData(rows);
221
- return client.groupOpenMessages(event.GuildId, {
222
- content: '',
223
- msg_id: event.MessageId,
224
- keyboard: {
225
- content: data
226
- },
227
- msg_type: 2,
228
- msg_seq: client.getMessageSeq(event.MessageId)
229
- });
230
- }));
231
- }
232
- return Promise.all([]);
233
- };
192
+ })
193
+ }
194
+ const file_data =
195
+ item.type == 'ImageFile'
196
+ ? readFileSync(item.value, 'base64')
197
+ : item.value.toString('base64')
198
+ const file_info = await client
199
+ .postRichMediaByUsers(event.OpenId, {
200
+ file_type: 1,
201
+ file_data: file_data
202
+ })
203
+ .then(res => res?.file_info)
204
+ if (!file_info) return Promise.resolve(null)
205
+ return client.usersOpenMessages(event.OpenId, {
206
+ content: '',
207
+ media: {
208
+ file_info
209
+ },
210
+ msg_id: event.MessageId,
211
+ msg_type: 7,
212
+ msg_seq: client.getMessageSeq(event.MessageId)
213
+ })
214
+ })
215
+ )
216
+ }
217
+ // buttons
218
+ const buttons = val.filter(item => item.type == 'BT.group')
219
+ if (buttons && buttons.length > 0) {
220
+ return Promise.all(
221
+ buttons.map(async item => {
222
+ const template_id = item?.options?.template_id
223
+ if (template_id) {
224
+ return client.groupOpenMessages(event.GuildId, {
225
+ content: '',
226
+ msg_id: event.MessageId,
227
+ keyboard: {
228
+ id: template_id
229
+ },
230
+ msg_type: 2,
231
+ msg_seq: client.getMessageSeq(event.MessageId)
232
+ })
233
+ }
234
+ const rows = item.value
235
+ // 看看是否是模板id的
236
+ rows.map(row => {
237
+ return row
238
+ })
239
+ // 构造成按钮
240
+ const data = createButtonsData(rows)
241
+ return client.groupOpenMessages(event.GuildId, {
242
+ content: '',
243
+ msg_id: event.MessageId,
244
+ keyboard: {
245
+ content: data
246
+ },
247
+ msg_type: 2,
248
+ msg_seq: client.getMessageSeq(event.MessageId)
249
+ })
250
+ })
251
+ )
252
+ }
253
+ return Promise.all([])
254
+ }
234
255
  /**
235
256
  * 频道私聊
236
257
  * @param client
@@ -239,102 +260,118 @@ const C2C_MESSAGE_CREATE = (client, event, val) => {
239
260
  * @returns
240
261
  */
241
262
  const DIRECT_MESSAGE_CREATE = (client, event, val) => {
242
- const content = val
243
- .filter(item => item.type == 'Mention' || item.type == 'Text')
244
- .map(item => {
245
- if (item.type == 'Text') {
246
- return item.value;
247
- }
248
- return '';
263
+ const content = val
264
+ .filter(item => item.type == 'Mention' || item.type == 'Text')
265
+ .map(item => {
266
+ if (item.type == 'Text') {
267
+ return item.value
268
+ }
269
+ return ''
249
270
  })
250
- .join('');
251
- if (content) {
252
- return Promise.all([content].map(item => client.dmsMessage(event.OpenId, {
253
- content: item,
254
- msg_id: event.MessageId
255
- })));
256
- }
257
- const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
258
- if (images) {
259
- return Promise.all(images.map(async (item) => {
260
- if (item.value == 'ImageURL') {
261
- // 请求得到buffer
262
- const data = await axios
263
- .get(item.value, {
264
- responseType: 'arraybuffer'
265
- })
266
- .then(res => res.data);
267
- return client.postDirectImage(event.OpenId, {
268
- msg_id: event.MessageId,
269
- image: data
270
- });
271
- }
272
- const file_data = item.type == 'ImageFile' ? readFileSync(item.value) : item.value;
273
- return client.postDirectImage(event.OpenId, {
274
- msg_id: event.MessageId,
275
- image: Buffer.isBuffer(file_data) ? file_data : Buffer.from(file_data)
276
- });
277
- }));
278
- }
279
- return [];
280
- };
271
+ .join('')
272
+ if (content) {
273
+ return Promise.all(
274
+ [content].map(item =>
275
+ client.dmsMessage(event.OpenId, {
276
+ content: item,
277
+ msg_id: event.MessageId
278
+ })
279
+ )
280
+ )
281
+ }
282
+ const images = val.filter(
283
+ item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL'
284
+ )
285
+ if (images) {
286
+ return Promise.all(
287
+ images.map(async item => {
288
+ if (item.value == 'ImageURL') {
289
+ // 请求得到buffer
290
+ const data = await axios
291
+ .get(item.value, {
292
+ responseType: 'arraybuffer'
293
+ })
294
+ .then(res => res.data)
295
+ return client.postDirectImage(event.OpenId, {
296
+ msg_id: event.MessageId,
297
+ image: data
298
+ })
299
+ }
300
+ const file_data = item.type == 'ImageFile' ? readFileSync(item.value) : item.value
301
+ return client.postDirectImage(event.OpenId, {
302
+ msg_id: event.MessageId,
303
+ image: Buffer.isBuffer(file_data) ? file_data : Buffer.from(file_data)
304
+ })
305
+ })
306
+ )
307
+ }
308
+ return []
309
+ }
281
310
  const AT_MESSAGE_CREATE = (client, event, val) => {
282
- const content = val
283
- .filter(item => item.type == 'Mention' || item.type == 'Text')
284
- .map(item => {
285
- // if (item.type == 'Link') {
286
- // return `[${item.options?.title ?? item.value}](${item.value})`
287
- // } else
288
- if (item.type == 'Mention') {
289
- if (item.value == 'everyone' ||
290
- item.value == 'all' ||
291
- item.value == '' ||
292
- typeof item.value != 'string') {
293
- return `@everyone`;
294
- }
295
- if (item.options?.belong == 'user') {
296
- return `<@!${item.value}>`;
297
- }
298
- else if (item.options?.belong == 'channel') {
299
- return `<#${item.value}>`;
300
- }
301
- return '';
311
+ const content = val
312
+ .filter(item => item.type == 'Mention' || item.type == 'Text')
313
+ .map(item => {
314
+ // if (item.type == 'Link') {
315
+ // return `[${item.options?.title ?? item.value}](${item.value})`
316
+ // } else
317
+ if (item.type == 'Mention') {
318
+ if (
319
+ item.value == 'everyone' ||
320
+ item.value == 'all' ||
321
+ item.value == '' ||
322
+ typeof item.value != 'string'
323
+ ) {
324
+ return `@everyone`
302
325
  }
303
- else if (item.type == 'Text') {
304
- return item.value;
326
+ if (item.options?.belong == 'user') {
327
+ return `<@!${item.value}>`
328
+ } else if (item.options?.belong == 'channel') {
329
+ return `<#${item.value}>`
305
330
  }
331
+ return ''
332
+ } else if (item.type == 'Text') {
333
+ return item.value
334
+ }
306
335
  })
307
- .join('');
308
- if (content) {
309
- return Promise.all([content].map(item => client.channelsMessagesPost(event.ChannelId, {
310
- content: item,
311
- msg_id: event.MessageId
312
- })));
313
- }
314
- const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
315
- if (images && images.length > 0) {
316
- return Promise.all(images.map(async (item) => {
317
- if (item.value == 'ImageURL') {
318
- // 请求得到buffer
319
- const data = await axios
320
- .get(item.value, {
321
- responseType: 'arraybuffer'
322
- })
323
- .then(res => res.data);
324
- return client.postImage(event.ChannelId, {
325
- msg_id: event.MessageId,
326
- image: data
327
- });
328
- }
329
- const file_data = item.type == 'ImageFile' ? readFileSync(item.value) : item.value;
330
- return client.postImage(event.ChannelId, {
331
- msg_id: event.MessageId,
332
- image: Buffer.isBuffer(file_data) ? file_data : Buffer.from(file_data)
333
- });
334
- }));
335
- }
336
- return Promise.all([]);
337
- };
336
+ .join('')
337
+ if (content) {
338
+ return Promise.all(
339
+ [content].map(item =>
340
+ client.channelsMessagesPost(event.ChannelId, {
341
+ content: item,
342
+ msg_id: event.MessageId
343
+ })
344
+ )
345
+ )
346
+ }
347
+ const images = val.filter(
348
+ item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL'
349
+ )
350
+ if (images && images.length > 0) {
351
+ return Promise.all(
352
+ images.map(async item => {
353
+ if (item.value == 'ImageURL') {
354
+ // 请求得到buffer
355
+ const data = await axios
356
+ .get(item.value, {
357
+ responseType: 'arraybuffer'
358
+ })
359
+ .then(res => res.data)
360
+ return client.postImage(event.ChannelId, {
361
+ msg_id: event.MessageId,
362
+ image: data
363
+ })
364
+ }
365
+ const file_data = item.type == 'ImageFile' ? readFileSync(item.value) : item.value
366
+ return client.postImage(event.ChannelId, {
367
+ msg_id: event.MessageId,
368
+ image: Buffer.isBuffer(file_data) ? file_data : Buffer.from(file_data)
369
+ })
370
+ })
371
+ )
372
+ }
373
+ return Promise.all([])
374
+ }
338
375
  /**
339
376
  *
340
377
  * @param event
@@ -342,61 +379,75 @@ const AT_MESSAGE_CREATE = (client, event, val) => {
342
379
  * @returns
343
380
  */
344
381
  const MESSAGE_CREATE = (client, event, val) => {
345
- const content = val
346
- .filter(item => item.type == 'Mention' || item.type == 'Text')
347
- .map(item => {
348
- // if (item.type == 'Link') {
349
- // return `[${item.options?.title ?? item.value}](${item.value})`
350
- // } else
351
- if (item.type == 'Mention') {
352
- if (item.value == 'everyone' ||
353
- item.value == 'all' ||
354
- item.value == '' ||
355
- typeof item.value != 'string') {
356
- return `@everyone`;
357
- }
358
- if (item.options?.belong == 'user') {
359
- return `<@!${item.value}>`;
360
- }
361
- else if (item.options?.belong == 'channel') {
362
- return `<#${item.value}>`;
363
- }
364
- return '';
382
+ const content = val
383
+ .filter(item => item.type == 'Mention' || item.type == 'Text')
384
+ .map(item => {
385
+ // if (item.type == 'Link') {
386
+ // return `[${item.options?.title ?? item.value}](${item.value})`
387
+ // } else
388
+ if (item.type == 'Mention') {
389
+ if (
390
+ item.value == 'everyone' ||
391
+ item.value == 'all' ||
392
+ item.value == '' ||
393
+ typeof item.value != 'string'
394
+ ) {
395
+ return `@everyone`
365
396
  }
366
- else if (item.type == 'Text') {
367
- return item.value;
397
+ if (item.options?.belong == 'user') {
398
+ return `<@!${item.value}>`
399
+ } else if (item.options?.belong == 'channel') {
400
+ return `<#${item.value}>`
368
401
  }
402
+ return ''
403
+ } else if (item.type == 'Text') {
404
+ return item.value
405
+ }
369
406
  })
370
- .join('');
371
- if (content) {
372
- return Promise.all([content].map(item => client.channelsMessagesPost(event.ChannelId, {
373
- content: item,
374
- msg_id: event.MessageId
375
- })));
376
- }
377
- const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
378
- if (images && images.length > 0) {
379
- return Promise.all(images.map(async (item) => {
380
- if (item.value == 'ImageURL') {
381
- // 请求得到buffer
382
- const data = await axios
383
- .get(item.value, {
384
- responseType: 'arraybuffer'
385
- })
386
- .then(res => res.data);
387
- return client.postImage(event.ChannelId, {
388
- msg_id: event.MessageId,
389
- image: data
390
- });
391
- }
392
- const file_data = item.type == 'ImageFile' ? readFileSync(item.value) : item.value;
393
- return client.postImage(event.ChannelId, {
394
- msg_id: event.MessageId,
395
- image: Buffer.isBuffer(file_data) ? file_data : Buffer.from(file_data)
396
- });
397
- }));
398
- }
399
- return Promise.all([]);
400
- };
407
+ .join('')
408
+ if (content) {
409
+ return Promise.all(
410
+ [content].map(item =>
411
+ client.channelsMessagesPost(event.ChannelId, {
412
+ content: item,
413
+ msg_id: event.MessageId
414
+ })
415
+ )
416
+ )
417
+ }
418
+ const images = val.filter(
419
+ item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL'
420
+ )
421
+ if (images && images.length > 0) {
422
+ return Promise.all(
423
+ images.map(async item => {
424
+ if (item.value == 'ImageURL') {
425
+ // 请求得到buffer
426
+ const data = await axios
427
+ .get(item.value, {
428
+ responseType: 'arraybuffer'
429
+ })
430
+ .then(res => res.data)
431
+ return client.postImage(event.ChannelId, {
432
+ msg_id: event.MessageId,
433
+ image: data
434
+ })
435
+ }
436
+ const file_data = item.type == 'ImageFile' ? readFileSync(item.value) : item.value
437
+ return client.postImage(event.ChannelId, {
438
+ msg_id: event.MessageId,
439
+ image: Buffer.isBuffer(file_data) ? file_data : Buffer.from(file_data)
440
+ })
441
+ })
442
+ )
443
+ }
444
+ return Promise.all([])
445
+ }
401
446
 
402
- export { AT_MESSAGE_CREATE, C2C_MESSAGE_CREATE, DIRECT_MESSAGE_CREATE, GROUP_AT_MESSAGE_CREATE, MESSAGE_CREATE };
447
+ export {
448
+ AT_MESSAGE_CREATE,
449
+ C2C_MESSAGE_CREATE,
450
+ DIRECT_MESSAGE_CREATE,
451
+ GROUP_AT_MESSAGE_CREATE,
452
+ MESSAGE_CREATE
453
+ }