wechaty-puppet-matrix 0.0.55 → 0.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/cjs/src/engine-schema.d.ts +1 -0
  2. package/dist/cjs/src/engine-schema.d.ts.map +1 -1
  3. package/dist/cjs/src/matrix/messages/message-contact-card.d.ts +16 -0
  4. package/dist/cjs/src/matrix/messages/message-contact-card.d.ts.map +1 -0
  5. package/dist/cjs/src/matrix/messages/message-contact-card.js +25 -0
  6. package/dist/cjs/src/matrix/messages/message-emotion.d.ts +7 -0
  7. package/dist/cjs/src/matrix/messages/message-emotion.d.ts.map +1 -1
  8. package/dist/cjs/src/matrix/messages/message-emotion.js +20 -0
  9. package/dist/cjs/src/matrix/service/request.d.ts +12 -0
  10. package/dist/cjs/src/matrix/service/request.d.ts.map +1 -1
  11. package/dist/cjs/src/matrix/service/request.js +138 -0
  12. package/dist/cjs/src/puppet-matrix.d.ts +2 -0
  13. package/dist/cjs/src/puppet-matrix.d.ts.map +1 -1
  14. package/dist/cjs/src/puppet-matrix.js +105 -32
  15. package/dist/esm/src/engine-schema.d.ts +1 -0
  16. package/dist/esm/src/engine-schema.d.ts.map +1 -1
  17. package/dist/esm/src/matrix/messages/message-contact-card.d.ts +16 -0
  18. package/dist/esm/src/matrix/messages/message-contact-card.d.ts.map +1 -0
  19. package/dist/esm/src/matrix/messages/message-contact-card.js +22 -0
  20. package/dist/esm/src/matrix/messages/message-emotion.d.ts +7 -0
  21. package/dist/esm/src/matrix/messages/message-emotion.d.ts.map +1 -1
  22. package/dist/esm/src/matrix/messages/message-emotion.js +19 -0
  23. package/dist/esm/src/matrix/service/request.d.ts +12 -0
  24. package/dist/esm/src/matrix/service/request.d.ts.map +1 -1
  25. package/dist/esm/src/matrix/service/request.js +138 -0
  26. package/dist/esm/src/puppet-matrix.d.ts +2 -0
  27. package/dist/esm/src/puppet-matrix.d.ts.map +1 -1
  28. package/dist/esm/src/puppet-matrix.js +105 -32
  29. package/package.json +1 -1
  30. package/src/engine-schema.ts +1 -0
  31. package/src/matrix/messages/message-contact-card.ts +48 -0
  32. package/src/matrix/messages/message-emotion.ts +36 -0
  33. package/src/matrix/service/request.ts +189 -0
  34. package/src/puppet-matrix.ts +130 -34
@@ -56,6 +56,7 @@ const message_image_js_1 = require("./matrix/messages/message-image.js");
56
56
  const message_audio_js_1 = require("./matrix/messages/message-audio.js");
57
57
  const message_video_js_1 = require("./matrix/messages/message-video.js");
58
58
  const message_location_js_1 = require("./matrix/messages/message-location.js");
59
+ const message_contact_card_js_1 = require("./matrix/messages/message-contact-card.js");
59
60
  const cached_promise_js_1 = require("./matrix/utils/cached-promise.js");
60
61
  const message_js_1 = require("./matrix/schema-mapper/message.js");
61
62
  const contact_js_1 = require("./matrix/schema-mapper/contact.js");
@@ -63,7 +64,6 @@ const room_js_1 = require("./matrix/schema-mapper/room.js");
63
64
  const mod_js_1 = require("./matrix/events/mod.js");
64
65
  const cleanup_js_1 = require("./cleanup.js");
65
66
  const package_json_js_1 = require("./package-json.js");
66
- const xml_to_json_js_1 = require("./matrix/utils/xml-to-json.js");
67
67
  const VERSION = package_json_js_1.packageJson.version || '0.0.0';
68
68
  exports.VERSION = VERSION;
69
69
  const PRE = '[PuppetMatrix]';
@@ -561,7 +561,7 @@ class PuppetMatrix extends PUPPET.Puppet {
561
561
  hello = option.hello;
562
562
  }
563
563
  }
564
- await this._client?.addFriendByWxid({ content: hello, ticket, scene: addContactScene, wxid: contactId });
564
+ await this._client?.addFriendByWxid({ content: hello, ticket, scene: addContactScene, wxid: cachedContactSearch?.wxid || contactId });
565
565
  }
566
566
  async friendshipSearchPhone(phone) {
567
567
  return this._friendshipSearch(phone, '15');
@@ -598,7 +598,58 @@ class PuppetMatrix extends PUPPET.Puppet {
598
598
  }
599
599
  async messageContact(messageId) {
600
600
  wechaty_puppet_1.log.verbose('PuppetWeChat', 'messageContact(%s)', messageId);
601
- return PUPPET.throwUnsupportedError(messageId);
601
+ const rawPayload = await this.messageRawPayload(messageId);
602
+ if (rawPayload.msgType !== types_js_1.WechatMessageType.ShareCard) {
603
+ throw new Error(`message ${messageId} is not a contact card`);
604
+ }
605
+ const card = await (0, message_contact_card_js_1.parseContactCardMessagePayload)(rawPayload.msg);
606
+ if (!card) {
607
+ throw new Error(`can not parse contact card from message ${messageId}`);
608
+ }
609
+ if (!card.username.includes(STRANGER_SUFFIX)) {
610
+ return card.username;
611
+ }
612
+ const friendId = await this._findFriendByCard(card);
613
+ if (friendId) {
614
+ wechaty_puppet_1.log.verbose(PRE, 'messageContact(%s) matched friend %s', messageId, friendId);
615
+ return friendId;
616
+ }
617
+ const searchId = `${SEARCH_CONTACT_PREFIX}${card.username}`;
618
+ await this._cacheMgr.setContactSearch(searchId, {
619
+ alias: '',
620
+ avatar: card.avatar,
621
+ city: card.city,
622
+ country: '',
623
+ isFriend: 0,
624
+ name: card.nickname,
625
+ province: card.province,
626
+ scene: card.scene,
627
+ sex: card.sex,
628
+ sign: card.sign,
629
+ ticket: card.antispamticket,
630
+ wxNum: card.alias,
631
+ wxid: card.username,
632
+ });
633
+ return searchId;
634
+ }
635
+ async _findFriendByCard(card) {
636
+ const avatarKey = (url) => (url || '').replace(/^https?:\/\//, '').replace(/\/\d+$/, '');
637
+ const cardAvatar = avatarKey(card.avatar);
638
+ const contacts = (await this._cacheMgr.getAllContacts())
639
+ .filter(c => c.wxid && !(0, is_type_js_1.isRoomId)(c.wxid) && !c.wxid.includes(STRANGER_SUFFIX) && c.isFriend !== 0);
640
+ if (cardAvatar) {
641
+ const byAvatar = contacts.find(c => avatarKey(c.avatar) === cardAvatar);
642
+ if (byAvatar) {
643
+ return byAvatar.wxid;
644
+ }
645
+ }
646
+ if (card.nickname) {
647
+ const byName = contacts.filter(c => c.name === card.nickname);
648
+ if (byName.length === 1) {
649
+ return byName[0].wxid;
650
+ }
651
+ }
652
+ return undefined;
602
653
  }
603
654
  async messageChannel(messageId) {
604
655
  wechaty_puppet_1.log.verbose('PuppetService', 'messageChannel(%s)', messageId);
@@ -637,12 +688,20 @@ class PuppetMatrix extends PUPPET.Puppet {
637
688
  return this._getMessageFileFileBox(messageId, messagePayload);
638
689
  case PUPPET.types.Message.Emoticon: {
639
690
  const emotionPayload = await (0, message_emotion_js_1.parseEmotionMessagePayload)(messagePayload);
640
- const emoticonBox = emotionPayload.is_ww ? await this._client?.downloadWWMedia({
641
- aes_key: emotionPayload.aeskey || '',
642
- auth_key: emotionPayload.authkey || '',
643
- file_id: emotionPayload.cdnurl || '',
644
- file_name: `message-${messageId}-emoticon.jpg`,
645
- }, 3) : file_box_1.FileBox.fromUrl(emotionPayload.cdnurl, { name: `message-${messageId}-emoticon.jpg` });
691
+ const url = emotionPayload.is_ww
692
+ ? (await this._client?.downloadWWMedia({
693
+ aes_key: emotionPayload.aeskey || '',
694
+ auth_key: emotionPayload.authkey || '',
695
+ file_id: emotionPayload.cdnurl || '',
696
+ file_name: `message-${messageId}-emoticon.gif`,
697
+ }, 3)) || ''
698
+ : emotionPayload.cdnurl;
699
+ if (!url) {
700
+ throw new Error(`Can not get emoticon url for message: ${messageId}`);
701
+ }
702
+ const head = await (0, file_type_js_1.fetchRemoteHead)(url);
703
+ const ext = (head && (0, file_type_js_1.detectImageExt)(head)) || (emotionPayload.type === 2 && !emotionPayload.game ? 'gif' : 'png');
704
+ const emoticonBox = file_box_1.FileBox.fromUrl(url, { name: `message-${messageId}-emoticon.${ext}` });
646
705
  emoticonBox.metadata = {
647
706
  payload: emotionPayload,
648
707
  type: 'emoticon',
@@ -777,28 +836,14 @@ class PuppetMatrix extends PUPPET.Puppet {
777
836
  }
778
837
  }
779
838
  async messageSendContact(toUserId, contactId) {
780
- wechaty_puppet_1.log.verbose('PuppetWeChat', 'messageSend("%s", %s)', toUserId, contactId);
839
+ wechaty_puppet_1.log.verbose('PuppetWeChat', 'messageSendContact("%s", %s)', toUserId, contactId);
781
840
  const contactPayload = await this.contactRawPayload(contactId);
782
- const xmlObj = {
783
- msg: {
784
- antispamticket: '',
785
- bigheadimgurl: contactPayload?.avatar,
786
- brandFlags: '0',
787
- certflag: '0',
788
- city: contactPayload?.city,
789
- fullpy: contactPayload?.name,
790
- imagestatus: '3',
791
- nickname: contactPayload?.name,
792
- province: contactPayload?.province,
793
- regionCode: 'CN_Shanghai',
794
- scene: '17',
795
- sex: contactPayload?.sex,
796
- smallheadimgurl: contactPayload?.avatar,
797
- username: contactPayload?.ticket,
798
- },
799
- };
800
- const xml = (0, xml_to_json_js_1.JsonToXml)(xmlObj);
801
- const res = await this._client?.sendContactCard(toUserId, xml, this._self?.wxid);
841
+ const res = await this._client?.sendContact({
842
+ shareHeadImg: contactPayload?.avatar,
843
+ shareId: contactPayload?.wxid || contactId,
844
+ shareNickname: contactPayload?.name,
845
+ toId: toUserId,
846
+ }, this._self?.wxid);
802
847
  if (res) {
803
848
  await this._cacheMgr?.setMessage(res.id, res);
804
849
  return res.id;
@@ -811,7 +856,16 @@ class PuppetMatrix extends PUPPET.Puppet {
811
856
  : path_1.default.extname(fileBox.name);
812
857
  const fileUrl = fileBox.remoteUrl || '';
813
858
  if (metadata.type === 'emoticon') {
814
- PUPPET.throwUnsupportedError(conversationId, fileBox);
859
+ const emoji = metadata.payload;
860
+ const byMd5 = emoji?.md5 && emoji.len
861
+ ? await this._client?.sendEmojiMd5(conversationId, emoji.md5, emoji.len, this._self?.wxid)
862
+ : undefined;
863
+ const msgInfo = byMd5 || (fileUrl ? await this._client?.sendEmojiUrl(conversationId, fileUrl, this._self?.wxid) : undefined);
864
+ if (!msgInfo) {
865
+ throw new Error(`send emoticon failed: ${fileBox.name}`);
866
+ }
867
+ await this._cacheMgr?.setMessage(msgInfo.id, msgInfo);
868
+ return msgInfo.id;
815
869
  }
816
870
  else if (fileBox.mediaType.startsWith('image/')) {
817
871
  if (fileUrl) {
@@ -916,8 +970,27 @@ class PuppetMatrix extends PUPPET.Puppet {
916
970
  throw new Error(`Wrong Post!!! please check your Post payload to make sure it right ${conversationId}`);
917
971
  }
918
972
  }
973
+ async sendPat(conversationId, contactId) {
974
+ wechaty_puppet_1.log.verbose(PRE, 'sendPat(%s, %s)', conversationId, contactId);
975
+ const patted = contactId || conversationId;
976
+ if ((0, is_type_js_1.isRoomId)(patted)) {
977
+ throw new Error('sendPat: contactId is required in room');
978
+ }
979
+ return (await this._client?.sendPat(conversationId, patted)) || false;
980
+ }
919
981
  async messageRecall(messageId) {
920
- return PUPPET.throwUnsupportedError(messageId);
982
+ wechaty_puppet_1.log.verbose(PRE, 'messageRecall(%s)', messageId);
983
+ const payload = await this._cacheMgr?.getMessage(messageId);
984
+ if (!payload) {
985
+ wechaty_puppet_1.log.warn(PRE, 'messageRecall(%s): message not found in cache', messageId);
986
+ return false;
987
+ }
988
+ const toId = payload.listenerId || payload.fromWxid || '';
989
+ if (!toId) {
990
+ wechaty_puppet_1.log.warn(PRE, 'messageRecall(%s): can not find conversation id', messageId);
991
+ return false;
992
+ }
993
+ return (await this._client?.revokeMsg(toId, messageId, payload.clientMsgId)) || false;
921
994
  }
922
995
  async messageForward(toUserName, messageId) {
923
996
  const messagePayload = await this.messageRawPayload(messageId);
@@ -10,6 +10,7 @@ export interface MessagePayload {
10
10
  msg: string;
11
11
  listenerId: string;
12
12
  voiceText?: string;
13
+ clientMsgId?: number;
13
14
  }
14
15
  export interface ChatRoomMember {
15
16
  wxid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"engine-schema.d.ts","sourceRoot":"","sources":["../../../src/engine-schema.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAGD,oBAAY,OAAO;IACjB,GAAG,IAAI;IACP,MAAM,IAAI;CACX;AAKD,aAAK,aAAa;IAChB,OAAO,IAAI;IACX,IAAI,IAAI;IACR,MAAM,IAAI;CACX;AAED,MAAM,WAAW,cAAc;IAI7B,MAAM,EAAE,MAAM,CAAC;IAIf,IAAI,EAAE,MAAM,CAAC;IAIb,OAAO,EAAE,MAAM,CAAC;IAIhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAIhC,IAAI,EAAE,MAAM,CAAC;IAIb,KAAK,EAAE,MAAM,CAAC;IAId,QAAQ,EAAE,MAAM,CAAC;IAIjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,GAAG,EAAE,aAAa,CAAC;IAInB,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,IAAI,EAAE,MAAM,CAAC;IAIb,KAAK,EAAE,MAAM,CAAC;IAId,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAI9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAItB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAIjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAC,MAAM,CAAC;IACX,OAAO,EAAC,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB"}
1
+ {"version":3,"file":"engine-schema.d.ts","sourceRoot":"","sources":["../../../src/engine-schema.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAGD,oBAAY,OAAO;IACjB,GAAG,IAAI;IACP,MAAM,IAAI;CACX;AAKD,aAAK,aAAa;IAChB,OAAO,IAAI;IACX,IAAI,IAAI;IACR,MAAM,IAAI;CACX;AAED,MAAM,WAAW,cAAc;IAI7B,MAAM,EAAE,MAAM,CAAC;IAIf,IAAI,EAAE,MAAM,CAAC;IAIb,OAAO,EAAE,MAAM,CAAC;IAIhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAIhC,IAAI,EAAE,MAAM,CAAC;IAIb,KAAK,EAAE,MAAM,CAAC;IAId,QAAQ,EAAE,MAAM,CAAC;IAIjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,GAAG,EAAE,aAAa,CAAC;IAInB,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,IAAI,EAAE,MAAM,CAAC;IAIb,KAAK,EAAE,MAAM,CAAC;IAId,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAI9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAItB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAIjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAC,MAAM,CAAC;IACX,OAAO,EAAC,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1,16 @@
1
+ export interface ContactCardPayload {
2
+ username: string;
3
+ nickname: string;
4
+ alias: string;
5
+ avatar: string;
6
+ province: string;
7
+ city: string;
8
+ sex: number;
9
+ sign: string;
10
+ scene: string;
11
+ antispamticket: string;
12
+ brandType: number;
13
+ certflag: number;
14
+ }
15
+ export declare function parseContactCardMessagePayload(content: string): Promise<ContactCardPayload | undefined>;
16
+ //# sourceMappingURL=message-contact-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-contact-card.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/messages/message-contact-card.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAEhB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IAEb,cAAc,EAAE,MAAM,CAAA;IAEtB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAsB,8BAA8B,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAoB9G"}
@@ -0,0 +1,22 @@
1
+ import { xmlToJson } from '../utils/xml-to-json.js';
2
+ export async function parseContactCardMessagePayload(content) {
3
+ const json = await xmlToJson(content);
4
+ const attrs = json?.msg?.$;
5
+ if (!attrs?.username) {
6
+ return undefined;
7
+ }
8
+ return {
9
+ alias: attrs.alias || '',
10
+ antispamticket: attrs.antispamticket || '',
11
+ avatar: attrs.bigheadimgurl || attrs.smallheadimgurl || '',
12
+ brandType: parseInt(attrs.brandType, 10) || 0,
13
+ certflag: parseInt(attrs.certflag, 10) || 0,
14
+ city: attrs.city || '',
15
+ nickname: attrs.nickname || '',
16
+ province: attrs.province || '',
17
+ scene: attrs.scene || '17',
18
+ sex: parseInt(attrs.sex, 10) || 0,
19
+ sign: attrs.sign || '',
20
+ username: attrs.username,
21
+ };
22
+ }
@@ -1,4 +1,10 @@
1
1
  import type { MessagePayload } from '../../engine-schema.js';
2
+ export interface EmojiGamePayload {
3
+ kind: 'rps' | 'dice';
4
+ value: string | number;
5
+ text: string;
6
+ }
7
+ export declare function parseEmojiGame(type: number, content: number): EmojiGamePayload | undefined;
2
8
  export interface EmojiMessagePayload {
3
9
  type: number;
4
10
  len: number;
@@ -7,6 +13,7 @@ export interface EmojiMessagePayload {
7
13
  width: number;
8
14
  height: number;
9
15
  gameext?: string;
16
+ game?: EmojiGamePayload;
10
17
  aeskey?: string;
11
18
  authkey?: string;
12
19
  is_ww: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"message-emotion.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/messages/message-emotion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AA2B5D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,0BAA0B,CAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA6BvG;AAED,wBAAgB,sBAAsB,CAAE,mBAAmB,EAAE,mBAAmB,GAAG,MAAM,CAIxF"}
1
+ {"version":3,"file":"message-emotion.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/messages/message-emotion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAgC5D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAErB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB,IAAI,EAAE,MAAM,CAAC;CACd;AAQD,wBAAgB,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAU3F;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,0BAA0B,CAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgCvG;AAED,wBAAgB,sBAAsB,CAAE,mBAAmB,EAAE,mBAAmB,GAAG,MAAM,CAIxF"}
@@ -1,4 +1,20 @@
1
1
  import { xmlToJson } from '../utils/xml-to-json.js';
2
+ const RPS = {
3
+ 1: ['scissors', '剪刀'],
4
+ 2: ['rock', '石头'],
5
+ 3: ['paper', '布'],
6
+ };
7
+ export function parseEmojiGame(type, content) {
8
+ if (type === 1 && RPS[content]) {
9
+ const [value, text] = RPS[content];
10
+ return { kind: 'rps', text, value };
11
+ }
12
+ if (type === 2 && content >= 4 && content <= 9) {
13
+ const point = content - 3;
14
+ return { kind: 'dice', text: `${point}点`, value: point };
15
+ }
16
+ return undefined;
17
+ }
2
18
  export async function parseEmotionMessagePayload(message) {
3
19
  const jsonPayload = await xmlToJson(message.msg);
4
20
  const len = parseInt(jsonPayload.msg.emoji.$.len, 10) || 0;
@@ -8,16 +24,19 @@ export async function parseEmotionMessagePayload(message) {
8
24
  const type = parseInt(jsonPayload.msg.emoji.$.type, 10) || 0;
9
25
  const md5 = jsonPayload.msg.emoji.$.md5;
10
26
  let gameext;
27
+ let game;
11
28
  if (jsonPayload.msg.gameext) {
12
29
  const gameextType = parseInt(jsonPayload.msg.gameext.$.type, 10) || 0;
13
30
  const gameextContent = parseInt(jsonPayload.msg.gameext.$.content, 10) || 0;
14
31
  gameext = `<gameext type="${gameextType}" content="${gameextContent}" ></gameext>`;
32
+ game = parseEmojiGame(gameextType, gameextContent);
15
33
  }
16
34
  return {
17
35
  authkey: jsonPayload.msg.emoji.$?.tpauthkey,
18
36
  aeskey: jsonPayload.msg.emoji.$?.aeskey,
19
37
  is_ww: !!jsonPayload.msg.emoji.$?.tpurl,
20
38
  cdnurl,
39
+ game,
21
40
  gameext,
22
41
  height,
23
42
  len,
@@ -129,6 +129,7 @@ export interface MessagePayload {
129
129
  atWxidList?: string[];
130
130
  msg: string;
131
131
  listenerId: string;
132
+ clientMsgId?: number;
132
133
  }
133
134
  export interface BaseEvent {
134
135
  errorCode: number;
@@ -390,6 +391,17 @@ declare class Client extends EventEmitter {
390
391
  setGroupName(groupId: string, name: string | undefined): Promise<void>;
391
392
  roomQuit(roomId: string): Promise<void>;
392
393
  sendContactCard(contactId: string, xml: string | any, selfId: string | undefined): Promise<MessagePayload | void>;
394
+ sendContact({ toId, shareId, shareNickname, shareHeadImg, }: {
395
+ toId: string;
396
+ shareId: string;
397
+ shareNickname?: string;
398
+ shareHeadImg?: string;
399
+ }, selfId: string | undefined): Promise<MessagePayload | void>;
400
+ sendEmojiMd5(toId: string, md5: string, size: number, selfId: string | undefined): Promise<MessagePayload | void>;
401
+ sendEmojiUrl(toId: string, url: string, selfId: string | undefined): Promise<MessagePayload | void>;
402
+ private emojiResult;
403
+ sendPat(toId: string, pattedId: string): Promise<boolean>;
404
+ revokeMsg(toId: string, msgId: string, clientMsgId: number | undefined): Promise<boolean>;
393
405
  sendAnnouncement(roomId: string, content: string): Promise<void>;
394
406
  uploadSnsImage(url: string): Promise<SnsImageMessagePayload | void>;
395
407
  uploadSnsVideo(url: string): Promise<SnsVideoMessagePayload | void>;
@@ -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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"}
@@ -331,6 +331,12 @@ const genImageSnsXml = (wxid, contentDesc, mediaList, location) => {
331
331
  </TimelineObject>`;
332
332
  return xmlTemplate;
333
333
  };
334
+ function pickClientMsgId(res) {
335
+ const item = res?.list?.[0] || res;
336
+ const v = item?.clientMsgId ?? item?.client_msg_id ?? item?.clientMsgid;
337
+ const n = typeof v === 'string' ? parseInt(v, 10) : v;
338
+ return typeof n === 'number' && !isNaN(n) ? n : undefined;
339
+ }
334
340
  class Client extends EventEmitter {
335
341
  options;
336
342
  connectionStatus = { status: 'disconnected' };
@@ -1306,6 +1312,7 @@ class Client extends EventEmitter {
1306
1312
  });
1307
1313
  return {
1308
1314
  id: res?.list?.[0].newMsgId || '',
1315
+ clientMsgId: pickClientMsgId(res),
1309
1316
  timeStamp: res?.list?.[0].createTime || '',
1310
1317
  msgType: res?.list?.[0].type || '',
1311
1318
  talkerId: selfId || '',
@@ -1331,6 +1338,7 @@ class Client extends EventEmitter {
1331
1338
  });
1332
1339
  return {
1333
1340
  id: res?.list?.[0].newMsgId || '',
1341
+ clientMsgId: pickClientMsgId(res),
1334
1342
  timeStamp: res?.list?.[0].createTime || '',
1335
1343
  msgType: res?.list?.[0].type || '',
1336
1344
  talkerId: selfId || '',
@@ -1555,6 +1563,7 @@ class Client extends EventEmitter {
1555
1563
  });
1556
1564
  return {
1557
1565
  id: res?.newMsgId || '',
1566
+ clientMsgId: pickClientMsgId(res),
1558
1567
  timeStamp: res?.createTime || '',
1559
1568
  msgType: WechatMessageType.Image,
1560
1569
  talkerId: selfId || '',
@@ -1588,6 +1597,7 @@ class Client extends EventEmitter {
1588
1597
  });
1589
1598
  return {
1590
1599
  id: res?.newMsgId || '',
1600
+ clientMsgId: pickClientMsgId(res),
1591
1601
  timeStamp: res?.createTime || getUnixTime(new Date()),
1592
1602
  msgType: WechatMessageType.Video,
1593
1603
  talkerId: selfId || '',
@@ -1619,6 +1629,7 @@ class Client extends EventEmitter {
1619
1629
  });
1620
1630
  return {
1621
1631
  id: res?.newMsgId || '',
1632
+ clientMsgId: pickClientMsgId(res),
1622
1633
  timeStamp: res?.createTime || '',
1623
1634
  msgType: WechatMessageType.File,
1624
1635
  talkerId: selfId || '',
@@ -1646,6 +1657,7 @@ class Client extends EventEmitter {
1646
1657
  });
1647
1658
  return {
1648
1659
  id: res?.newMsgId || '',
1660
+ clientMsgId: pickClientMsgId(res),
1649
1661
  timeStamp: res?.createTime || '',
1650
1662
  msgType: WechatMessageType.Text,
1651
1663
  talkerId: selfId || '',
@@ -1682,6 +1694,7 @@ class Client extends EventEmitter {
1682
1694
  });
1683
1695
  return {
1684
1696
  id: res?.newMsgId || '',
1697
+ clientMsgId: pickClientMsgId(res),
1685
1698
  timeStamp: res?.createTime || '',
1686
1699
  msgType: WechatMessageType.MiniProgram,
1687
1700
  talkerId: selfId || '',
@@ -1708,6 +1721,7 @@ class Client extends EventEmitter {
1708
1721
  });
1709
1722
  return {
1710
1723
  id: res?.newMsgId || '',
1724
+ clientMsgId: pickClientMsgId(res),
1711
1725
  timeStamp: res?.createTime || '',
1712
1726
  msgType: WechatMessageType.App,
1713
1727
  talkerId: selfId || '',
@@ -1862,6 +1876,7 @@ class Client extends EventEmitter {
1862
1876
  });
1863
1877
  return {
1864
1878
  id: res?.newMsgId || '',
1879
+ clientMsgId: pickClientMsgId(res),
1865
1880
  timeStamp: res?.createTime || '',
1866
1881
  msgType: WechatMessageType.App,
1867
1882
  talkerId: selfId || '',
@@ -1875,6 +1890,129 @@ class Client extends EventEmitter {
1875
1890
  log.error(PRE, 'sendContactCard(%s, %s): %s', contactId, xml, error);
1876
1891
  }
1877
1892
  }
1893
+ async sendContact({ toId, shareId, shareNickname, shareHeadImg, }, selfId) {
1894
+ try {
1895
+ const res = await this.postData({
1896
+ path: '/msg/send_share_card',
1897
+ data: {
1898
+ to_username: toId,
1899
+ share_username: shareId,
1900
+ share_nickname: shareNickname || '',
1901
+ share_head_img: shareHeadImg || '',
1902
+ },
1903
+ });
1904
+ return {
1905
+ id: res?.newMsgId || '',
1906
+ clientMsgId: pickClientMsgId(res),
1907
+ timeStamp: res?.createTime || '',
1908
+ msgType: WechatMessageType.ShareCard,
1909
+ talkerId: selfId || '',
1910
+ text: shareId,
1911
+ msg: shareId,
1912
+ fromWxid: isRoomId(toId) ? toId : '',
1913
+ listenerId: toId,
1914
+ };
1915
+ }
1916
+ catch (error) {
1917
+ log.error(PRE, 'sendContact(%s, %s): %s', toId, shareId, error);
1918
+ }
1919
+ }
1920
+ async sendEmojiMd5(toId, md5, size, selfId) {
1921
+ try {
1922
+ const res = await this.postData({
1923
+ path: '/msg/send_emoji_md5',
1924
+ data: {
1925
+ to_username: toId,
1926
+ file_md5: md5,
1927
+ file_size: size,
1928
+ },
1929
+ });
1930
+ log.verbose(PRE, 'sendEmojiMd5 res: %s', JSON.stringify(res));
1931
+ return this.emojiResult(res, toId, md5, selfId);
1932
+ }
1933
+ catch (error) {
1934
+ log.error(PRE, 'sendEmojiMd5(%s, %s): %s', toId, md5, error);
1935
+ }
1936
+ }
1937
+ async sendEmojiUrl(toId, url, selfId) {
1938
+ try {
1939
+ const res = await this.postData({
1940
+ path: '/msg/send_emoji_url',
1941
+ data: {
1942
+ to_username: toId,
1943
+ url,
1944
+ },
1945
+ });
1946
+ log.verbose(PRE, 'sendEmojiUrl res: %s', JSON.stringify(res));
1947
+ return this.emojiResult(res, toId, url, selfId);
1948
+ }
1949
+ catch (error) {
1950
+ log.error(PRE, 'sendEmojiUrl(%s, %s): %s', toId, url, error);
1951
+ }
1952
+ }
1953
+ emojiResult(res, toId, text, selfId) {
1954
+ const item = res?.emojiItem?.[0] || res?.list?.[0] || res;
1955
+ const id = item?.newMsgId || item?.msgId;
1956
+ if (!id || (item?.ret !== undefined && item.ret !== 0)) {
1957
+ log.warn(PRE, 'send emoji failed: %s', JSON.stringify(res));
1958
+ return;
1959
+ }
1960
+ return {
1961
+ clientMsgId: pickClientMsgId(item),
1962
+ fromWxid: isRoomId(toId) ? toId : '',
1963
+ id: String(id),
1964
+ listenerId: toId,
1965
+ msg: text,
1966
+ msgType: WechatMessageType.Emoticon,
1967
+ talkerId: selfId || '',
1968
+ text,
1969
+ timeStamp: item?.createTime || '',
1970
+ };
1971
+ }
1972
+ async sendPat(toId, pattedId) {
1973
+ try {
1974
+ const res = await this.postData({
1975
+ path: '/msg/send_pat',
1976
+ data: {
1977
+ to_username: toId,
1978
+ patted_username: pattedId,
1979
+ },
1980
+ });
1981
+ log.verbose(PRE, 'sendPat res: %s', JSON.stringify(res));
1982
+ if (!res || res.errcode || (res.baseResponse?.ret !== undefined && res.baseResponse.ret !== 0)) {
1983
+ log.warn(PRE, 'sendPat(%s, %s) failed: %s', toId, pattedId, JSON.stringify(res));
1984
+ return false;
1985
+ }
1986
+ return true;
1987
+ }
1988
+ catch (error) {
1989
+ log.error(PRE, 'sendPat(%s, %s): %s', toId, pattedId, error);
1990
+ return false;
1991
+ }
1992
+ }
1993
+ async revokeMsg(toId, msgId, clientMsgId) {
1994
+ try {
1995
+ const res = await this.postData({
1996
+ path: '/msg/revoke_msg',
1997
+ data: {
1998
+ to_username: toId,
1999
+ msg_id: msgId,
2000
+ client_msg_id: clientMsgId || 0,
2001
+ },
2002
+ });
2003
+ log.verbose(PRE, 'revokeMsg res: %s', JSON.stringify(res));
2004
+ const ret = res?.baseResponse?.ret;
2005
+ if (ret !== undefined && ret !== 0) {
2006
+ log.warn(PRE, 'revokeMsg(%s, %s) failed: %s', toId, msgId, JSON.stringify(res?.baseResponse));
2007
+ return false;
2008
+ }
2009
+ return !!res;
2010
+ }
2011
+ catch (error) {
2012
+ log.error(PRE, 'revokeMsg(%s, %s): %s', toId, msgId, error);
2013
+ return false;
2014
+ }
2015
+ }
1878
2016
  async sendAnnouncement(roomId, content) {
1879
2017
  try {
1880
2018
  const res = await this.postData({
@@ -62,6 +62,7 @@ declare class PuppetMatrix extends PUPPET.Puppet {
62
62
  private _friendshipSearch;
63
63
  private _findRoomIdForWxid;
64
64
  messageContact(messageId: string): Promise<string>;
65
+ private _findFriendByCard;
65
66
  messageChannel(messageId: string): Promise<PUPPET.payloads.Channel>;
66
67
  messageFile(messageId: string): Promise<FileBoxInterface>;
67
68
  messageImage(messageId: string): Promise<FileBoxInterface>;
@@ -76,6 +77,7 @@ declare class PuppetMatrix extends PUPPET.Puppet {
76
77
  messageSendText(conversationId: string, text: string, mentionIdList?: string[]): Promise<string | void>;
77
78
  messageSendUrl(conversationId: string, urlLinkPayload: PUPPET.payloads.UrlLink): Promise<string | void>;
78
79
  messageSendPost(conversationId: string, postPayload: PUPPET.payloads.Post): Promise<void>;
80
+ sendPat(conversationId: string, contactId?: string): Promise<boolean>;
79
81
  messageRecall(messageId: string): Promise<boolean>;
80
82
  messageForward(toUserName: string, messageId: string): Promise<void>;
81
83
  roomAdd(roomId: string, contactId: string): Promise<void>;