@alemonjs/qq-bot 2.1.0-alpha.4 → 2.1.0-alpha.6
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/sends.js +566 -434
- package/package.json +1 -1
package/lib/sends.js
CHANGED
|
@@ -147,6 +147,74 @@ const createArkList = (value) => {
|
|
|
147
147
|
]
|
|
148
148
|
};
|
|
149
149
|
};
|
|
150
|
+
// 数据md转为文本
|
|
151
|
+
const createMarkdownText = (data) => {
|
|
152
|
+
const content = data
|
|
153
|
+
.map(mdItem => {
|
|
154
|
+
if (mdItem.type === 'MD.title') {
|
|
155
|
+
// \n
|
|
156
|
+
return `# ${mdItem.value}\n`;
|
|
157
|
+
}
|
|
158
|
+
else if (mdItem.type === 'MD.subtitle') {
|
|
159
|
+
// \n
|
|
160
|
+
return `## ${mdItem.value}\n`;
|
|
161
|
+
}
|
|
162
|
+
else if (mdItem.type === 'MD.text') {
|
|
163
|
+
// 正文
|
|
164
|
+
return `${mdItem.value} `;
|
|
165
|
+
}
|
|
166
|
+
else if (mdItem.type === 'MD.bold') {
|
|
167
|
+
// 加粗
|
|
168
|
+
return `**${mdItem.value}** `;
|
|
169
|
+
}
|
|
170
|
+
else if (mdItem.type === 'MD.divider') {
|
|
171
|
+
// 分割线
|
|
172
|
+
return '\n————————\n';
|
|
173
|
+
}
|
|
174
|
+
else if (mdItem.type === 'MD.italic') {
|
|
175
|
+
// 斜体
|
|
176
|
+
return `_${mdItem.value}_ `;
|
|
177
|
+
}
|
|
178
|
+
else if (mdItem.type === 'MD.italicStar') {
|
|
179
|
+
// 星号斜体
|
|
180
|
+
return `*${mdItem.value}* `;
|
|
181
|
+
}
|
|
182
|
+
else if (mdItem.type === 'MD.strikethrough') {
|
|
183
|
+
// 删除线
|
|
184
|
+
return `~~${mdItem.value}~~ `;
|
|
185
|
+
}
|
|
186
|
+
else if (mdItem.type === 'MD.blockquote') {
|
|
187
|
+
// \n
|
|
188
|
+
return `> ${mdItem.value}\n`;
|
|
189
|
+
}
|
|
190
|
+
else if (mdItem.type === 'MD.newline') {
|
|
191
|
+
// 换行
|
|
192
|
+
return '\n';
|
|
193
|
+
}
|
|
194
|
+
else if (mdItem.type === 'MD.link') {
|
|
195
|
+
//
|
|
196
|
+
return `[🔗${mdItem.value.text}](${mdItem.value.url}) `;
|
|
197
|
+
}
|
|
198
|
+
else if (mdItem.type === 'MD.image') {
|
|
199
|
+
//
|
|
200
|
+
return ` `;
|
|
201
|
+
}
|
|
202
|
+
else if (mdItem.type === 'MD.list') {
|
|
203
|
+
const listStr = mdItem.value.map(listItem => {
|
|
204
|
+
// 有序
|
|
205
|
+
if (typeof listItem.value === 'object') {
|
|
206
|
+
return `\n${listItem.value.index}. ${listItem.value.text}`;
|
|
207
|
+
}
|
|
208
|
+
// 无序
|
|
209
|
+
return `\n- ${listItem.value}`;
|
|
210
|
+
});
|
|
211
|
+
return `${listStr}\n`;
|
|
212
|
+
}
|
|
213
|
+
return;
|
|
214
|
+
})
|
|
215
|
+
.join('');
|
|
216
|
+
return content;
|
|
217
|
+
};
|
|
150
218
|
/**
|
|
151
219
|
* 群组消息
|
|
152
220
|
* @param client
|
|
@@ -155,171 +223,154 @@ const createArkList = (value) => {
|
|
|
155
223
|
* @returns
|
|
156
224
|
*/
|
|
157
225
|
const GROUP_AT_MESSAGE_CREATE = async (client, event, val) => {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
else if (item.type == 'Mention') {
|
|
165
|
-
if (item.value == 'everyone' ||
|
|
166
|
-
item.value == 'all' ||
|
|
167
|
-
item.value == '' ||
|
|
168
|
-
typeof item.value != 'string') {
|
|
169
|
-
return ``;
|
|
226
|
+
try {
|
|
227
|
+
const content = val
|
|
228
|
+
.filter(item => item.type == 'Mention' || item.type == 'Text' || item.type == 'Link')
|
|
229
|
+
.map(item => {
|
|
230
|
+
if (item.type == 'Link') {
|
|
231
|
+
return `[${item.value}](${item?.options?.link})`;
|
|
170
232
|
}
|
|
171
|
-
if (item.
|
|
172
|
-
|
|
233
|
+
else if (item.type == 'Mention') {
|
|
234
|
+
if (item.value == 'everyone' ||
|
|
235
|
+
item.value == 'all' ||
|
|
236
|
+
item.value == '' ||
|
|
237
|
+
typeof item.value != 'string') {
|
|
238
|
+
return ``;
|
|
239
|
+
}
|
|
240
|
+
if (item.options?.belong == 'user') {
|
|
241
|
+
return `<@${item.value}>`;
|
|
242
|
+
}
|
|
243
|
+
return '';
|
|
173
244
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
.
|
|
181
|
-
|
|
182
|
-
|
|
245
|
+
else if (item.type == 'Text') {
|
|
246
|
+
return item.value;
|
|
247
|
+
}
|
|
248
|
+
})
|
|
249
|
+
.join('');
|
|
250
|
+
const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
|
|
251
|
+
if (images && images.length > 0) {
|
|
252
|
+
let url = '';
|
|
253
|
+
images.filter(async (item) => {
|
|
254
|
+
// 已经处理。
|
|
255
|
+
if (url)
|
|
256
|
+
return;
|
|
257
|
+
if (item.type == 'ImageURL') {
|
|
258
|
+
url = item.value;
|
|
259
|
+
}
|
|
260
|
+
else if (item.type === 'ImageFile' || item.type === 'Image') {
|
|
261
|
+
const getFileBase64 = () => readFileSync(item.value, 'base64');
|
|
262
|
+
const file_data = item.type == 'ImageFile' ? getFileBase64() : item.value;
|
|
263
|
+
const file_info = await client
|
|
264
|
+
.postRichMediaByGroup(event.GuildId, {
|
|
265
|
+
file_type: 1,
|
|
266
|
+
file_data: file_data
|
|
267
|
+
})
|
|
268
|
+
.then(res => res?.file_info);
|
|
269
|
+
if (file_info) {
|
|
270
|
+
url = file_info;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
});
|
|
183
274
|
const res = await client.groupOpenMessages(event.GuildId, {
|
|
184
|
-
content:
|
|
275
|
+
content: content,
|
|
276
|
+
media: {
|
|
277
|
+
file_info: url
|
|
278
|
+
},
|
|
185
279
|
msg_id: event.MessageId,
|
|
186
|
-
msg_type:
|
|
280
|
+
msg_type: 7,
|
|
187
281
|
msg_seq: client.getMessageSeq(event.MessageId)
|
|
188
282
|
});
|
|
189
|
-
return
|
|
190
|
-
|
|
191
|
-
});
|
|
192
|
-
})).catch(err => [
|
|
193
|
-
createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)
|
|
194
|
-
]);
|
|
195
|
-
return res;
|
|
196
|
-
}
|
|
197
|
-
const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
|
|
198
|
-
if (images && images.length > 0) {
|
|
199
|
-
return Promise.all(images.map(async (item) => {
|
|
200
|
-
if (item.type == 'ImageURL') {
|
|
201
|
-
const res = await client.groupOpenMessages(event.GuildId, {
|
|
202
|
-
content: '',
|
|
203
|
-
media: {
|
|
204
|
-
file_info: item.value
|
|
205
|
-
},
|
|
206
|
-
msg_id: event.MessageId,
|
|
207
|
-
msg_type: 7,
|
|
208
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
209
|
-
});
|
|
210
|
-
return createResult(ResultCode.Ok, 'client.groupOpenMessages', {
|
|
283
|
+
return [
|
|
284
|
+
createResult(ResultCode.Ok, 'client.groupOpenMessages', {
|
|
211
285
|
id: res.id
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
try {
|
|
215
|
-
const getFileBase64 = () => readFileSync(item.value, 'base64');
|
|
216
|
-
const file_data = item.type == 'ImageFile' ? getFileBase64() : item.value;
|
|
217
|
-
const file_info = await client
|
|
218
|
-
.postRichMediaByGroup(event.GuildId, {
|
|
219
|
-
file_type: 1,
|
|
220
|
-
file_data: file_data
|
|
221
286
|
})
|
|
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
|
-
keyboard: {
|
|
256
|
-
id: template_id
|
|
257
|
-
},
|
|
258
|
-
msg_type: 2,
|
|
259
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
260
|
-
});
|
|
261
|
-
return createResult(ResultCode.Ok, 'client.groupOpenMessages', {
|
|
262
|
-
id: res.id
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
const rows = item.value;
|
|
266
|
-
// 构造成按钮
|
|
267
|
-
const data = createButtonsData(rows);
|
|
287
|
+
];
|
|
288
|
+
}
|
|
289
|
+
const mdAndButtons = val.filter(item => item.type == 'Markdown' || item.type == 'BT.group');
|
|
290
|
+
if (mdAndButtons && mdAndButtons.length > 0) {
|
|
291
|
+
const params = {};
|
|
292
|
+
mdAndButtons.forEach(async (item) => {
|
|
293
|
+
if (item.type === 'BT.group') {
|
|
294
|
+
// 如果是按钮,获取参数
|
|
295
|
+
const template_id = item?.options?.template_id;
|
|
296
|
+
if (template_id) {
|
|
297
|
+
params['keyboard'] = {
|
|
298
|
+
id: template_id
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
const rows = item.value;
|
|
303
|
+
// 构造成按钮
|
|
304
|
+
const content = createButtonsData(rows);
|
|
305
|
+
params['keyboard'] = {
|
|
306
|
+
content: content
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
else if (item.type === 'Markdown') {
|
|
311
|
+
// 如果是markdown,获取内容
|
|
312
|
+
const content = createMarkdownText(item.value);
|
|
313
|
+
if (content) {
|
|
314
|
+
params['markdown'] = {
|
|
315
|
+
content: content
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
});
|
|
268
320
|
const res = await client.groupOpenMessages(event.GuildId, {
|
|
269
|
-
content:
|
|
321
|
+
content: content,
|
|
270
322
|
msg_id: event.MessageId,
|
|
271
|
-
keyboard: {
|
|
272
|
-
content: data
|
|
273
|
-
},
|
|
274
323
|
msg_type: 2,
|
|
275
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
324
|
+
msg_seq: client.getMessageSeq(event.MessageId),
|
|
325
|
+
...params
|
|
276
326
|
});
|
|
277
|
-
return createResult(ResultCode.Ok, 'client.groupOpenMessages', {
|
|
278
|
-
|
|
327
|
+
return [createResult(ResultCode.Ok, 'client.groupOpenMessages', { id: res.id })];
|
|
328
|
+
}
|
|
329
|
+
// ark
|
|
330
|
+
const ark = val.filter(item => item.type == 'Ark.BigCard' || item.type == 'Ark.Card' || item.type == 'Ark.list');
|
|
331
|
+
if (ark && ark.length > 0) {
|
|
332
|
+
const params = {};
|
|
333
|
+
ark.forEach(async (item) => {
|
|
334
|
+
if (item.type === 'Ark.Card') {
|
|
335
|
+
const arkData = createArkCardData(item.value);
|
|
336
|
+
params['ark'] = arkData;
|
|
337
|
+
}
|
|
338
|
+
else if (item.type === 'Ark.BigCard') {
|
|
339
|
+
const arkData = createArkBigCardData(item.value);
|
|
340
|
+
params['ark'] = arkData;
|
|
341
|
+
}
|
|
342
|
+
else if (item.type === 'Ark.list') {
|
|
343
|
+
const arkData = createArkList(item.value);
|
|
344
|
+
params['ark'] = arkData;
|
|
345
|
+
}
|
|
279
346
|
});
|
|
280
|
-
})).catch(err => [
|
|
281
|
-
createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)
|
|
282
|
-
]);
|
|
283
|
-
}
|
|
284
|
-
// ark
|
|
285
|
-
const ark = val.filter(item => item.type == 'Ark.BigCard' || item.type == 'Ark.Card' || item.type == 'Ark.list');
|
|
286
|
-
if (ark && ark.length > 0) {
|
|
287
|
-
return Promise.all(ark.map(async (item) => {
|
|
288
|
-
if (item.type === 'Ark.Card') {
|
|
289
|
-
const arkData = createArkCardData(item.value);
|
|
290
|
-
const res = await client.groupOpenMessages(event.GuildId, {
|
|
291
|
-
msg_id: event.MessageId,
|
|
292
|
-
ark: arkData,
|
|
293
|
-
msg_type: 3,
|
|
294
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
295
|
-
});
|
|
296
|
-
return createResult(ResultCode.Ok, 'client.groupOpenMessages', {
|
|
297
|
-
id: res.id
|
|
298
|
-
});
|
|
299
|
-
}
|
|
300
|
-
if (item.type === 'Ark.BigCard') {
|
|
301
|
-
const arkData = createArkBigCardData(item.value);
|
|
302
|
-
const res = await client.groupOpenMessages(event.GuildId, {
|
|
303
|
-
msg_id: event.MessageId,
|
|
304
|
-
ark: arkData,
|
|
305
|
-
msg_type: 3,
|
|
306
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
307
|
-
});
|
|
308
|
-
return createResult(ResultCode.Ok, 'client.groupOpenMessages', { id: res.id });
|
|
309
|
-
}
|
|
310
|
-
const arkData = createArkList(item.value);
|
|
311
347
|
const res = await client.groupOpenMessages(event.GuildId, {
|
|
348
|
+
content: content,
|
|
312
349
|
msg_id: event.MessageId,
|
|
313
|
-
ark: arkData,
|
|
314
350
|
msg_type: 3,
|
|
351
|
+
msg_seq: client.getMessageSeq(event.MessageId),
|
|
352
|
+
...params
|
|
353
|
+
});
|
|
354
|
+
return [createResult(ResultCode.Ok, 'client.groupOpenMessages', { id: res.id })];
|
|
355
|
+
}
|
|
356
|
+
if (content) {
|
|
357
|
+
const res = await client.groupOpenMessages(event.GuildId, {
|
|
358
|
+
content: content,
|
|
359
|
+
msg_id: event.MessageId,
|
|
360
|
+
msg_type: 0,
|
|
315
361
|
msg_seq: client.getMessageSeq(event.MessageId)
|
|
316
362
|
});
|
|
317
|
-
return
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
363
|
+
return [
|
|
364
|
+
createResult(ResultCode.Ok, 'client.groupOpenMessages', {
|
|
365
|
+
id: res.id
|
|
366
|
+
})
|
|
367
|
+
];
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
catch (err) {
|
|
371
|
+
return [createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)];
|
|
321
372
|
}
|
|
322
|
-
return
|
|
373
|
+
return [];
|
|
323
374
|
};
|
|
324
375
|
/**
|
|
325
376
|
* 私聊消息
|
|
@@ -328,149 +379,155 @@ const GROUP_AT_MESSAGE_CREATE = async (client, event, val) => {
|
|
|
328
379
|
* @param val
|
|
329
380
|
* @returns
|
|
330
381
|
*/
|
|
331
|
-
const C2C_MESSAGE_CREATE = (client, event, val) => {
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
else if (item.type == 'Text') {
|
|
339
|
-
return item.value;
|
|
340
|
-
}
|
|
341
|
-
return '';
|
|
342
|
-
})
|
|
343
|
-
.join('');
|
|
344
|
-
if (content) {
|
|
345
|
-
return Promise.all([content].map(async (item) => {
|
|
346
|
-
const res = await client.usersOpenMessages(event.OpenId, {
|
|
347
|
-
content: item,
|
|
348
|
-
msg_id: event.MessageId,
|
|
349
|
-
msg_type: 0,
|
|
350
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
351
|
-
});
|
|
352
|
-
return createResult(ResultCode.Ok, 'client.usersOpenMessages', {
|
|
353
|
-
id: res.id
|
|
354
|
-
});
|
|
355
|
-
})).catch(err => [
|
|
356
|
-
createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)
|
|
357
|
-
]);
|
|
358
|
-
}
|
|
359
|
-
const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
|
|
360
|
-
if (images && images.length > 0) {
|
|
361
|
-
return Promise.all(images.map(async (item) => {
|
|
362
|
-
if (item.type == 'ImageURL') {
|
|
363
|
-
const res = await client.usersOpenMessages(event.OpenId, {
|
|
364
|
-
content: '',
|
|
365
|
-
media: {
|
|
366
|
-
file_info: item.value
|
|
367
|
-
},
|
|
368
|
-
msg_id: event.MessageId,
|
|
369
|
-
msg_type: 7,
|
|
370
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
371
|
-
});
|
|
372
|
-
return createResult(ResultCode.Ok, 'client.usersOpenMessages', {
|
|
373
|
-
id: res.id
|
|
374
|
-
});
|
|
382
|
+
const C2C_MESSAGE_CREATE = async (client, event, val) => {
|
|
383
|
+
try {
|
|
384
|
+
const content = val
|
|
385
|
+
.filter(item => item.type == 'Mention' || item.type == 'Text' || item.type == 'Link')
|
|
386
|
+
.map(item => {
|
|
387
|
+
if (item.type == 'Link') {
|
|
388
|
+
return `[${item.value}](${item?.options?.link})`;
|
|
375
389
|
}
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
.
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
390
|
+
else if (item.type == 'Mention') {
|
|
391
|
+
if (item.value == 'everyone' ||
|
|
392
|
+
item.value == 'all' ||
|
|
393
|
+
item.value == '' ||
|
|
394
|
+
typeof item.value != 'string') {
|
|
395
|
+
return ``;
|
|
396
|
+
}
|
|
397
|
+
if (item.options?.belong == 'user') {
|
|
398
|
+
return `<@${item.value}>`;
|
|
399
|
+
}
|
|
400
|
+
return '';
|
|
401
|
+
}
|
|
402
|
+
else if (item.type == 'Text') {
|
|
403
|
+
return item.value;
|
|
404
|
+
}
|
|
405
|
+
})
|
|
406
|
+
.join('');
|
|
407
|
+
const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
|
|
408
|
+
if (images && images.length > 0) {
|
|
409
|
+
let url = '';
|
|
410
|
+
images.filter(async (item) => {
|
|
411
|
+
// 已经处理。
|
|
412
|
+
if (url)
|
|
413
|
+
return;
|
|
414
|
+
if (item.type == 'ImageURL') {
|
|
415
|
+
url = item.value;
|
|
416
|
+
}
|
|
417
|
+
else if (item.type === 'ImageFile' || item.type === 'Image') {
|
|
418
|
+
const getFileBase64 = () => readFileSync(item.value, 'base64');
|
|
419
|
+
const file_data = item.type == 'ImageFile' ? getFileBase64() : item.value;
|
|
420
|
+
const file_info = await client
|
|
421
|
+
.postRichMediaByGroup(event.GuildId, {
|
|
422
|
+
file_type: 1,
|
|
423
|
+
file_data: file_data
|
|
424
|
+
})
|
|
425
|
+
.then(res => res?.file_info);
|
|
426
|
+
if (file_info) {
|
|
427
|
+
url = file_info;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
const res = await client.usersOpenMessages(event.OpenId, {
|
|
432
|
+
content: content,
|
|
388
433
|
media: {
|
|
389
|
-
file_info
|
|
434
|
+
file_info: url
|
|
390
435
|
},
|
|
391
436
|
msg_id: event.MessageId,
|
|
392
437
|
msg_type: 7,
|
|
393
438
|
msg_seq: client.getMessageSeq(event.MessageId)
|
|
394
439
|
});
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
]);
|
|
398
|
-
}
|
|
399
|
-
// buttons
|
|
400
|
-
const buttons = val.filter(item => item.type == 'BT.group');
|
|
401
|
-
if (buttons && buttons.length > 0) {
|
|
402
|
-
return Promise.all(buttons.map(async (item) => {
|
|
403
|
-
const template_id = item?.options?.template_id;
|
|
404
|
-
if (template_id) {
|
|
405
|
-
const res = await client.usersOpenMessages(event.GuildId, {
|
|
406
|
-
content: '',
|
|
407
|
-
msg_id: event.MessageId,
|
|
408
|
-
keyboard: {
|
|
409
|
-
id: template_id
|
|
410
|
-
},
|
|
411
|
-
msg_type: 2,
|
|
412
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
413
|
-
});
|
|
414
|
-
return createResult(ResultCode.Ok, 'client.usersOpenMessages', {
|
|
440
|
+
return [
|
|
441
|
+
createResult(ResultCode.Ok, 'client.usersOpenMessages', {
|
|
415
442
|
id: res.id
|
|
416
|
-
})
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
const
|
|
422
|
-
|
|
443
|
+
})
|
|
444
|
+
];
|
|
445
|
+
}
|
|
446
|
+
const mdAndButtons = val.filter(item => item.type == 'Markdown' || item.type == 'BT.group');
|
|
447
|
+
if (mdAndButtons && mdAndButtons.length > 0) {
|
|
448
|
+
const params = {};
|
|
449
|
+
mdAndButtons.forEach(async (item) => {
|
|
450
|
+
if (item.type === 'BT.group') {
|
|
451
|
+
// 如果是按钮,获取参数
|
|
452
|
+
const template_id = item?.options?.template_id;
|
|
453
|
+
if (template_id) {
|
|
454
|
+
params['keyboard'] = {
|
|
455
|
+
id: template_id
|
|
456
|
+
};
|
|
457
|
+
}
|
|
458
|
+
else {
|
|
459
|
+
const rows = item.value;
|
|
460
|
+
// 构造成按钮
|
|
461
|
+
const content = createButtonsData(rows);
|
|
462
|
+
params['keyboard'] = {
|
|
463
|
+
content: content
|
|
464
|
+
};
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
else if (item.type === 'Markdown') {
|
|
468
|
+
// 如果是markdown,获取内容
|
|
469
|
+
const content = createMarkdownText(item.value);
|
|
470
|
+
if (content) {
|
|
471
|
+
params['markdown'] = {
|
|
472
|
+
content: content
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
const res = await client.usersOpenMessages(event.OpenId, {
|
|
478
|
+
content: content,
|
|
423
479
|
msg_id: event.MessageId,
|
|
424
|
-
keyboard: {
|
|
425
|
-
content: data
|
|
426
|
-
},
|
|
427
480
|
msg_type: 2,
|
|
428
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
481
|
+
msg_seq: client.getMessageSeq(event.MessageId),
|
|
482
|
+
...params
|
|
429
483
|
});
|
|
430
|
-
return createResult(ResultCode.Ok, 'client.usersOpenMessages', {
|
|
431
|
-
|
|
484
|
+
return [createResult(ResultCode.Ok, 'client.usersOpenMessages', { id: res.id })];
|
|
485
|
+
}
|
|
486
|
+
// ark
|
|
487
|
+
const ark = val.filter(item => item.type == 'Ark.BigCard' || item.type == 'Ark.Card' || item.type == 'Ark.list');
|
|
488
|
+
if (ark && ark.length > 0) {
|
|
489
|
+
const params = {};
|
|
490
|
+
ark.forEach(async (item) => {
|
|
491
|
+
if (item.type === 'Ark.Card') {
|
|
492
|
+
const arkData = createArkCardData(item.value);
|
|
493
|
+
params['ark'] = arkData;
|
|
494
|
+
}
|
|
495
|
+
else if (item.type === 'Ark.BigCard') {
|
|
496
|
+
const arkData = createArkBigCardData(item.value);
|
|
497
|
+
params['ark'] = arkData;
|
|
498
|
+
}
|
|
499
|
+
else if (item.type === 'Ark.list') {
|
|
500
|
+
const arkData = createArkList(item.value);
|
|
501
|
+
params['ark'] = arkData;
|
|
502
|
+
}
|
|
432
503
|
});
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
]);
|
|
436
|
-
}
|
|
437
|
-
// ark
|
|
438
|
-
const ark = val.filter(item => item.type == 'Ark.BigCard' || item.type == 'Ark.Card' || item.type == 'Ark.list');
|
|
439
|
-
if (ark && ark.length > 0) {
|
|
440
|
-
return Promise.all(ark.map(async (item) => {
|
|
441
|
-
if (item.type === 'Ark.Card') {
|
|
442
|
-
const arkData = createArkCardData(item.value);
|
|
443
|
-
const res = await client.usersOpenMessages(event.GuildId, {
|
|
444
|
-
msg_id: event.MessageId,
|
|
445
|
-
ark: arkData,
|
|
446
|
-
msg_type: 3,
|
|
447
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
448
|
-
});
|
|
449
|
-
return createResult(ResultCode.Ok, 'client.usersOpenMessages', { id: res.id });
|
|
450
|
-
}
|
|
451
|
-
if (item.type === 'Ark.BigCard') {
|
|
452
|
-
const arkData = createArkBigCardData(item.value);
|
|
453
|
-
const res = await client.usersOpenMessages(event.GuildId, {
|
|
454
|
-
msg_id: event.MessageId,
|
|
455
|
-
ark: arkData,
|
|
456
|
-
msg_type: 3,
|
|
457
|
-
msg_seq: client.getMessageSeq(event.MessageId)
|
|
458
|
-
});
|
|
459
|
-
return createResult(ResultCode.Ok, 'client.usersOpenMessages', { id: res.id });
|
|
460
|
-
}
|
|
461
|
-
const arkData = createArkList(item.value);
|
|
462
|
-
const res = await client.usersOpenMessages(event.GuildId, {
|
|
504
|
+
const res = await client.usersOpenMessages(event.OpenId, {
|
|
505
|
+
content: content,
|
|
463
506
|
msg_id: event.MessageId,
|
|
464
|
-
ark: arkData,
|
|
465
507
|
msg_type: 3,
|
|
508
|
+
msg_seq: client.getMessageSeq(event.MessageId),
|
|
509
|
+
...params
|
|
510
|
+
});
|
|
511
|
+
return [createResult(ResultCode.Ok, 'client.usersOpenMessages', { id: res.id })];
|
|
512
|
+
}
|
|
513
|
+
if (content) {
|
|
514
|
+
const res = await client.usersOpenMessages(event.OpenId, {
|
|
515
|
+
content: content,
|
|
516
|
+
msg_id: event.MessageId,
|
|
517
|
+
msg_type: 0,
|
|
466
518
|
msg_seq: client.getMessageSeq(event.MessageId)
|
|
467
519
|
});
|
|
468
|
-
return
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
520
|
+
return [
|
|
521
|
+
createResult(ResultCode.Ok, 'client.usersOpenMessages', {
|
|
522
|
+
id: res.id
|
|
523
|
+
})
|
|
524
|
+
];
|
|
525
|
+
}
|
|
472
526
|
}
|
|
473
|
-
|
|
527
|
+
catch (err) {
|
|
528
|
+
return [createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)];
|
|
529
|
+
}
|
|
530
|
+
return [];
|
|
474
531
|
};
|
|
475
532
|
/**
|
|
476
533
|
* 频道私聊
|
|
@@ -479,195 +536,270 @@ const C2C_MESSAGE_CREATE = (client, event, val) => {
|
|
|
479
536
|
* @param val
|
|
480
537
|
* @returns
|
|
481
538
|
*/
|
|
482
|
-
const DIRECT_MESSAGE_CREATE = (client, event, val) => {
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
return '';
|
|
493
|
-
})
|
|
494
|
-
.join('');
|
|
495
|
-
if (content) {
|
|
496
|
-
return Promise.all([content].map(async (item) => {
|
|
497
|
-
const res = await client.dmsMessage(event.OpenId, {
|
|
498
|
-
content: item,
|
|
499
|
-
msg_id: event.MessageId
|
|
500
|
-
});
|
|
501
|
-
return createResult(ResultCode.Ok, 'client.dmsMessage', { id: res?.id });
|
|
502
|
-
})).catch(err => [
|
|
503
|
-
createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)
|
|
504
|
-
]);
|
|
505
|
-
}
|
|
506
|
-
const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
|
|
507
|
-
if (images && images.length > 0) {
|
|
508
|
-
return Promise.all(images.map(async (item) => {
|
|
509
|
-
if (item.value == 'ImageURL') {
|
|
510
|
-
// 请求得到buffer
|
|
511
|
-
const data = await axios
|
|
512
|
-
.get(item.value, {
|
|
513
|
-
responseType: 'arraybuffer'
|
|
514
|
-
})
|
|
515
|
-
.then(res => res?.data);
|
|
516
|
-
const res = await client.postDirectImage(event.OpenId, {
|
|
517
|
-
msg_id: event.MessageId,
|
|
518
|
-
image: data
|
|
519
|
-
});
|
|
520
|
-
return createResult(ResultCode.Ok, 'client.postDirectImage', { id: res?.id });
|
|
539
|
+
const DIRECT_MESSAGE_CREATE = async (client, event, val) => {
|
|
540
|
+
try {
|
|
541
|
+
const content = val
|
|
542
|
+
.filter(item => item.type == 'Mention' || item.type == 'Text' || item.type == 'Link')
|
|
543
|
+
.map(item => {
|
|
544
|
+
if (item.type == 'Link') {
|
|
545
|
+
return `[${item.value}](${item?.options?.link})`;
|
|
546
|
+
}
|
|
547
|
+
if (item.type == 'Text') {
|
|
548
|
+
return item.value;
|
|
521
549
|
}
|
|
522
|
-
|
|
550
|
+
return '';
|
|
551
|
+
})
|
|
552
|
+
.join('');
|
|
553
|
+
const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
|
|
554
|
+
if (images && images.length > 0) {
|
|
555
|
+
let imageBuffer = null;
|
|
556
|
+
images.forEach(async (item) => {
|
|
557
|
+
// 已经处理。
|
|
558
|
+
if (imageBuffer)
|
|
559
|
+
return;
|
|
560
|
+
if (item.value == 'ImageURL') {
|
|
561
|
+
// 请求得到buffer
|
|
562
|
+
const data = await axios
|
|
563
|
+
.get(item.value, {
|
|
564
|
+
responseType: 'arraybuffer'
|
|
565
|
+
})
|
|
566
|
+
.then(res => res?.data);
|
|
567
|
+
imageBuffer = data;
|
|
568
|
+
}
|
|
569
|
+
else {
|
|
570
|
+
const file_data = item.type == 'ImageFile' ? readFileSync(item.value) : Buffer.from(item.value, 'base64');
|
|
571
|
+
imageBuffer = file_data;
|
|
572
|
+
}
|
|
573
|
+
});
|
|
523
574
|
const res = await client.postDirectImage(event.OpenId, {
|
|
524
575
|
msg_id: event.MessageId,
|
|
525
|
-
|
|
576
|
+
content: content,
|
|
577
|
+
image: imageBuffer
|
|
526
578
|
});
|
|
527
|
-
return createResult(ResultCode.Ok, 'client.postDirectImage', { id: res?.id });
|
|
528
|
-
})).catch(err => [
|
|
529
|
-
createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)
|
|
530
|
-
]);
|
|
531
|
-
}
|
|
532
|
-
return Promise.all([]);
|
|
533
|
-
};
|
|
534
|
-
const AT_MESSAGE_CREATE = (client, event, val) => {
|
|
535
|
-
const content = val
|
|
536
|
-
.filter(item => item.type == 'Mention' || item.type == 'Text' || item.type == 'Link')
|
|
537
|
-
.map(item => {
|
|
538
|
-
if (item.type == 'Link') {
|
|
539
|
-
return `[${item.value}](${item?.options?.link})`;
|
|
579
|
+
return [createResult(ResultCode.Ok, 'client.postDirectImage', { id: res?.id })];
|
|
540
580
|
}
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
581
|
+
const mdAndButtons = val.filter(item => item.type == 'Markdown' || item.type == 'BT.group');
|
|
582
|
+
if (mdAndButtons && mdAndButtons.length > 0) {
|
|
583
|
+
const params = {};
|
|
584
|
+
mdAndButtons.forEach(async (item) => {
|
|
585
|
+
if (item.type === 'BT.group') {
|
|
586
|
+
// 如果是按钮,获取参数
|
|
587
|
+
const template_id = item?.options?.template_id;
|
|
588
|
+
if (template_id) {
|
|
589
|
+
params['keyboard'] = {
|
|
590
|
+
id: template_id
|
|
591
|
+
};
|
|
592
|
+
}
|
|
593
|
+
else {
|
|
594
|
+
const rows = item.value;
|
|
595
|
+
// 构造成按钮
|
|
596
|
+
const content = createButtonsData(rows);
|
|
597
|
+
params['keyboard'] = {
|
|
598
|
+
content: content
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
else if (item.type === 'Markdown') {
|
|
603
|
+
// 如果是markdown,获取内容
|
|
604
|
+
const content = createMarkdownText(item.value);
|
|
605
|
+
if (content) {
|
|
606
|
+
params['markdown'] = {
|
|
607
|
+
content: content
|
|
608
|
+
};
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
});
|
|
612
|
+
const res = await client.dmsMessage(event.OpenId, {
|
|
613
|
+
content: '',
|
|
614
|
+
msg_id: event.MessageId,
|
|
615
|
+
...params
|
|
616
|
+
});
|
|
617
|
+
return [createResult(ResultCode.Ok, 'client.dmsMessage', { id: res.id })];
|
|
555
618
|
}
|
|
556
|
-
|
|
557
|
-
|
|
619
|
+
// ark
|
|
620
|
+
const ark = val.filter(item => item.type == 'Ark.BigCard' || item.type == 'Ark.Card' || item.type == 'Ark.list');
|
|
621
|
+
if (ark && ark.length > 0) {
|
|
622
|
+
const params = {};
|
|
623
|
+
ark.forEach(async (item) => {
|
|
624
|
+
if (item.type === 'Ark.Card') {
|
|
625
|
+
const arkData = createArkCardData(item.value);
|
|
626
|
+
params['ark'] = arkData;
|
|
627
|
+
}
|
|
628
|
+
else if (item.type === 'Ark.BigCard') {
|
|
629
|
+
const arkData = createArkBigCardData(item.value);
|
|
630
|
+
params['ark'] = arkData;
|
|
631
|
+
}
|
|
632
|
+
else if (item.type === 'Ark.list') {
|
|
633
|
+
const arkData = createArkList(item.value);
|
|
634
|
+
params['ark'] = arkData;
|
|
635
|
+
}
|
|
636
|
+
});
|
|
637
|
+
const res = await client.dmsMessage(event.OpenId, {
|
|
638
|
+
content: content,
|
|
639
|
+
msg_id: event.MessageId,
|
|
640
|
+
...params
|
|
641
|
+
});
|
|
642
|
+
return [createResult(ResultCode.Ok, 'client.dmsMessage', { id: res.id })];
|
|
558
643
|
}
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
return Promise.all([content].map(async (item) => {
|
|
563
|
-
const res = await client.channelsMessagesPost(event.ChannelId, {
|
|
564
|
-
content: item,
|
|
644
|
+
if (content) {
|
|
645
|
+
const res = await client.dmsMessage(event.OpenId, {
|
|
646
|
+
content: content,
|
|
565
647
|
msg_id: event.MessageId
|
|
566
648
|
});
|
|
567
|
-
return createResult(ResultCode.Ok, 'client.
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
]);
|
|
649
|
+
return [createResult(ResultCode.Ok, 'client.dmsMessage', { id: res?.id })];
|
|
650
|
+
}
|
|
651
|
+
return [];
|
|
571
652
|
}
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
return Promise.all(images.map(async (item) => {
|
|
575
|
-
if (item.value == 'ImageURL') {
|
|
576
|
-
// 请求得到buffer
|
|
577
|
-
const data = await axios
|
|
578
|
-
.get(item.value, {
|
|
579
|
-
responseType: 'arraybuffer'
|
|
580
|
-
})
|
|
581
|
-
.then(res => res.data);
|
|
582
|
-
const res = await client.postImage(event.ChannelId, {
|
|
583
|
-
msg_id: event.MessageId,
|
|
584
|
-
image: data
|
|
585
|
-
});
|
|
586
|
-
return createResult(ResultCode.Ok, 'client.postImage', { id: res?.id });
|
|
587
|
-
}
|
|
588
|
-
const file_data = item.type == 'ImageFile' ? readFileSync(item.value) : Buffer.from(item.value, 'base64');
|
|
589
|
-
const res = await client.postImage(event.ChannelId, {
|
|
590
|
-
msg_id: event.MessageId,
|
|
591
|
-
image: file_data
|
|
592
|
-
});
|
|
593
|
-
return createResult(ResultCode.Ok, 'client.postImage', { id: res?.id });
|
|
594
|
-
})).catch(err => [
|
|
595
|
-
createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)
|
|
596
|
-
]);
|
|
653
|
+
catch (err) {
|
|
654
|
+
return [createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)];
|
|
597
655
|
}
|
|
598
|
-
return Promise.all([]);
|
|
599
656
|
};
|
|
600
657
|
/**
|
|
601
|
-
*
|
|
658
|
+
* 频道公聊
|
|
602
659
|
* @param event
|
|
603
660
|
* @param val
|
|
604
661
|
* @returns
|
|
605
662
|
*/
|
|
606
|
-
const MESSAGE_CREATE = (client, event, val) => {
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
if (item.type == 'Mention') {
|
|
614
|
-
if (item.value == 'everyone' ||
|
|
615
|
-
item.value == 'all' ||
|
|
616
|
-
item.value == '' ||
|
|
617
|
-
typeof item.value != 'string') {
|
|
618
|
-
return `@everyone`;
|
|
663
|
+
const MESSAGE_CREATE = async (client, event, val) => {
|
|
664
|
+
try {
|
|
665
|
+
const content = val
|
|
666
|
+
.filter(item => item.type == 'Mention' || item.type == 'Text' || item.type == 'Link')
|
|
667
|
+
.map(item => {
|
|
668
|
+
if (item.type == 'Link') {
|
|
669
|
+
return `[${item.value}](${item?.options?.link})`;
|
|
619
670
|
}
|
|
620
|
-
if (item.
|
|
621
|
-
|
|
671
|
+
if (item.type == 'Mention') {
|
|
672
|
+
if (item.value == 'everyone' ||
|
|
673
|
+
item.value == 'all' ||
|
|
674
|
+
item.value == '' ||
|
|
675
|
+
typeof item.value != 'string') {
|
|
676
|
+
return `@everyone`;
|
|
677
|
+
}
|
|
678
|
+
if (item.options?.belong == 'user') {
|
|
679
|
+
return `<@!${item.value}>`;
|
|
680
|
+
}
|
|
681
|
+
else if (item.options?.belong == 'channel') {
|
|
682
|
+
return `<#${item.value}>`;
|
|
683
|
+
}
|
|
684
|
+
return '';
|
|
622
685
|
}
|
|
623
|
-
else if (item.
|
|
624
|
-
return
|
|
686
|
+
else if (item.type == 'Text') {
|
|
687
|
+
return item.value;
|
|
625
688
|
}
|
|
626
|
-
|
|
689
|
+
})
|
|
690
|
+
.join('');
|
|
691
|
+
const images = val.filter(item => item.type == 'Image' || item.type == 'ImageFile' || item.type == 'ImageURL');
|
|
692
|
+
if (images && images.length > 0) {
|
|
693
|
+
let dataBuffer = null;
|
|
694
|
+
images.forEach(async (item) => {
|
|
695
|
+
if (dataBuffer)
|
|
696
|
+
return; // 已经处理。
|
|
697
|
+
if (item.value == 'ImageURL') {
|
|
698
|
+
// 请求得到buffer
|
|
699
|
+
const data = await axios
|
|
700
|
+
.get(item.value, {
|
|
701
|
+
responseType: 'arraybuffer'
|
|
702
|
+
})
|
|
703
|
+
.then(res => res.data);
|
|
704
|
+
dataBuffer = data;
|
|
705
|
+
}
|
|
706
|
+
else {
|
|
707
|
+
const file_data = item.type == 'ImageFile' ? readFileSync(item.value) : Buffer.from(item.value, 'base64');
|
|
708
|
+
dataBuffer = file_data;
|
|
709
|
+
}
|
|
710
|
+
});
|
|
711
|
+
const res = await client.postImage(event.ChannelId, {
|
|
712
|
+
msg_id: event.MessageId,
|
|
713
|
+
content: content,
|
|
714
|
+
image: dataBuffer
|
|
715
|
+
});
|
|
716
|
+
return [createResult(ResultCode.Ok, 'client.postImage', { id: res?.id })];
|
|
717
|
+
}
|
|
718
|
+
const mdAndButtons = val.filter(item => item.type == 'Markdown' || item.type == 'BT.group');
|
|
719
|
+
if (mdAndButtons && mdAndButtons.length > 0) {
|
|
720
|
+
const params = {};
|
|
721
|
+
mdAndButtons.forEach(async (item) => {
|
|
722
|
+
if (item.type === 'BT.group') {
|
|
723
|
+
// 如果是按钮,获取参数
|
|
724
|
+
const template_id = item?.options?.template_id;
|
|
725
|
+
if (template_id) {
|
|
726
|
+
params['keyboard'] = {
|
|
727
|
+
id: template_id
|
|
728
|
+
};
|
|
729
|
+
}
|
|
730
|
+
else {
|
|
731
|
+
const rows = item.value;
|
|
732
|
+
// 构造成按钮
|
|
733
|
+
const content = createButtonsData(rows);
|
|
734
|
+
params['keyboard'] = {
|
|
735
|
+
content: content
|
|
736
|
+
};
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
else if (item.type === 'Markdown') {
|
|
740
|
+
// 如果是markdown,获取内容
|
|
741
|
+
const content = createMarkdownText(item.value);
|
|
742
|
+
if (content) {
|
|
743
|
+
params['markdown'] = {
|
|
744
|
+
content: content
|
|
745
|
+
};
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
});
|
|
749
|
+
const res = await client.channelsMessagesPost(event.ChannelId, {
|
|
750
|
+
content: '',
|
|
751
|
+
msg_id: event.MessageId,
|
|
752
|
+
...params
|
|
753
|
+
});
|
|
754
|
+
return [createResult(ResultCode.Ok, 'client.channelsMessagesPost', { id: res.id })];
|
|
627
755
|
}
|
|
628
|
-
|
|
629
|
-
|
|
756
|
+
// ark
|
|
757
|
+
const ark = val.filter(item => item.type == 'Ark.BigCard' || item.type == 'Ark.Card' || item.type == 'Ark.list');
|
|
758
|
+
if (ark && ark.length > 0) {
|
|
759
|
+
const params = {};
|
|
760
|
+
ark.forEach(async (item) => {
|
|
761
|
+
if (item.type === 'Ark.Card') {
|
|
762
|
+
const arkData = createArkCardData(item.value);
|
|
763
|
+
params['ark'] = arkData;
|
|
764
|
+
}
|
|
765
|
+
else if (item.type === 'Ark.BigCard') {
|
|
766
|
+
const arkData = createArkBigCardData(item.value);
|
|
767
|
+
params['ark'] = arkData;
|
|
768
|
+
}
|
|
769
|
+
else if (item.type === 'Ark.list') {
|
|
770
|
+
const arkData = createArkList(item.value);
|
|
771
|
+
params['ark'] = arkData;
|
|
772
|
+
}
|
|
773
|
+
});
|
|
774
|
+
const res = await client.channelsMessagesPost(event.GuildId, {
|
|
775
|
+
content: content,
|
|
776
|
+
msg_id: event.MessageId,
|
|
777
|
+
...params
|
|
778
|
+
});
|
|
779
|
+
return [createResult(ResultCode.Ok, 'client.channelsMessagesPost', { id: res.id })];
|
|
630
780
|
}
|
|
631
|
-
|
|
632
|
-
.join('');
|
|
633
|
-
if (content) {
|
|
634
|
-
return Promise.all([content].map(async (item) => {
|
|
781
|
+
if (content) {
|
|
635
782
|
const res = await client.channelsMessagesPost(event.ChannelId, {
|
|
636
|
-
content:
|
|
783
|
+
content: content,
|
|
637
784
|
msg_id: event.MessageId
|
|
638
785
|
});
|
|
639
|
-
return createResult(ResultCode.Ok, 'client.channelsMessagesPost', { id: res?.id });
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
]);
|
|
786
|
+
return [createResult(ResultCode.Ok, 'client.channelsMessagesPost', { id: res?.id })];
|
|
787
|
+
}
|
|
788
|
+
return [];
|
|
643
789
|
}
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
return Promise.all(images.map(async (item) => {
|
|
647
|
-
if (item.value == 'ImageURL') {
|
|
648
|
-
// 请求得到buffer
|
|
649
|
-
const data = await axios
|
|
650
|
-
.get(item.value, {
|
|
651
|
-
responseType: 'arraybuffer'
|
|
652
|
-
})
|
|
653
|
-
.then(res => res.data);
|
|
654
|
-
const res = await client.postImage(event.ChannelId, {
|
|
655
|
-
msg_id: event.MessageId,
|
|
656
|
-
image: data
|
|
657
|
-
});
|
|
658
|
-
return createResult(ResultCode.Ok, 'client.postImage', { id: res?.id });
|
|
659
|
-
}
|
|
660
|
-
const file_data = item.type == 'ImageFile' ? readFileSync(item.value) : Buffer.from(item.value, 'base64');
|
|
661
|
-
const res = await client.postImage(event.ChannelId, {
|
|
662
|
-
msg_id: event.MessageId,
|
|
663
|
-
image: file_data
|
|
664
|
-
});
|
|
665
|
-
return createResult(ResultCode.Ok, 'client.postImage', { id: res?.id });
|
|
666
|
-
})).catch(err => [
|
|
667
|
-
createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)
|
|
668
|
-
]);
|
|
790
|
+
catch (err) {
|
|
791
|
+
return [createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)];
|
|
669
792
|
}
|
|
670
|
-
|
|
793
|
+
};
|
|
794
|
+
/**
|
|
795
|
+
* 频道公聊 @
|
|
796
|
+
* @param client
|
|
797
|
+
* @param event
|
|
798
|
+
* @param val
|
|
799
|
+
* @returns
|
|
800
|
+
*/
|
|
801
|
+
const AT_MESSAGE_CREATE = (client, event, val) => {
|
|
802
|
+
return MESSAGE_CREATE(client, event, val);
|
|
671
803
|
};
|
|
672
804
|
|
|
673
805
|
export { AT_MESSAGE_CREATE, C2C_MESSAGE_CREATE, DIRECT_MESSAGE_CREATE, GROUP_AT_MESSAGE_CREATE, MESSAGE_CREATE };
|