wechaty-puppet-matrix 0.0.46 → 0.0.47

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.
@@ -92,7 +92,7 @@ declare enum Status {
92
92
  export interface StatsResult {
93
93
  status: Status;
94
94
  }
95
- export type ClientEvent = 'kickout' | 'contact' | 'message' | 'scan' | 'verify-code';
95
+ export type ClientEvent = 'kickout' | 'contact' | 'message' | 'scan' | 'verify-code' | 'room-leave';
96
96
  export declare enum WechatMessageType {
97
97
  Text = 1,
98
98
  Image = 3,
@@ -278,10 +278,11 @@ declare class Client extends EventEmitter {
278
278
  emit(event: 'verify-code', verifyInfo: VerifyInfo): boolean;
279
279
  emit(event: 'update-contacts', contacts: ContactPayload[]): boolean;
280
280
  emit(event: 'room-join', info: any): boolean;
281
+ emit(event: 'room-leave', info: any): boolean;
281
282
  emit(event: 'expired', info: boolean): boolean;
282
283
  static create(options: PuppetMatrixOptions): Promise<Client>;
283
284
  private constructor();
284
- destroy(): void;
285
+ destroy(): Promise<void>;
285
286
  getTokenInfo(): Promise<boolean>;
286
287
  checkHasExpired(): void;
287
288
  initServer(): Promise<void>;
@@ -322,7 +323,7 @@ declare class Client extends EventEmitter {
322
323
  logout(): Promise<void>;
323
324
  searchContact(contactIds: string[]): Promise<ContactPayload | ContactPayload[] | undefined>;
324
325
  searchContactDetail(contactIds: string[], roomId?: string): Promise<ContactPayload | ContactPayload[] | undefined>;
325
- syncContact(init?: boolean): Promise<void>;
326
+ syncContact(init?: boolean, depth?: number): Promise<void>;
326
327
  getContactList(page?: number, pageSize?: number): Promise<void>;
327
328
  getOpenImContactList(page?: number, pageSize?: number): Promise<void>;
328
329
  getGroupList(page?: number, pageSize?: number): Promise<void>;
@@ -343,6 +344,7 @@ declare class Client extends EventEmitter {
343
344
  sendText(contactId: string, msg: string, selfId?: string | undefined): Promise<MessagePayload | void>;
344
345
  sendAtText(contactId: string, msg: string, atList: string[], selfId: string | undefined): Promise<MessagePayload | void>;
345
346
  uploadFile(url: string, type: number): Promise<any>;
347
+ private retryDownload;
346
348
  downloadImage(imageInfo: ImageMessagePayload): Promise<any>;
347
349
  downloadWWMedia(imageInfo: ImageMessagePayload, type: number): Promise<any>;
348
350
  downloadFile(imageInfo: ImageMessagePayload): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/service/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/service/request.ts"],"names":[],"mappings":"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"}
@@ -168,14 +168,18 @@ async function getImageInfo(imageUrl) {
168
168
  }
169
169
  const finalFilePath = path_1.default.join(tempFilePath, 'temp_image_' + Date.now() + path_1.default.extname(imageUrl));
170
170
  await fs_extra_1.default.writeFile(finalFilePath, response.data);
171
- const dimensions = (0, image_size_1.default)(finalFilePath);
172
- await fs_extra_1.default.unlink(finalFilePath);
173
- return {
174
- file_size: fileSize,
175
- image_width: dimensions.width,
176
- image_height: dimensions.height,
177
- file_type: dimensions.type,
178
- };
171
+ try {
172
+ const dimensions = (0, image_size_1.default)(finalFilePath);
173
+ return {
174
+ file_size: fileSize,
175
+ image_width: dimensions.width,
176
+ image_height: dimensions.height,
177
+ file_type: dimensions.type,
178
+ };
179
+ }
180
+ finally {
181
+ await fs_extra_1.default.unlink(finalFilePath).catch(() => undefined);
182
+ }
179
183
  }
180
184
  catch (error) {
181
185
  console.error('获取图片信息错误:', error);
@@ -397,11 +401,13 @@ class Client extends events_1.EventEmitter {
397
401
  this.hasExpired = false;
398
402
  this.lastInitSeqInfo = { contactSeq: 0, roomSeq: 0 };
399
403
  }
400
- destroy() {
404
+ async destroy() {
401
405
  wechaty_puppet_1.log.verbose(PRE, 'destroy()');
402
406
  this.hasEmitLogout = false;
403
- this.socket && this.socket.end();
404
- this.socket = null;
407
+ if (this.socket) {
408
+ await new Promise(resolve => this.socket.end(false, undefined, resolve));
409
+ this.socket = null;
410
+ }
405
411
  this.checkExpiredInterval && clearInterval(this.checkExpiredInterval);
406
412
  this.checkExpiredInterval = undefined;
407
413
  this.heartbeatTimer && clearTimeout(this.heartbeatTimer);
@@ -443,7 +449,11 @@ class Client extends events_1.EventEmitter {
443
449
  }, 1000 * 60 * 60 * 12);
444
450
  }
445
451
  async initServer() {
446
- await this.getTokenInfo();
452
+ const tokenValid = await this.getTokenInfo();
453
+ if (!tokenValid) {
454
+ wechaty_puppet_1.log.error(PRE, 'initServer: token invalid or expired, abort');
455
+ return;
456
+ }
447
457
  this.checkHasExpired();
448
458
  if (this.socket) {
449
459
  wechaty_puppet_1.log.error('socket had already been opened!');
@@ -678,6 +688,10 @@ class Client extends events_1.EventEmitter {
678
688
  wechaty_puppet_1.log.error('Token已到期,无法提供服务');
679
689
  return;
680
690
  }
691
+ if (!this.tokenInfo) {
692
+ wechaty_puppet_1.log.error(PRE, 'postData: tokenInfo is null, skip request');
693
+ return;
694
+ }
681
695
  const config = {
682
696
  data: {
683
697
  guid: this.tokenInfo.guid,
@@ -720,21 +734,29 @@ class Client extends events_1.EventEmitter {
720
734
  wechaty_puppet_1.log.info(PRE, 'restore() res: %s', res);
721
735
  }
722
736
  async getStats() {
723
- const res = await this.postData({
724
- path: '/client/get_client_status',
725
- data: {},
726
- });
727
- const { errcode, data } = res;
728
- if (!errcode) {
729
- return {
730
- status: data.status === 1
731
- ? Status.pending
732
- : data.status === 2
733
- ? Status.normal
734
- : Status.offline,
735
- };
737
+ try {
738
+ const res = await this.postData({
739
+ path: '/client/get_client_status',
740
+ data: {},
741
+ });
742
+ if (!res)
743
+ return { status: Status.fail };
744
+ const { errcode, data } = res;
745
+ if (!errcode) {
746
+ return {
747
+ status: data.status === 1
748
+ ? Status.pending
749
+ : data.status === 2
750
+ ? Status.normal
751
+ : Status.offline,
752
+ };
753
+ }
754
+ else {
755
+ return { status: Status.fail };
756
+ }
736
757
  }
737
- else {
758
+ catch (e) {
759
+ wechaty_puppet_1.log.error(PRE, 'getStats(): %s', e);
738
760
  return { status: Status.fail };
739
761
  }
740
762
  }
@@ -861,7 +883,11 @@ class Client extends events_1.EventEmitter {
861
883
  },
862
884
  });
863
885
  if (res.errcode === -1 && res.errmsg === 'bridge guid not exist') {
864
- wechaty_puppet_1.log.info(PRE, 'setBridgeId(%s): %s', bridgeId, 'bridge guid not exist');
886
+ if (bridgeId === '') {
887
+ wechaty_puppet_1.log.warn(PRE, 'setBridgeId: empty bridgeId still invalid, skip retry to avoid infinite recursion');
888
+ return;
889
+ }
890
+ wechaty_puppet_1.log.info(PRE, 'setBridgeId(%s): %s', bridgeId, 'bridge guid not exist, retrying with empty bridgeId');
865
891
  void this.setBridgeId('');
866
892
  return;
867
893
  }
@@ -1123,7 +1149,12 @@ class Client extends events_1.EventEmitter {
1123
1149
  };
1124
1150
  }
1125
1151
  }
1126
- async syncContact(init) {
1152
+ async syncContact(init, depth = 0) {
1153
+ const maxDepth = 200;
1154
+ if (depth >= maxDepth) {
1155
+ wechaty_puppet_1.log.warn(PRE, 'syncContact: reached max recursion depth %d, stop', maxDepth);
1156
+ return;
1157
+ }
1127
1158
  try {
1128
1159
  if (init) {
1129
1160
  this.lastInitSeqInfo = { contactSeq: 0, roomSeq: 0 };
@@ -1145,7 +1176,7 @@ class Client extends events_1.EventEmitter {
1145
1176
  this.emit('update-contacts', contactsInfo || []);
1146
1177
  }
1147
1178
  if (continueFlag) {
1148
- await this.syncContact();
1179
+ await this.syncContact(undefined, depth + 1);
1149
1180
  }
1150
1181
  }
1151
1182
  catch (e) {
@@ -1161,8 +1192,8 @@ class Client extends events_1.EventEmitter {
1161
1192
  page_size: pageSize,
1162
1193
  },
1163
1194
  });
1164
- const totalPage = res.total_page || 1;
1165
- const contactList = res.contact_list
1195
+ const totalPage = res?.total_page || 1;
1196
+ const contactList = (res?.contact_list || [])
1166
1197
  .filter((item) => item.username)
1167
1198
  .map((contact) => {
1168
1199
  return {
@@ -1197,8 +1228,8 @@ class Client extends events_1.EventEmitter {
1197
1228
  page_size: pageSize,
1198
1229
  },
1199
1230
  });
1200
- const totalPage = res.total_page || 1;
1201
- const contactList = res.contact_list
1231
+ const totalPage = res?.total_page || 1;
1232
+ const contactList = (res?.contact_list || [])
1202
1233
  .filter((item) => item.username)
1203
1234
  .map((contact) => {
1204
1235
  return {
@@ -1233,8 +1264,8 @@ class Client extends events_1.EventEmitter {
1233
1264
  page_size: pageSize,
1234
1265
  },
1235
1266
  });
1236
- const totalPage = res.total_page || 1;
1237
- const groupList = res.room_list
1267
+ const totalPage = res?.total_page || 1;
1268
+ const groupList = (res?.room_list || [])
1238
1269
  .filter((item) => item.username)
1239
1270
  .map((item) => {
1240
1271
  return {
@@ -1250,8 +1281,8 @@ class Client extends events_1.EventEmitter {
1250
1281
  if (groupList.length > 0) {
1251
1282
  this.emit('update-contacts', groupList);
1252
1283
  }
1253
- if (parseInt(page.toString()) < parseInt(totalPage.toString())) {
1254
- await this.getGroupList(parseInt(page.toString()) + 1, pageSize);
1284
+ if (page < totalPage) {
1285
+ await this.getGroupList(page + 1, pageSize);
1255
1286
  }
1256
1287
  }
1257
1288
  catch (e) {
@@ -1305,8 +1336,8 @@ class Client extends events_1.EventEmitter {
1305
1336
  page_size: pageSize,
1306
1337
  },
1307
1338
  });
1308
- const totalPage = res.total_page || 1;
1309
- const officeList = res.contact_list
1339
+ const totalPage = res?.total_page || 1;
1340
+ const officeList = (res?.contact_list || [])
1310
1341
  .filter((item) => item.username)
1311
1342
  .map((contact) => {
1312
1343
  return {
@@ -1389,6 +1420,26 @@ class Client extends events_1.EventEmitter {
1389
1420
  },
1390
1421
  });
1391
1422
  }
1423
+ async retryDownload(fn) {
1424
+ const maxRetries = 5;
1425
+ const delayMs = 2000;
1426
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
1427
+ try {
1428
+ const res = await fn();
1429
+ if (res?.url) {
1430
+ return res;
1431
+ }
1432
+ wechaty_puppet_1.log.warn(PRE, 'download attempt %d/%d failed (no url in response)', attempt, maxRetries);
1433
+ }
1434
+ catch (e) {
1435
+ wechaty_puppet_1.log.warn(PRE, 'download attempt %d/%d error: %s', attempt, maxRetries, e);
1436
+ }
1437
+ if (attempt < maxRetries) {
1438
+ await new Promise(resolve => setTimeout(resolve, delayMs));
1439
+ }
1440
+ }
1441
+ return null;
1442
+ }
1392
1443
  async downloadImage(imageInfo) {
1393
1444
  const params = {
1394
1445
  file_type: 2,
@@ -1397,17 +1448,12 @@ class Client extends events_1.EventEmitter {
1397
1448
  file_size: imageInfo.file_size,
1398
1449
  file_name: `/微信图片_${(0, date_fns_1.format)(new Date(), 'yyyyMMddHHmmss')}.png`,
1399
1450
  };
1400
- const res = await this.postData({
1401
- path: '/cloud/cdn_download',
1402
- data: params,
1403
- });
1404
- if (res.url) {
1451
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }));
1452
+ if (res?.url) {
1405
1453
  return encodeURI(res.url) || '';
1406
1454
  }
1407
- else {
1408
- console.log('downloadImage error:', res, params);
1409
- return '';
1410
- }
1455
+ wechaty_puppet_1.log.error(PRE, 'downloadImage failed after %d retries, params: %s', 5, JSON.stringify(params));
1456
+ return '';
1411
1457
  }
1412
1458
  async downloadWWMedia(imageInfo, type) {
1413
1459
  const typeNameMap = {
@@ -1422,17 +1468,12 @@ class Client extends events_1.EventEmitter {
1422
1468
  file_name: typeNameMap[type],
1423
1469
  fast_download: false,
1424
1470
  };
1425
- const res = await this.postData({
1426
- path: '/cloud/cdn_download_wwfile',
1427
- data: params,
1428
- });
1429
- if (res.url) {
1471
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download_wwfile', data: params }));
1472
+ if (res?.url) {
1430
1473
  return encodeURI(res.url) || '';
1431
1474
  }
1432
- else {
1433
- console.log('downloadWWMedia error:', res, params);
1434
- return '';
1435
- }
1475
+ wechaty_puppet_1.log.error(PRE, 'downloadWWMedia failed after %d retries, params: %s', 5, JSON.stringify(params));
1476
+ return '';
1436
1477
  }
1437
1478
  async downloadFile(imageInfo) {
1438
1479
  const params = {
@@ -1442,17 +1483,12 @@ class Client extends events_1.EventEmitter {
1442
1483
  file_size: imageInfo.file_size,
1443
1484
  file_name: '/' + sanitizeFilename(imageInfo.file_name),
1444
1485
  };
1445
- const res = await this.postData({
1446
- path: '/cloud/cdn_download',
1447
- data: params,
1448
- });
1449
- if (res.url) {
1486
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }));
1487
+ if (res?.url) {
1450
1488
  return encodeURI(res.url) || '';
1451
1489
  }
1452
- else {
1453
- console.log('downloadFile error:', res, params);
1454
- return '';
1455
- }
1490
+ wechaty_puppet_1.log.error(PRE, 'downloadFile failed after %d retries, params: %s', 5, JSON.stringify(params));
1491
+ return '';
1456
1492
  }
1457
1493
  async downloadAudio(msgId, voiceInfo, roomId) {
1458
1494
  const params = {
@@ -1462,17 +1498,12 @@ class Client extends events_1.EventEmitter {
1462
1498
  file_name: '/voice.mp3',
1463
1499
  to_mp3: true,
1464
1500
  };
1465
- const res = await this.postData({
1466
- path: '/cloud/download_voice',
1467
- data: params,
1468
- });
1469
- if (res.url) {
1501
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/download_voice', data: params }));
1502
+ if (res?.url) {
1470
1503
  return encodeURI(res.url) || '';
1471
1504
  }
1472
- else {
1473
- console.log('downloadAudio error:', res, params);
1474
- return '';
1475
- }
1505
+ wechaty_puppet_1.log.error(PRE, 'downloadAudio failed after %d retries, params: %s', 5, JSON.stringify(params));
1506
+ return '';
1476
1507
  }
1477
1508
  async downloadVideo(videoInfo) {
1478
1509
  const params = {
@@ -1482,17 +1513,12 @@ class Client extends events_1.EventEmitter {
1482
1513
  file_size: videoInfo.file_size,
1483
1514
  file_name: `/微信视频_${(0, date_fns_1.format)(new Date(), 'yyyyMMddHHmmss')}.mp4`,
1484
1515
  };
1485
- const res = await this.postData({
1486
- path: '/cloud/cdn_download',
1487
- data: params,
1488
- });
1489
- if (res.url) {
1516
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }));
1517
+ if (res?.url) {
1490
1518
  return encodeURI(res.url) || '';
1491
1519
  }
1492
- else {
1493
- console.log('downloadVideo error:', res, params);
1494
- return '';
1495
- }
1520
+ wechaty_puppet_1.log.error(PRE, 'downloadVideo failed after %d retries, params: %s', 5, JSON.stringify(params));
1521
+ return '';
1496
1522
  }
1497
1523
  async sendUrlImg(contactId, url, selfId) {
1498
1524
  try {
@@ -1548,7 +1574,7 @@ class Client extends events_1.EventEmitter {
1548
1574
  return {
1549
1575
  id: res?.newMsgId || '',
1550
1576
  timeStamp: res?.createTime || (0, date_fns_1.getUnixTime)(new Date()),
1551
- msgType: WechatMessageType.Image,
1577
+ msgType: WechatMessageType.Video,
1552
1578
  talkerId: selfId || '',
1553
1579
  text: url,
1554
1580
  msg: url,
@@ -1579,7 +1605,7 @@ class Client extends events_1.EventEmitter {
1579
1605
  return {
1580
1606
  id: res?.newMsgId || '',
1581
1607
  timeStamp: res?.createTime || '',
1582
- msgType: WechatMessageType.Image,
1608
+ msgType: WechatMessageType.File,
1583
1609
  talkerId: selfId || '',
1584
1610
  text: url,
1585
1611
  msg: url,
@@ -1902,8 +1928,8 @@ class Client extends events_1.EventEmitter {
1902
1928
  const imageBaseInfo = await getImageInfo(image);
1903
1929
  imageInfo.push({ ...res, ...imageBaseInfo });
1904
1930
  }
1905
- xmlContent = genImageSnsXml(wxid, momentInfo.content, imageInfo, momentInfo.location);
1906
1931
  }
1932
+ xmlContent = genImageSnsXml(wxid, momentInfo.content, imageInfo, momentInfo.location);
1907
1933
  }
1908
1934
  else if (momentInfo.videoUrl) {
1909
1935
  const mediaInfo = await this.uploadSnsVideo(momentInfo.videoUrl);
@@ -92,7 +92,7 @@ declare enum Status {
92
92
  export interface StatsResult {
93
93
  status: Status;
94
94
  }
95
- export type ClientEvent = 'kickout' | 'contact' | 'message' | 'scan' | 'verify-code';
95
+ export type ClientEvent = 'kickout' | 'contact' | 'message' | 'scan' | 'verify-code' | 'room-leave';
96
96
  export declare enum WechatMessageType {
97
97
  Text = 1,
98
98
  Image = 3,
@@ -278,10 +278,11 @@ declare class Client extends EventEmitter {
278
278
  emit(event: 'verify-code', verifyInfo: VerifyInfo): boolean;
279
279
  emit(event: 'update-contacts', contacts: ContactPayload[]): boolean;
280
280
  emit(event: 'room-join', info: any): boolean;
281
+ emit(event: 'room-leave', info: any): boolean;
281
282
  emit(event: 'expired', info: boolean): boolean;
282
283
  static create(options: PuppetMatrixOptions): Promise<Client>;
283
284
  private constructor();
284
- destroy(): void;
285
+ destroy(): Promise<void>;
285
286
  getTokenInfo(): Promise<boolean>;
286
287
  checkHasExpired(): void;
287
288
  initServer(): Promise<void>;
@@ -322,7 +323,7 @@ declare class Client extends EventEmitter {
322
323
  logout(): Promise<void>;
323
324
  searchContact(contactIds: string[]): Promise<ContactPayload | ContactPayload[] | undefined>;
324
325
  searchContactDetail(contactIds: string[], roomId?: string): Promise<ContactPayload | ContactPayload[] | undefined>;
325
- syncContact(init?: boolean): Promise<void>;
326
+ syncContact(init?: boolean, depth?: number): Promise<void>;
326
327
  getContactList(page?: number, pageSize?: number): Promise<void>;
327
328
  getOpenImContactList(page?: number, pageSize?: number): Promise<void>;
328
329
  getGroupList(page?: number, pageSize?: number): Promise<void>;
@@ -343,6 +344,7 @@ declare class Client extends EventEmitter {
343
344
  sendText(contactId: string, msg: string, selfId?: string | undefined): Promise<MessagePayload | void>;
344
345
  sendAtText(contactId: string, msg: string, atList: string[], selfId: string | undefined): Promise<MessagePayload | void>;
345
346
  uploadFile(url: string, type: number): Promise<any>;
347
+ private retryDownload;
346
348
  downloadImage(imageInfo: ImageMessagePayload): Promise<any>;
347
349
  downloadWWMedia(imageInfo: ImageMessagePayload, type: number): Promise<any>;
348
350
  downloadFile(imageInfo: ImageMessagePayload): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/service/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/service/request.ts"],"names":[],"mappings":"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"}
@@ -129,14 +129,18 @@ async function getImageInfo(imageUrl) {
129
129
  }
130
130
  const finalFilePath = path.join(tempFilePath, 'temp_image_' + Date.now() + path.extname(imageUrl));
131
131
  await fs.writeFile(finalFilePath, response.data);
132
- const dimensions = imageSize(finalFilePath);
133
- await fs.unlink(finalFilePath);
134
- return {
135
- file_size: fileSize,
136
- image_width: dimensions.width,
137
- image_height: dimensions.height,
138
- file_type: dimensions.type,
139
- };
132
+ try {
133
+ const dimensions = imageSize(finalFilePath);
134
+ return {
135
+ file_size: fileSize,
136
+ image_width: dimensions.width,
137
+ image_height: dimensions.height,
138
+ file_type: dimensions.type,
139
+ };
140
+ }
141
+ finally {
142
+ await fs.unlink(finalFilePath).catch(() => undefined);
143
+ }
140
144
  }
141
145
  catch (error) {
142
146
  console.error('获取图片信息错误:', error);
@@ -358,11 +362,13 @@ class Client extends EventEmitter {
358
362
  this.hasExpired = false;
359
363
  this.lastInitSeqInfo = { contactSeq: 0, roomSeq: 0 };
360
364
  }
361
- destroy() {
365
+ async destroy() {
362
366
  log.verbose(PRE, 'destroy()');
363
367
  this.hasEmitLogout = false;
364
- this.socket && this.socket.end();
365
- this.socket = null;
368
+ if (this.socket) {
369
+ await new Promise(resolve => this.socket.end(false, undefined, resolve));
370
+ this.socket = null;
371
+ }
366
372
  this.checkExpiredInterval && clearInterval(this.checkExpiredInterval);
367
373
  this.checkExpiredInterval = undefined;
368
374
  this.heartbeatTimer && clearTimeout(this.heartbeatTimer);
@@ -404,7 +410,11 @@ class Client extends EventEmitter {
404
410
  }, 1000 * 60 * 60 * 12);
405
411
  }
406
412
  async initServer() {
407
- await this.getTokenInfo();
413
+ const tokenValid = await this.getTokenInfo();
414
+ if (!tokenValid) {
415
+ log.error(PRE, 'initServer: token invalid or expired, abort');
416
+ return;
417
+ }
408
418
  this.checkHasExpired();
409
419
  if (this.socket) {
410
420
  log.error('socket had already been opened!');
@@ -639,6 +649,10 @@ class Client extends EventEmitter {
639
649
  log.error('Token已到期,无法提供服务');
640
650
  return;
641
651
  }
652
+ if (!this.tokenInfo) {
653
+ log.error(PRE, 'postData: tokenInfo is null, skip request');
654
+ return;
655
+ }
642
656
  const config = {
643
657
  data: {
644
658
  guid: this.tokenInfo.guid,
@@ -681,21 +695,29 @@ class Client extends EventEmitter {
681
695
  log.info(PRE, 'restore() res: %s', res);
682
696
  }
683
697
  async getStats() {
684
- const res = await this.postData({
685
- path: '/client/get_client_status',
686
- data: {},
687
- });
688
- const { errcode, data } = res;
689
- if (!errcode) {
690
- return {
691
- status: data.status === 1
692
- ? Status.pending
693
- : data.status === 2
694
- ? Status.normal
695
- : Status.offline,
696
- };
698
+ try {
699
+ const res = await this.postData({
700
+ path: '/client/get_client_status',
701
+ data: {},
702
+ });
703
+ if (!res)
704
+ return { status: Status.fail };
705
+ const { errcode, data } = res;
706
+ if (!errcode) {
707
+ return {
708
+ status: data.status === 1
709
+ ? Status.pending
710
+ : data.status === 2
711
+ ? Status.normal
712
+ : Status.offline,
713
+ };
714
+ }
715
+ else {
716
+ return { status: Status.fail };
717
+ }
697
718
  }
698
- else {
719
+ catch (e) {
720
+ log.error(PRE, 'getStats(): %s', e);
699
721
  return { status: Status.fail };
700
722
  }
701
723
  }
@@ -822,7 +844,11 @@ class Client extends EventEmitter {
822
844
  },
823
845
  });
824
846
  if (res.errcode === -1 && res.errmsg === 'bridge guid not exist') {
825
- log.info(PRE, 'setBridgeId(%s): %s', bridgeId, 'bridge guid not exist');
847
+ if (bridgeId === '') {
848
+ log.warn(PRE, 'setBridgeId: empty bridgeId still invalid, skip retry to avoid infinite recursion');
849
+ return;
850
+ }
851
+ log.info(PRE, 'setBridgeId(%s): %s', bridgeId, 'bridge guid not exist, retrying with empty bridgeId');
826
852
  void this.setBridgeId('');
827
853
  return;
828
854
  }
@@ -1084,7 +1110,12 @@ class Client extends EventEmitter {
1084
1110
  };
1085
1111
  }
1086
1112
  }
1087
- async syncContact(init) {
1113
+ async syncContact(init, depth = 0) {
1114
+ const maxDepth = 200;
1115
+ if (depth >= maxDepth) {
1116
+ log.warn(PRE, 'syncContact: reached max recursion depth %d, stop', maxDepth);
1117
+ return;
1118
+ }
1088
1119
  try {
1089
1120
  if (init) {
1090
1121
  this.lastInitSeqInfo = { contactSeq: 0, roomSeq: 0 };
@@ -1106,7 +1137,7 @@ class Client extends EventEmitter {
1106
1137
  this.emit('update-contacts', contactsInfo || []);
1107
1138
  }
1108
1139
  if (continueFlag) {
1109
- await this.syncContact();
1140
+ await this.syncContact(undefined, depth + 1);
1110
1141
  }
1111
1142
  }
1112
1143
  catch (e) {
@@ -1122,8 +1153,8 @@ class Client extends EventEmitter {
1122
1153
  page_size: pageSize,
1123
1154
  },
1124
1155
  });
1125
- const totalPage = res.total_page || 1;
1126
- const contactList = res.contact_list
1156
+ const totalPage = res?.total_page || 1;
1157
+ const contactList = (res?.contact_list || [])
1127
1158
  .filter((item) => item.username)
1128
1159
  .map((contact) => {
1129
1160
  return {
@@ -1158,8 +1189,8 @@ class Client extends EventEmitter {
1158
1189
  page_size: pageSize,
1159
1190
  },
1160
1191
  });
1161
- const totalPage = res.total_page || 1;
1162
- const contactList = res.contact_list
1192
+ const totalPage = res?.total_page || 1;
1193
+ const contactList = (res?.contact_list || [])
1163
1194
  .filter((item) => item.username)
1164
1195
  .map((contact) => {
1165
1196
  return {
@@ -1194,8 +1225,8 @@ class Client extends EventEmitter {
1194
1225
  page_size: pageSize,
1195
1226
  },
1196
1227
  });
1197
- const totalPage = res.total_page || 1;
1198
- const groupList = res.room_list
1228
+ const totalPage = res?.total_page || 1;
1229
+ const groupList = (res?.room_list || [])
1199
1230
  .filter((item) => item.username)
1200
1231
  .map((item) => {
1201
1232
  return {
@@ -1211,8 +1242,8 @@ class Client extends EventEmitter {
1211
1242
  if (groupList.length > 0) {
1212
1243
  this.emit('update-contacts', groupList);
1213
1244
  }
1214
- if (parseInt(page.toString()) < parseInt(totalPage.toString())) {
1215
- await this.getGroupList(parseInt(page.toString()) + 1, pageSize);
1245
+ if (page < totalPage) {
1246
+ await this.getGroupList(page + 1, pageSize);
1216
1247
  }
1217
1248
  }
1218
1249
  catch (e) {
@@ -1266,8 +1297,8 @@ class Client extends EventEmitter {
1266
1297
  page_size: pageSize,
1267
1298
  },
1268
1299
  });
1269
- const totalPage = res.total_page || 1;
1270
- const officeList = res.contact_list
1300
+ const totalPage = res?.total_page || 1;
1301
+ const officeList = (res?.contact_list || [])
1271
1302
  .filter((item) => item.username)
1272
1303
  .map((contact) => {
1273
1304
  return {
@@ -1350,6 +1381,26 @@ class Client extends EventEmitter {
1350
1381
  },
1351
1382
  });
1352
1383
  }
1384
+ async retryDownload(fn) {
1385
+ const maxRetries = 5;
1386
+ const delayMs = 2000;
1387
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
1388
+ try {
1389
+ const res = await fn();
1390
+ if (res?.url) {
1391
+ return res;
1392
+ }
1393
+ log.warn(PRE, 'download attempt %d/%d failed (no url in response)', attempt, maxRetries);
1394
+ }
1395
+ catch (e) {
1396
+ log.warn(PRE, 'download attempt %d/%d error: %s', attempt, maxRetries, e);
1397
+ }
1398
+ if (attempt < maxRetries) {
1399
+ await new Promise(resolve => setTimeout(resolve, delayMs));
1400
+ }
1401
+ }
1402
+ return null;
1403
+ }
1353
1404
  async downloadImage(imageInfo) {
1354
1405
  const params = {
1355
1406
  file_type: 2,
@@ -1358,17 +1409,12 @@ class Client extends EventEmitter {
1358
1409
  file_size: imageInfo.file_size,
1359
1410
  file_name: `/微信图片_${format(new Date(), 'yyyyMMddHHmmss')}.png`,
1360
1411
  };
1361
- const res = await this.postData({
1362
- path: '/cloud/cdn_download',
1363
- data: params,
1364
- });
1365
- if (res.url) {
1412
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }));
1413
+ if (res?.url) {
1366
1414
  return encodeURI(res.url) || '';
1367
1415
  }
1368
- else {
1369
- console.log('downloadImage error:', res, params);
1370
- return '';
1371
- }
1416
+ log.error(PRE, 'downloadImage failed after %d retries, params: %s', 5, JSON.stringify(params));
1417
+ return '';
1372
1418
  }
1373
1419
  async downloadWWMedia(imageInfo, type) {
1374
1420
  const typeNameMap = {
@@ -1383,17 +1429,12 @@ class Client extends EventEmitter {
1383
1429
  file_name: typeNameMap[type],
1384
1430
  fast_download: false,
1385
1431
  };
1386
- const res = await this.postData({
1387
- path: '/cloud/cdn_download_wwfile',
1388
- data: params,
1389
- });
1390
- if (res.url) {
1432
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download_wwfile', data: params }));
1433
+ if (res?.url) {
1391
1434
  return encodeURI(res.url) || '';
1392
1435
  }
1393
- else {
1394
- console.log('downloadWWMedia error:', res, params);
1395
- return '';
1396
- }
1436
+ log.error(PRE, 'downloadWWMedia failed after %d retries, params: %s', 5, JSON.stringify(params));
1437
+ return '';
1397
1438
  }
1398
1439
  async downloadFile(imageInfo) {
1399
1440
  const params = {
@@ -1403,17 +1444,12 @@ class Client extends EventEmitter {
1403
1444
  file_size: imageInfo.file_size,
1404
1445
  file_name: '/' + sanitizeFilename(imageInfo.file_name),
1405
1446
  };
1406
- const res = await this.postData({
1407
- path: '/cloud/cdn_download',
1408
- data: params,
1409
- });
1410
- if (res.url) {
1447
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }));
1448
+ if (res?.url) {
1411
1449
  return encodeURI(res.url) || '';
1412
1450
  }
1413
- else {
1414
- console.log('downloadFile error:', res, params);
1415
- return '';
1416
- }
1451
+ log.error(PRE, 'downloadFile failed after %d retries, params: %s', 5, JSON.stringify(params));
1452
+ return '';
1417
1453
  }
1418
1454
  async downloadAudio(msgId, voiceInfo, roomId) {
1419
1455
  const params = {
@@ -1423,17 +1459,12 @@ class Client extends EventEmitter {
1423
1459
  file_name: '/voice.mp3',
1424
1460
  to_mp3: true,
1425
1461
  };
1426
- const res = await this.postData({
1427
- path: '/cloud/download_voice',
1428
- data: params,
1429
- });
1430
- if (res.url) {
1462
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/download_voice', data: params }));
1463
+ if (res?.url) {
1431
1464
  return encodeURI(res.url) || '';
1432
1465
  }
1433
- else {
1434
- console.log('downloadAudio error:', res, params);
1435
- return '';
1436
- }
1466
+ log.error(PRE, 'downloadAudio failed after %d retries, params: %s', 5, JSON.stringify(params));
1467
+ return '';
1437
1468
  }
1438
1469
  async downloadVideo(videoInfo) {
1439
1470
  const params = {
@@ -1443,17 +1474,12 @@ class Client extends EventEmitter {
1443
1474
  file_size: videoInfo.file_size,
1444
1475
  file_name: `/微信视频_${format(new Date(), 'yyyyMMddHHmmss')}.mp4`,
1445
1476
  };
1446
- const res = await this.postData({
1447
- path: '/cloud/cdn_download',
1448
- data: params,
1449
- });
1450
- if (res.url) {
1477
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }));
1478
+ if (res?.url) {
1451
1479
  return encodeURI(res.url) || '';
1452
1480
  }
1453
- else {
1454
- console.log('downloadVideo error:', res, params);
1455
- return '';
1456
- }
1481
+ log.error(PRE, 'downloadVideo failed after %d retries, params: %s', 5, JSON.stringify(params));
1482
+ return '';
1457
1483
  }
1458
1484
  async sendUrlImg(contactId, url, selfId) {
1459
1485
  try {
@@ -1509,7 +1535,7 @@ class Client extends EventEmitter {
1509
1535
  return {
1510
1536
  id: res?.newMsgId || '',
1511
1537
  timeStamp: res?.createTime || getUnixTime(new Date()),
1512
- msgType: WechatMessageType.Image,
1538
+ msgType: WechatMessageType.Video,
1513
1539
  talkerId: selfId || '',
1514
1540
  text: url,
1515
1541
  msg: url,
@@ -1540,7 +1566,7 @@ class Client extends EventEmitter {
1540
1566
  return {
1541
1567
  id: res?.newMsgId || '',
1542
1568
  timeStamp: res?.createTime || '',
1543
- msgType: WechatMessageType.Image,
1569
+ msgType: WechatMessageType.File,
1544
1570
  talkerId: selfId || '',
1545
1571
  text: url,
1546
1572
  msg: url,
@@ -1863,8 +1889,8 @@ class Client extends EventEmitter {
1863
1889
  const imageBaseInfo = await getImageInfo(image);
1864
1890
  imageInfo.push({ ...res, ...imageBaseInfo });
1865
1891
  }
1866
- xmlContent = genImageSnsXml(wxid, momentInfo.content, imageInfo, momentInfo.location);
1867
1892
  }
1893
+ xmlContent = genImageSnsXml(wxid, momentInfo.content, imageInfo, momentInfo.location);
1868
1894
  }
1869
1895
  else if (momentInfo.videoUrl) {
1870
1896
  const mediaInfo = await this.uploadSnsVideo(momentInfo.videoUrl);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wechaty-puppet-matrix",
3
- "version": "0.0.46",
3
+ "version": "0.0.47",
4
4
  "description": "Puppet matrix for Wechaty",
5
5
  "type": "module",
6
6
  "typings": "./dist/esm/src/mod.d.ts",
@@ -230,7 +230,8 @@ export type ClientEvent =
230
230
  | 'contact'
231
231
  | 'message'
232
232
  | 'scan'
233
- | 'verify-code';
233
+ | 'verify-code'
234
+ | 'room-leave';
234
235
  /**
235
236
  * 消息类型:1|文本 3|图片 34|语音 42|名片 43|视频 47|动态表情 48|地理位置 49|分享链接或附件 2001|红包 2002|小程序 2003|群邀请 10000|系统消息
236
237
  */
@@ -442,17 +443,17 @@ async function getImageInfo (imageUrl: string) {
442
443
 
443
444
  await fs.writeFile(finalFilePath, response.data)
444
445
 
445
- // 4. 获取图片宽高
446
- const dimensions = imageSize(finalFilePath)
447
-
448
- // 5. 删除临时文件
449
- await fs.unlink(finalFilePath)
450
-
451
- return {
452
- file_size: fileSize, // 文件大小(字节)
453
- image_width: dimensions.width,
454
- image_height: dimensions.height,
455
- file_type: dimensions.type,
446
+ // 4. 获取图片宽高,确保临时文件始终被删除
447
+ try {
448
+ const dimensions = imageSize(finalFilePath)
449
+ return {
450
+ file_size: fileSize,
451
+ image_width: dimensions.width,
452
+ image_height: dimensions.height,
453
+ file_type: dimensions.type,
454
+ }
455
+ } finally {
456
+ await fs.unlink(finalFilePath).catch(() => undefined)
456
457
  }
457
458
  } catch (error) {
458
459
  console.error('获取图片信息错误:', error)
@@ -696,6 +697,7 @@ class Client extends EventEmitter {
696
697
  override emit(event: 'verify-code', verifyInfo: VerifyInfo): boolean;
697
698
  override emit(event: 'update-contacts', contacts: ContactPayload[]): boolean;
698
699
  override emit(event: 'room-join', info: any): boolean;
700
+ override emit(event: 'room-leave', info: any): boolean;
699
701
  override emit(event: 'expired', info: boolean): boolean;
700
702
 
701
703
  override emit (event: ClientEvent, ...args: any[]): boolean {
@@ -721,11 +723,13 @@ class Client extends EventEmitter {
721
723
  this.lastInitSeqInfo = { contactSeq: 0, roomSeq: 0 }
722
724
  }
723
725
 
724
- destroy () {
726
+ async destroy () {
725
727
  log.verbose(PRE, 'destroy()')
726
728
  this.hasEmitLogout = false
727
- this.socket && this.socket.end()
728
- this.socket = null
729
+ if (this.socket) {
730
+ await new Promise<void>(resolve => this.socket.end(false, undefined, resolve))
731
+ this.socket = null
732
+ }
729
733
  this.checkExpiredInterval && clearInterval(this.checkExpiredInterval)
730
734
  this.checkExpiredInterval = undefined
731
735
  this.heartbeatTimer && clearTimeout(this.heartbeatTimer)
@@ -768,7 +772,11 @@ class Client extends EventEmitter {
768
772
  }
769
773
 
770
774
  async initServer () {
771
- await this.getTokenInfo()
775
+ const tokenValid = await this.getTokenInfo()
776
+ if (!tokenValid) {
777
+ log.error(PRE, 'initServer: token invalid or expired, abort')
778
+ return
779
+ }
772
780
  this.checkHasExpired()
773
781
  if (this.socket) {
774
782
  log.error('socket had already been opened!')
@@ -980,7 +988,6 @@ class Client extends EventEmitter {
980
988
  // this.emit('room-join', params)
981
989
  break
982
990
  case NotifyTypeEnum.RoomMemberDel:
983
- // @ts-ignore
984
991
  this.emit('room-leave', {
985
992
  roomId: data.room_username,
986
993
  leaveIds: data.member_list.map((item: any) => item.username),
@@ -1067,6 +1074,10 @@ class Client extends EventEmitter {
1067
1074
  log.error('Token已到期,无法提供服务')
1068
1075
  return
1069
1076
  }
1077
+ if (!this.tokenInfo) {
1078
+ log.error(PRE, 'postData: tokenInfo is null, skip request')
1079
+ return
1080
+ }
1070
1081
  const config: any = {
1071
1082
  data: {
1072
1083
  guid: this.tokenInfo.guid,
@@ -1121,22 +1132,28 @@ class Client extends EventEmitter {
1121
1132
  * 获取微信运行状态
1122
1133
  */
1123
1134
  public async getStats (): Promise<StatsResult> {
1124
- const res = await this.postData({
1125
- path: '/client/get_client_status',
1126
- data: {},
1127
- })
1128
- // 0: stop, 1: running, 2: online
1129
- const { errcode, data } = res
1130
- if (!errcode) {
1131
- return {
1132
- status:
1133
- data.status === 1
1134
- ? Status.pending
1135
- : data.status === 2
1136
- ? Status.normal
1137
- : Status.offline,
1135
+ try {
1136
+ const res = await this.postData({
1137
+ path: '/client/get_client_status',
1138
+ data: {},
1139
+ })
1140
+ // 0: stop, 1: running, 2: online
1141
+ if (!res) return { status: Status.fail }
1142
+ const { errcode, data } = res
1143
+ if (!errcode) {
1144
+ return {
1145
+ status:
1146
+ data.status === 1
1147
+ ? Status.pending
1148
+ : data.status === 2
1149
+ ? Status.normal
1150
+ : Status.offline,
1151
+ }
1152
+ } else {
1153
+ return { status: Status.fail }
1138
1154
  }
1139
- } else {
1155
+ } catch (e) {
1156
+ log.error(PRE, 'getStats(): %s', e)
1140
1157
  return { status: Status.fail }
1141
1158
  }
1142
1159
  }
@@ -1301,7 +1318,11 @@ class Client extends EventEmitter {
1301
1318
  },
1302
1319
  })
1303
1320
  if (res.errcode === -1 && res.errmsg === 'bridge guid not exist') {
1304
- log.info(PRE, 'setBridgeId(%s): %s', bridgeId, 'bridge guid not exist')
1321
+ if (bridgeId === '') {
1322
+ log.warn(PRE, 'setBridgeId: empty bridgeId still invalid, skip retry to avoid infinite recursion')
1323
+ return
1324
+ }
1325
+ log.info(PRE, 'setBridgeId(%s): %s', bridgeId, 'bridge guid not exist, retrying with empty bridgeId')
1305
1326
  void this.setBridgeId('')
1306
1327
  return
1307
1328
  }
@@ -1589,7 +1610,12 @@ class Client extends EventEmitter {
1589
1610
  /**
1590
1611
  * 同步联系人
1591
1612
  */
1592
- public async syncContact (init?: boolean): Promise<void> {
1613
+ public async syncContact (init?: boolean, depth = 0): Promise<void> {
1614
+ const maxDepth = 200
1615
+ if (depth >= maxDepth) {
1616
+ log.warn(PRE, 'syncContact: reached max recursion depth %d, stop', maxDepth)
1617
+ return
1618
+ }
1593
1619
  try {
1594
1620
  if (init) {
1595
1621
  this.lastInitSeqInfo = { contactSeq: 0, roomSeq: 0 }
@@ -1615,7 +1641,7 @@ class Client extends EventEmitter {
1615
1641
  }
1616
1642
 
1617
1643
  if (continueFlag) {
1618
- await this.syncContact()
1644
+ await this.syncContact(undefined, depth + 1)
1619
1645
  }
1620
1646
  } catch (e) {
1621
1647
  log.error(PRE, 'syncContact(): %s', e)
@@ -1638,8 +1664,8 @@ class Client extends EventEmitter {
1638
1664
  },
1639
1665
  })
1640
1666
 
1641
- const totalPage = res.total_page || 1
1642
- const contactList: ContactPayload[] = res.contact_list
1667
+ const totalPage = res?.total_page || 1
1668
+ const contactList: ContactPayload[] = (res?.contact_list || [])
1643
1669
  .filter((item: any) => item.username)
1644
1670
  .map((contact: any) => {
1645
1671
  return {
@@ -1679,8 +1705,8 @@ class Client extends EventEmitter {
1679
1705
  },
1680
1706
  })
1681
1707
 
1682
- const totalPage = res.total_page || 1
1683
- const contactList: ContactPayload[] = res.contact_list
1708
+ const totalPage = res?.total_page || 1
1709
+ const contactList: ContactPayload[] = (res?.contact_list || [])
1684
1710
  .filter((item: any) => item.username)
1685
1711
  .map((contact: any) => {
1686
1712
  return {
@@ -1722,8 +1748,8 @@ class Client extends EventEmitter {
1722
1748
  page_size: pageSize,
1723
1749
  },
1724
1750
  })
1725
- const totalPage = res.total_page || 1
1726
- const groupList: ContactPayload[] = res.room_list
1751
+ const totalPage = res?.total_page || 1
1752
+ const groupList: ContactPayload[] = (res?.room_list || [])
1727
1753
  .filter((item: any) => item.username)
1728
1754
  .map((item: any) => {
1729
1755
  return {
@@ -1741,8 +1767,8 @@ class Client extends EventEmitter {
1741
1767
  this.emit('update-contacts', groupList)
1742
1768
  }
1743
1769
 
1744
- if (parseInt(page.toString()) < parseInt(totalPage.toString())) {
1745
- await this.getGroupList(parseInt(page.toString()) + 1, pageSize)
1770
+ if (page < totalPage) {
1771
+ await this.getGroupList(page + 1, pageSize)
1746
1772
  }
1747
1773
  } catch (e) {
1748
1774
  log.error(PRE, 'getGroupList(): %s', e)
@@ -1804,8 +1830,8 @@ class Client extends EventEmitter {
1804
1830
  page_size: pageSize,
1805
1831
  },
1806
1832
  })
1807
- const totalPage = res.total_page || 1
1808
- const officeList = res.contact_list
1833
+ const totalPage = res?.total_page || 1
1834
+ const officeList = (res?.contact_list || [])
1809
1835
  .filter((item: any) => item.username)
1810
1836
  .map((contact: any) => {
1811
1837
  return {
@@ -1920,6 +1946,26 @@ class Client extends EventEmitter {
1920
1946
  })
1921
1947
  }
1922
1948
 
1949
+ private async retryDownload (fn: () => Promise<any>): Promise<any> {
1950
+ const maxRetries = 5
1951
+ const delayMs = 2000
1952
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
1953
+ try {
1954
+ const res = await fn()
1955
+ if (res?.url) {
1956
+ return res
1957
+ }
1958
+ log.warn(PRE, 'download attempt %d/%d failed (no url in response)', attempt, maxRetries)
1959
+ } catch (e) {
1960
+ log.warn(PRE, 'download attempt %d/%d error: %s', attempt, maxRetries, e)
1961
+ }
1962
+ if (attempt < maxRetries) {
1963
+ await new Promise(resolve => setTimeout(resolve, delayMs))
1964
+ }
1965
+ }
1966
+ return null
1967
+ }
1968
+
1923
1969
  public async downloadImage (imageInfo: ImageMessagePayload): Promise<any> {
1924
1970
  const params = {
1925
1971
  file_type: 2,
@@ -1928,16 +1974,12 @@ class Client extends EventEmitter {
1928
1974
  file_size: imageInfo.file_size,
1929
1975
  file_name: `/微信图片_${format(new Date(), 'yyyyMMddHHmmss')}.png`,
1930
1976
  }
1931
- const res = await this.postData({
1932
- path: '/cloud/cdn_download',
1933
- data: params,
1934
- })
1935
- if (res.url) {
1977
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }))
1978
+ if (res?.url) {
1936
1979
  return encodeURI(res.url) || ''
1937
- } else {
1938
- console.log('downloadImage error:', res, params)
1939
- return ''
1940
1980
  }
1981
+ log.error(PRE, 'downloadImage failed after %d retries, params: %s', 5, JSON.stringify(params))
1982
+ return ''
1941
1983
  }
1942
1984
 
1943
1985
  public async downloadWWMedia (imageInfo: ImageMessagePayload, type: number): Promise<any> {
@@ -1953,16 +1995,12 @@ class Client extends EventEmitter {
1953
1995
  file_name: typeNameMap[type],
1954
1996
  fast_download: false,
1955
1997
  }
1956
- const res = await this.postData({
1957
- path: '/cloud/cdn_download_wwfile',
1958
- data: params,
1959
- })
1960
- if (res.url) {
1998
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download_wwfile', data: params }))
1999
+ if (res?.url) {
1961
2000
  return encodeURI(res.url) || ''
1962
- } else {
1963
- console.log('downloadWWMedia error:', res, params)
1964
- return ''
1965
2001
  }
2002
+ log.error(PRE, 'downloadWWMedia failed after %d retries, params: %s', 5, JSON.stringify(params))
2003
+ return ''
1966
2004
  }
1967
2005
 
1968
2006
  /**
@@ -1977,17 +2015,12 @@ class Client extends EventEmitter {
1977
2015
  file_size: imageInfo.file_size,
1978
2016
  file_name: '/' + sanitizeFilename(imageInfo.file_name),
1979
2017
  }
1980
- const res = await this.postData({
1981
- path: '/cloud/cdn_download',
1982
- data: params,
1983
- })
1984
-
1985
- if (res.url) {
2018
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }))
2019
+ if (res?.url) {
1986
2020
  return encodeURI(res.url) || ''
1987
- } else {
1988
- console.log('downloadFile error:', res, params)
1989
- return ''
1990
2021
  }
2022
+ log.error(PRE, 'downloadFile failed after %d retries, params: %s', 5, JSON.stringify(params))
2023
+ return ''
1991
2024
  }
1992
2025
 
1993
2026
  /**
@@ -2006,17 +2039,12 @@ class Client extends EventEmitter {
2006
2039
  file_name: '/voice.mp3',
2007
2040
  to_mp3: true,
2008
2041
  }
2009
- const res = await this.postData({
2010
- path: '/cloud/download_voice',
2011
- data: params,
2012
- })
2013
-
2014
- if (res.url) {
2042
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/download_voice', data: params }))
2043
+ if (res?.url) {
2015
2044
  return encodeURI(res.url) || ''
2016
- } else {
2017
- console.log('downloadAudio error:', res, params)
2018
- return ''
2019
2045
  }
2046
+ log.error(PRE, 'downloadAudio failed after %d retries, params: %s', 5, JSON.stringify(params))
2047
+ return ''
2020
2048
  }
2021
2049
 
2022
2050
  /**
@@ -2031,18 +2059,12 @@ class Client extends EventEmitter {
2031
2059
  file_size: videoInfo.file_size,
2032
2060
  file_name: `/微信视频_${format(new Date(), 'yyyyMMddHHmmss')}.mp4`,
2033
2061
  }
2034
-
2035
- const res = await this.postData({
2036
- path: '/cloud/cdn_download',
2037
- data: params,
2038
- })
2039
-
2040
- if (res.url) {
2062
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }))
2063
+ if (res?.url) {
2041
2064
  return encodeURI(res.url) || ''
2042
- } else {
2043
- console.log('downloadVideo error:', res, params)
2044
- return ''
2045
2065
  }
2066
+ log.error(PRE, 'downloadVideo failed after %d retries, params: %s', 5, JSON.stringify(params))
2067
+ return ''
2046
2068
  }
2047
2069
 
2048
2070
  /**
@@ -2118,7 +2140,7 @@ class Client extends EventEmitter {
2118
2140
  return {
2119
2141
  id: res?.newMsgId || '',
2120
2142
  timeStamp: res?.createTime || getUnixTime(new Date()),
2121
- msgType: WechatMessageType.Image,
2143
+ msgType: WechatMessageType.Video,
2122
2144
  talkerId: selfId || '',
2123
2145
  text: url,
2124
2146
  msg: url,
@@ -2158,7 +2180,7 @@ class Client extends EventEmitter {
2158
2180
  return {
2159
2181
  id: res?.newMsgId || '',
2160
2182
  timeStamp: res?.createTime || '',
2161
- msgType: WechatMessageType.Image,
2183
+ msgType: WechatMessageType.File,
2162
2184
  talkerId: selfId || '',
2163
2185
  text: url,
2164
2186
  msg: url,
@@ -2652,9 +2674,8 @@ class Client extends EventEmitter {
2652
2674
  const imageBaseInfo = await getImageInfo(image)
2653
2675
  imageInfo.push({ ...res, ...imageBaseInfo })
2654
2676
  }
2655
- xmlContent = genImageSnsXml(wxid, momentInfo.content, imageInfo, momentInfo.location)
2656
-
2657
2677
  }
2678
+ xmlContent = genImageSnsXml(wxid, momentInfo.content, imageInfo, momentInfo.location)
2658
2679
  } else if (momentInfo.videoUrl) {
2659
2680
  const mediaInfo: any = await this.uploadSnsVideo(momentInfo.videoUrl)
2660
2681
  if (mediaInfo) {