@wxbot/wechat-api-sdk 1.0.0 → 1.0.1

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 (99) hide show
  1. package/dist/geweChat/gewe/clientApi/gewe_ChatRoom.js +1 -1
  2. package/dist/geweChat/gewe/clientApi/gewe_ChatRoom.js.map +1 -1
  3. package/dist/index.d.ts +5 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +28 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/weChatBase/weChatMessage/WeChatMessageFactory.d.ts +76 -0
  8. package/dist/weChatBase/weChatMessage/WeChatMessageFactory.d.ts.map +1 -0
  9. package/dist/weChatBase/weChatMessage/WeChatMessageFactory.js +181 -0
  10. package/dist/weChatBase/weChatMessage/WeChatMessageFactory.js.map +1 -0
  11. package/dist/weChatBase/weChatMessage/types/AddFriendMessage.d.ts +67 -0
  12. package/dist/weChatBase/weChatMessage/types/AddFriendMessage.d.ts.map +1 -0
  13. package/dist/weChatBase/weChatMessage/types/AddFriendMessage.js +92 -0
  14. package/dist/weChatBase/weChatMessage/types/AddFriendMessage.js.map +1 -0
  15. package/dist/weChatBase/weChatMessage/types/ChannelsVideoMessage.d.ts +98 -0
  16. package/dist/weChatBase/weChatMessage/types/ChannelsVideoMessage.d.ts.map +1 -0
  17. package/dist/weChatBase/weChatMessage/types/ChannelsVideoMessage.js +124 -0
  18. package/dist/weChatBase/weChatMessage/types/ChannelsVideoMessage.js.map +1 -0
  19. package/dist/weChatBase/weChatMessage/types/ContactMessage.d.ts +62 -0
  20. package/dist/weChatBase/weChatMessage/types/ContactMessage.d.ts.map +1 -0
  21. package/dist/weChatBase/weChatMessage/types/ContactMessage.js +81 -0
  22. package/dist/weChatBase/weChatMessage/types/ContactMessage.js.map +1 -0
  23. package/dist/weChatBase/weChatMessage/types/EmojiMessage.d.ts +60 -0
  24. package/dist/weChatBase/weChatMessage/types/EmojiMessage.d.ts.map +1 -0
  25. package/dist/weChatBase/weChatMessage/types/EmojiMessage.js +74 -0
  26. package/dist/weChatBase/weChatMessage/types/EmojiMessage.js.map +1 -0
  27. package/dist/weChatBase/weChatMessage/types/FileMessage.d.ts +81 -0
  28. package/dist/weChatBase/weChatMessage/types/FileMessage.d.ts.map +1 -0
  29. package/dist/weChatBase/weChatMessage/types/FileMessage.js +127 -0
  30. package/dist/weChatBase/weChatMessage/types/FileMessage.js.map +1 -0
  31. package/dist/weChatBase/weChatMessage/types/GroupNoticeMessage.d.ts +52 -0
  32. package/dist/weChatBase/weChatMessage/types/GroupNoticeMessage.d.ts.map +1 -0
  33. package/dist/weChatBase/weChatMessage/types/GroupNoticeMessage.js +76 -0
  34. package/dist/weChatBase/weChatMessage/types/GroupNoticeMessage.js.map +1 -0
  35. package/dist/weChatBase/weChatMessage/types/GroupSystemMessage.d.ts +94 -0
  36. package/dist/weChatBase/weChatMessage/types/GroupSystemMessage.d.ts.map +1 -0
  37. package/dist/weChatBase/weChatMessage/types/GroupSystemMessage.js +151 -0
  38. package/dist/weChatBase/weChatMessage/types/GroupSystemMessage.js.map +1 -0
  39. package/dist/weChatBase/weChatMessage/types/ImageMessage.d.ts +63 -0
  40. package/dist/weChatBase/weChatMessage/types/ImageMessage.d.ts.map +1 -0
  41. package/dist/weChatBase/weChatMessage/types/ImageMessage.js +93 -0
  42. package/dist/weChatBase/weChatMessage/types/ImageMessage.js.map +1 -0
  43. package/dist/weChatBase/weChatMessage/types/LinkMessage.d.ts +78 -0
  44. package/dist/weChatBase/weChatMessage/types/LinkMessage.d.ts.map +1 -0
  45. package/dist/weChatBase/weChatMessage/types/LinkMessage.js +110 -0
  46. package/dist/weChatBase/weChatMessage/types/LinkMessage.js.map +1 -0
  47. package/dist/weChatBase/weChatMessage/types/LocationMessage.d.ts +67 -0
  48. package/dist/weChatBase/weChatMessage/types/LocationMessage.d.ts.map +1 -0
  49. package/dist/weChatBase/weChatMessage/types/LocationMessage.js +84 -0
  50. package/dist/weChatBase/weChatMessage/types/LocationMessage.js.map +1 -0
  51. package/dist/weChatBase/weChatMessage/types/MiniProgramMessage.d.ts +73 -0
  52. package/dist/weChatBase/weChatMessage/types/MiniProgramMessage.d.ts.map +1 -0
  53. package/dist/weChatBase/weChatMessage/types/MiniProgramMessage.js +91 -0
  54. package/dist/weChatBase/weChatMessage/types/MiniProgramMessage.js.map +1 -0
  55. package/dist/weChatBase/weChatMessage/types/PatMessage.d.ts +70 -0
  56. package/dist/weChatBase/weChatMessage/types/PatMessage.d.ts.map +1 -0
  57. package/dist/weChatBase/weChatMessage/types/PatMessage.js +101 -0
  58. package/dist/weChatBase/weChatMessage/types/PatMessage.js.map +1 -0
  59. package/dist/weChatBase/weChatMessage/types/RedPacketMessage.d.ts +93 -0
  60. package/dist/weChatBase/weChatMessage/types/RedPacketMessage.d.ts.map +1 -0
  61. package/dist/weChatBase/weChatMessage/types/RedPacketMessage.js +115 -0
  62. package/dist/weChatBase/weChatMessage/types/RedPacketMessage.js.map +1 -0
  63. package/dist/weChatBase/weChatMessage/types/ReferMessage.d.ts +63 -0
  64. package/dist/weChatBase/weChatMessage/types/ReferMessage.d.ts.map +1 -0
  65. package/dist/weChatBase/weChatMessage/types/ReferMessage.js +88 -0
  66. package/dist/weChatBase/weChatMessage/types/ReferMessage.js.map +1 -0
  67. package/dist/weChatBase/weChatMessage/types/RevokeMessage.d.ts +58 -0
  68. package/dist/weChatBase/weChatMessage/types/RevokeMessage.d.ts.map +1 -0
  69. package/dist/weChatBase/weChatMessage/types/RevokeMessage.js +82 -0
  70. package/dist/weChatBase/weChatMessage/types/RevokeMessage.js.map +1 -0
  71. package/dist/weChatBase/weChatMessage/types/TextMessage.d.ts +26 -0
  72. package/dist/weChatBase/weChatMessage/types/TextMessage.d.ts.map +1 -0
  73. package/dist/weChatBase/weChatMessage/types/TextMessage.js +43 -0
  74. package/dist/weChatBase/weChatMessage/types/TextMessage.js.map +1 -0
  75. package/dist/weChatBase/weChatMessage/types/TransferMessage.d.ts +83 -0
  76. package/dist/weChatBase/weChatMessage/types/TransferMessage.d.ts.map +1 -0
  77. package/dist/weChatBase/weChatMessage/types/TransferMessage.js +109 -0
  78. package/dist/weChatBase/weChatMessage/types/TransferMessage.js.map +1 -0
  79. package/dist/weChatBase/weChatMessage/types/VideoMessage.d.ts +56 -0
  80. package/dist/weChatBase/weChatMessage/types/VideoMessage.d.ts.map +1 -0
  81. package/dist/weChatBase/weChatMessage/types/VideoMessage.js +76 -0
  82. package/dist/weChatBase/weChatMessage/types/VideoMessage.js.map +1 -0
  83. package/dist/weChatBase/weChatMessage/types/VoiceMessage.d.ts +53 -0
  84. package/dist/weChatBase/weChatMessage/types/VoiceMessage.d.ts.map +1 -0
  85. package/dist/weChatBase/weChatMessage/types/VoiceMessage.js +73 -0
  86. package/dist/weChatBase/weChatMessage/types/VoiceMessage.js.map +1 -0
  87. package/dist/weChatBase/weChatMessage/types/index.d.ts +23 -0
  88. package/dist/weChatBase/weChatMessage/types/index.d.ts.map +1 -0
  89. package/dist/weChatBase/weChatMessage/types/index.js +42 -0
  90. package/dist/weChatBase/weChatMessage/types/index.js.map +1 -0
  91. package/dist/weChatBase/weChatMessage/weChatMessageType.d.ts +97 -3
  92. package/dist/weChatBase/weChatMessage/weChatMessageType.d.ts.map +1 -1
  93. package/dist/weChatBase/weChatMessage/weChatMessageType.js +101 -15
  94. package/dist/weChatBase/weChatMessage/weChatMessageType.js.map +1 -1
  95. package/dist/weChatBase/weChatMessage/weChatMsgBase.d.ts +3 -4
  96. package/dist/weChatBase/weChatMessage/weChatMsgBase.d.ts.map +1 -1
  97. package/dist/weChatBase/weChatMessage/weChatMsgBase.js +4 -8
  98. package/dist/weChatBase/weChatMessage/weChatMsgBase.js.map +1 -1
  99. package/package.json +1 -1
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChannelsVideoMessage = void 0;
4
+ const weChatMsgBase_1 = require("../weChatMsgBase");
5
+ const weChatMessageType_1 = require("../weChatMessageType");
6
+ const utils_1 = require("../../../utils");
7
+ /**
8
+ * 视频号消息类
9
+ * MsgType = 49, appmsg.type = 51
10
+ *
11
+ * 示例数据:
12
+ * {
13
+ * "MsgType": 49,
14
+ * "Content": {
15
+ * "string": "<?xml><msg><appmsg><type>51</type><title>...</title>..."
16
+ * }
17
+ * }
18
+ */
19
+ class ChannelsVideoMessage extends weChatMsgBase_1.WeChatMsg {
20
+ constructor(data) {
21
+ super(data.Appid, data.api, data.Wxid, weChatMessageType_1.WeChatMessageType.AppMessage, data.Data.MsgId, data.Data.NewMsgId, data.Data.CreateTime, data.Data.FromUserName?.string || data.Data.FromUserName, data.Data.ToUserName?.string || data.Data.ToUserName, data.Data.MsgSource, data.Data.Content?.string || data.Data.Content);
22
+ /** 视频号信息 */
23
+ this.channelsInfo = {};
24
+ /** 应用消息子类型 */
25
+ this.appMsgType = weChatMessageType_1.AppMessageSubType.ChannelsVideo;
26
+ // 解析视频号信息
27
+ this.parseChannelsInfo();
28
+ }
29
+ /**
30
+ * 解析视频号信息
31
+ */
32
+ parseChannelsInfo() {
33
+ try {
34
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
35
+ if (xmlObj?.msg?.appmsg) {
36
+ const appmsg = xmlObj.msg.appmsg;
37
+ this.channelsInfo = {
38
+ title: appmsg.title,
39
+ url: appmsg.url
40
+ };
41
+ // 解析finderFeed
42
+ if (appmsg.finderFeed) {
43
+ const feed = appmsg.finderFeed;
44
+ this.channelsInfo.finderFeed = {
45
+ objectId: feed.objectId,
46
+ feedType: parseInt(feed.feedType) || 0,
47
+ nickname: feed.nickname,
48
+ avatar: feed.avatar,
49
+ desc: feed.desc,
50
+ mediaCount: parseInt(feed.mediaCount) || 0,
51
+ objectNonceId: feed.objectNonceId,
52
+ liveId: feed.liveId,
53
+ username: feed.username
54
+ };
55
+ // 解析媒体列表
56
+ if (feed.mediaList?.media) {
57
+ const mediaArray = Array.isArray(feed.mediaList.media)
58
+ ? feed.mediaList.media
59
+ : [feed.mediaList.media];
60
+ this.channelsInfo.finderFeed.mediaList = mediaArray.map(media => ({
61
+ mediaType: parseInt(media.mediaType) || 0,
62
+ url: media.url,
63
+ thumbUrl: media.thumbUrl,
64
+ width: parseInt(media.width) || 0,
65
+ height: parseInt(media.height) || 0,
66
+ coverUrl: media.coverUrl,
67
+ fullCoverUrl: media.fullCoverUrl,
68
+ videoPlayDuration: parseInt(media.videoPlayDuration) || 0
69
+ }));
70
+ }
71
+ }
72
+ }
73
+ }
74
+ catch (error) {
75
+ console.error('解析视频号信息失败:', error);
76
+ }
77
+ }
78
+ /**
79
+ * 获取视频号作者昵称
80
+ */
81
+ getAuthorNickname() {
82
+ return this.channelsInfo.finderFeed?.nickname || '视频号作者';
83
+ }
84
+ /**
85
+ * 获取视频号描述
86
+ */
87
+ getDescription() {
88
+ return this.channelsInfo.finderFeed?.desc || '';
89
+ }
90
+ /**
91
+ * 获取视频时长(秒)
92
+ */
93
+ getVideoDuration() {
94
+ const mediaList = this.channelsInfo.finderFeed?.mediaList;
95
+ if (mediaList && mediaList.length > 0) {
96
+ return mediaList[0].videoPlayDuration || 0;
97
+ }
98
+ return 0;
99
+ }
100
+ /**
101
+ * 判断是否为直播
102
+ */
103
+ isLive() {
104
+ const feedType = this.channelsInfo.finderFeed?.feedType || 0;
105
+ return feedType === 1; // feedType=1 表示直播
106
+ }
107
+ /**
108
+ * 获取消息描述
109
+ */
110
+ getContent() {
111
+ const author = this.getAuthorNickname();
112
+ const desc = this.getDescription();
113
+ const type = this.isLive() ? '视频号直播' : '视频号';
114
+ return `[${type}]${author}${desc ? `: ${desc.substring(0, 20)}...` : ''}`;
115
+ }
116
+ /**
117
+ * 获取消息文本
118
+ */
119
+ async getMsgText() {
120
+ return this.getContent();
121
+ }
122
+ }
123
+ exports.ChannelsVideoMessage = ChannelsVideoMessage;
124
+ //# sourceMappingURL=ChannelsVideoMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelsVideoMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/ChannelsVideoMessage.ts"],"names":[],"mappings":";;;AAAA,oDAA6C;AAC7C,4DAA4E;AAC5E,0CAA6C;AAoD7C;;;;;;;;;;;GAWG;AACH,MAAa,oBAAqB,SAAQ,yBAAS;IAO/C,YAAY,IAAS;QACjB,KAAK,CACD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,EACT,qCAAiB,CAAC,UAAU,EAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EACxD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EACpD,IAAI,CAAC,IAAI,CAAC,SAAS,EACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CACjD,CAAC;QAnBN,YAAY;QACL,iBAAY,GAAsB,EAAE,CAAC;QAE5C,cAAc;QACP,eAAU,GAAW,qCAAiB,CAAC,aAAa,CAAC;QAiBxD,UAAU;QACV,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,iBAAiB;QACrB,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBAEjC,IAAI,CAAC,YAAY,GAAG;oBAChB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,GAAG,EAAE,MAAM,CAAC,GAAG;iBAClB,CAAC;gBAEF,eAAe;gBACf,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;oBAC/B,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;wBAC1C,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBAC1B,CAAC;oBAEF,SAAS;oBACT,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;wBACxB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;4BAClD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;4BACtB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBAE7B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;4BAC9D,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;4BACzC,GAAG,EAAE,KAAK,CAAC,GAAG;4BACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;4BACjC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;4BACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,YAAY,EAAE,KAAK,CAAC,YAAY;4BAChC,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;yBAC5D,CAAC,CAAC,CAAC;oBACR,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,iBAAiB;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,IAAI,OAAO,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,cAAc;QACV,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,gBAAgB;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC;QAC1D,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED;;OAEG;IACH,MAAM;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAC;QAC7D,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,kBAAkB;IAC7C,CAAC;IAED;;OAEG;IACM,UAAU;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7C,OAAO,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC9E,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACJ;AAhID,oDAgIC"}
@@ -0,0 +1,62 @@
1
+ import { WeChatMsg } from "../weChatMsgBase";
2
+ /**
3
+ * 名片信息接口
4
+ */
5
+ export interface ContactCardInfo {
6
+ /** 微信号username */
7
+ username?: string;
8
+ /** 昵称 */
9
+ nickname?: string;
10
+ /** 全拼 */
11
+ fullpy?: string;
12
+ /** 简拼 */
13
+ shortpy?: string;
14
+ /** 微信号alias */
15
+ alias?: string;
16
+ /** 性别 (1=男, 2=女) */
17
+ sex?: number;
18
+ /** 省份 */
19
+ province?: string;
20
+ /** 城市 */
21
+ city?: string;
22
+ /** 签名 */
23
+ sign?: string;
24
+ /** 大头像URL */
25
+ bigheadimgurl?: string;
26
+ /** 小头像URL */
27
+ smallheadimgurl?: string;
28
+ /** 加密用户名(用于添加好友) */
29
+ antispamticket?: string;
30
+ }
31
+ /**
32
+ * 名片消息类
33
+ * MsgType = 42
34
+ *
35
+ * 示例数据:
36
+ * {
37
+ * "MsgType": 42,
38
+ * "Content": { "string": "<?xml...名片信息..." }
39
+ * }
40
+ */
41
+ export declare class ContactMessage extends WeChatMsg {
42
+ /** 名片信息 */
43
+ cardInfo: ContactCardInfo;
44
+ constructor(data: any);
45
+ /**
46
+ * 解析名片信息
47
+ */
48
+ private parseContactInfo;
49
+ /**
50
+ * 获取性别描述
51
+ */
52
+ getSexText(): string;
53
+ /**
54
+ * 获取消息描述
55
+ */
56
+ getContent(): string;
57
+ /**
58
+ * 获取消息文本
59
+ */
60
+ getMsgText(): Promise<string>;
61
+ }
62
+ //# sourceMappingURL=ContactMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContactMessage.d.ts","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/ContactMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,kBAAkB;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS;IACT,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS;IACT,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,SAAS;IACzC,WAAW;IACJ,QAAQ,EAAE,eAAe,CAAM;gBAE1B,IAAI,EAAE,GAAG;IAmBrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,UAAU,IAAI,MAAM;IAWpB;;OAEG;IACM,UAAU,IAAI,MAAM;IAK7B;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG/C"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContactMessage = void 0;
4
+ const weChatMsgBase_1 = require("../weChatMsgBase");
5
+ const weChatMessageType_1 = require("../weChatMessageType");
6
+ const utils_1 = require("../../../utils");
7
+ /**
8
+ * 名片消息类
9
+ * MsgType = 42
10
+ *
11
+ * 示例数据:
12
+ * {
13
+ * "MsgType": 42,
14
+ * "Content": { "string": "<?xml...名片信息..." }
15
+ * }
16
+ */
17
+ class ContactMessage extends weChatMsgBase_1.WeChatMsg {
18
+ constructor(data) {
19
+ super(data.Appid, data.api, data.Wxid, weChatMessageType_1.WeChatMessageType.Contact, data.Data.MsgId, data.Data.NewMsgId, data.Data.CreateTime, data.Data.FromUserName?.string || data.Data.FromUserName, data.Data.ToUserName?.string || data.Data.ToUserName, data.Data.MsgSource, data.Data.Content?.string || data.Data.Content);
20
+ /** 名片信息 */
21
+ this.cardInfo = {};
22
+ // 解析名片信息
23
+ this.parseContactInfo();
24
+ }
25
+ /**
26
+ * 解析名片信息
27
+ */
28
+ parseContactInfo() {
29
+ try {
30
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
31
+ if (xmlObj?.msg) {
32
+ const msg = xmlObj.msg;
33
+ this.cardInfo = {
34
+ username: msg.username,
35
+ nickname: msg.nickname,
36
+ fullpy: msg.fullpy,
37
+ shortpy: msg.shortpy,
38
+ alias: msg.alias,
39
+ sex: parseInt(msg.sex) || 0,
40
+ province: msg.province,
41
+ city: msg.city,
42
+ sign: msg.sign,
43
+ bigheadimgurl: msg.bigheadimgurl,
44
+ smallheadimgurl: msg.smallheadimgurl,
45
+ antispamticket: msg.antispamticket
46
+ };
47
+ }
48
+ }
49
+ catch (error) {
50
+ console.error('解析名片信息失败:', error);
51
+ }
52
+ }
53
+ /**
54
+ * 获取性别描述
55
+ */
56
+ getSexText() {
57
+ switch (this.cardInfo.sex) {
58
+ case 1:
59
+ return '男';
60
+ case 2:
61
+ return '女';
62
+ default:
63
+ return '未知';
64
+ }
65
+ }
66
+ /**
67
+ * 获取消息描述
68
+ */
69
+ getContent() {
70
+ const nickname = this.cardInfo.nickname || '未知';
71
+ return `[名片]${nickname}`;
72
+ }
73
+ /**
74
+ * 获取消息文本
75
+ */
76
+ async getMsgText() {
77
+ return this.getContent();
78
+ }
79
+ }
80
+ exports.ContactMessage = ContactMessage;
81
+ //# sourceMappingURL=ContactMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContactMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/ContactMessage.ts"],"names":[],"mappings":";;;AAAA,oDAA6C;AAC7C,4DAAyD;AACzD,0CAA6C;AAgC7C;;;;;;;;;GASG;AACH,MAAa,cAAe,SAAQ,yBAAS;IAIzC,YAAY,IAAS;QACjB,KAAK,CACD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,EACT,qCAAiB,CAAC,OAAO,EACzB,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EACxD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EACpD,IAAI,CAAC,IAAI,CAAC,SAAS,EACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CACjD,CAAC;QAhBN,WAAW;QACJ,aAAQ,GAAoB,EAAE,CAAC;QAiBlC,SAAS;QACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,gBAAgB;QACpB,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;gBACvB,IAAI,CAAC,QAAQ,GAAG;oBACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,aAAa,EAAE,GAAG,CAAC,aAAa;oBAChC,eAAe,EAAE,GAAG,CAAC,eAAe;oBACpC,cAAc,EAAE,GAAG,CAAC,cAAc;iBACrC,CAAC;YACN,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,UAAU;QACN,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACxB,KAAK,CAAC;gBACF,OAAO,GAAG,CAAC;YACf,KAAK,CAAC;gBACF,OAAO,GAAG,CAAC;YACf;gBACI,OAAO,IAAI,CAAC;QACpB,CAAC;IACL,CAAC;IAED;;OAEG;IACM,UAAU;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;QAChD,OAAO,OAAO,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACJ;AA/ED,wCA+EC"}
@@ -0,0 +1,60 @@
1
+ import { WeChatMsg } from "../weChatMsgBase";
2
+ /**
3
+ * Emoji表情信息接口
4
+ */
5
+ export interface EmojiInfo {
6
+ /** 表情MD5 */
7
+ md5?: string;
8
+ /** 表情长度(字节) */
9
+ len?: number;
10
+ /** 表情CDN URL */
11
+ cdnurl?: string;
12
+ /** 加密URL */
13
+ encrypturl?: string;
14
+ /** AES密钥 */
15
+ aeskey?: string;
16
+ /** 外部URL */
17
+ externurl?: string;
18
+ /** 外部MD5 */
19
+ externmd5?: string;
20
+ /** 宽度 */
21
+ width?: number;
22
+ /** 高度 */
23
+ height?: number;
24
+ }
25
+ /**
26
+ * Emoji表情消息类
27
+ * MsgType = 47
28
+ *
29
+ * 示例数据:
30
+ * {
31
+ * "MsgType": 47,
32
+ * "Content": { "string": "<msg><emoji md5=\"cc567...\" .../></msg>" }
33
+ * }
34
+ */
35
+ export declare class EmojiMessage extends WeChatMsg {
36
+ /** 表情信息 */
37
+ emojiInfo: EmojiInfo;
38
+ constructor(data: any);
39
+ /**
40
+ * 解析表情信息
41
+ */
42
+ private parseEmojiInfo;
43
+ /**
44
+ * 获取表情数据(用于发送emoji)
45
+ */
46
+ getEmojiData(): {
47
+ md5: string;
48
+ size: number;
49
+ url: string;
50
+ };
51
+ /**
52
+ * 获取消息描述
53
+ */
54
+ getContent(): string;
55
+ /**
56
+ * 获取消息文本(返回JSON格式的emoji数据)
57
+ */
58
+ getMsgText(): Promise<string>;
59
+ }
60
+ //# sourceMappingURL=EmojiMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiMessage.d.ts","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/EmojiMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,YAAY;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACvC,WAAW;IACJ,SAAS,EAAE,SAAS,CAAM;gBAErB,IAAI,EAAE,GAAG;IAmBrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;OAEG;IACH,YAAY,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAQ1D;;OAEG;IACM,UAAU,IAAI,MAAM;IAI7B;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG/C"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmojiMessage = void 0;
4
+ const weChatMsgBase_1 = require("../weChatMsgBase");
5
+ const weChatMessageType_1 = require("../weChatMessageType");
6
+ const utils_1 = require("../../../utils");
7
+ /**
8
+ * Emoji表情消息类
9
+ * MsgType = 47
10
+ *
11
+ * 示例数据:
12
+ * {
13
+ * "MsgType": 47,
14
+ * "Content": { "string": "<msg><emoji md5=\"cc567...\" .../></msg>" }
15
+ * }
16
+ */
17
+ class EmojiMessage extends weChatMsgBase_1.WeChatMsg {
18
+ constructor(data) {
19
+ super(data.Appid, data.api, data.Wxid, weChatMessageType_1.WeChatMessageType.Emoji, data.Data.MsgId, data.Data.NewMsgId, data.Data.CreateTime, data.Data.FromUserName?.string || data.Data.FromUserName, data.Data.ToUserName?.string || data.Data.ToUserName, data.Data.MsgSource, data.Data.Content?.string || data.Data.Content);
20
+ /** 表情信息 */
21
+ this.emojiInfo = {};
22
+ // 解析表情信息
23
+ this.parseEmojiInfo();
24
+ }
25
+ /**
26
+ * 解析表情信息
27
+ */
28
+ parseEmojiInfo() {
29
+ try {
30
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
31
+ if (xmlObj?.msg?.emoji) {
32
+ const emoji = xmlObj.msg.emoji;
33
+ this.emojiInfo = {
34
+ md5: emoji.md5,
35
+ len: parseInt(emoji.len) || 0,
36
+ cdnurl: emoji.cdnurl,
37
+ encrypturl: emoji.encrypturl,
38
+ aeskey: emoji.aeskey,
39
+ externurl: emoji.externurl,
40
+ externmd5: emoji.externmd5,
41
+ width: parseInt(emoji.width) || 0,
42
+ height: parseInt(emoji.height) || 0
43
+ };
44
+ }
45
+ }
46
+ catch (error) {
47
+ console.error('解析emoji信息失败:', error);
48
+ }
49
+ }
50
+ /**
51
+ * 获取表情数据(用于发送emoji)
52
+ */
53
+ getEmojiData() {
54
+ return {
55
+ md5: this.emojiInfo.md5 || '',
56
+ size: this.emojiInfo.len || 0,
57
+ url: this.emojiInfo.cdnurl || ''
58
+ };
59
+ }
60
+ /**
61
+ * 获取消息描述
62
+ */
63
+ getContent() {
64
+ return '[动画表情]';
65
+ }
66
+ /**
67
+ * 获取消息文本(返回JSON格式的emoji数据)
68
+ */
69
+ async getMsgText() {
70
+ return JSON.stringify(this.getEmojiData());
71
+ }
72
+ }
73
+ exports.EmojiMessage = EmojiMessage;
74
+ //# sourceMappingURL=EmojiMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/EmojiMessage.ts"],"names":[],"mappings":";;;AAAA,oDAA6C;AAC7C,4DAAyD;AACzD,0CAA6C;AA0B7C;;;;;;;;;GASG;AACH,MAAa,YAAa,SAAQ,yBAAS;IAIvC,YAAY,IAAS;QACjB,KAAK,CACD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,EACT,qCAAiB,CAAC,KAAK,EACvB,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EACxD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EACpD,IAAI,CAAC,IAAI,CAAC,SAAS,EACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CACjD,CAAC;QAhBN,WAAW;QACJ,cAAS,GAAc,EAAE,CAAC;QAiB7B,SAAS;QACT,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,cAAc;QAClB,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC/B,IAAI,CAAC,SAAS,GAAG;oBACb,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;oBACjC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;iBACtC,CAAC;YACN,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY;QACR,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE;YAC7B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YAC7B,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE;SACnC,CAAC;IACN,CAAC;IAED;;OAEG;IACM,UAAU;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/C,CAAC;CACJ;AAxED,oCAwEC"}
@@ -0,0 +1,81 @@
1
+ import { WeChatMsg } from "../weChatMsgBase";
2
+ /**
3
+ * 文件信息接口
4
+ */
5
+ export interface FileInfo {
6
+ /** 文件标题/文件名 */
7
+ title?: string;
8
+ /** 文件总长度(字节) */
9
+ totallen?: number;
10
+ /** 文件扩展名 */
11
+ fileext?: string;
12
+ /** 文件MD5 */
13
+ md5?: string;
14
+ /** CDN附件URL */
15
+ cdnattachurl?: string;
16
+ /** AES密钥 */
17
+ aeskey?: string;
18
+ /** 附件ID */
19
+ attachid?: string;
20
+ /** 文件上传令牌 */
21
+ fileuploadtoken?: string;
22
+ /** 加密版本 */
23
+ encryver?: string;
24
+ /** 覆写的新消息ID */
25
+ overwrite_newmsgid?: string;
26
+ }
27
+ /**
28
+ * 文件消息类
29
+ * MsgType = 49, appmsg.type = 6 或 74
30
+ *
31
+ * type=74: 文件发送中通知(不可用于转发和下载)
32
+ * type=6: 文件发送完成(可用于转发和下载)
33
+ *
34
+ * 示例数据:
35
+ * {
36
+ * "MsgType": 49,
37
+ * "Content": {
38
+ * "string": "<?xml><msg><appmsg><type>6</type><title>file.xlsx</title>..."
39
+ * }
40
+ * }
41
+ */
42
+ export declare class FileMessage extends WeChatMsg {
43
+ /** 文件信息 */
44
+ fileInfo: FileInfo;
45
+ /** 应用消息子类型 */
46
+ appMsgType: number;
47
+ /** 是否为发送完成状态 */
48
+ private _isComplete;
49
+ constructor(data: any);
50
+ /**
51
+ * 解析文件信息
52
+ * @returns 应用消息子类型
53
+ */
54
+ private parseFileInfo;
55
+ /**
56
+ * 判断文件是否发送完成
57
+ * 只有发送完成的文件才能进行转发和下载
58
+ */
59
+ isComplete(): boolean;
60
+ /**
61
+ * 判断文件是否正在发送中
62
+ */
63
+ isSending(): boolean;
64
+ /**
65
+ * 获取文件大小描述
66
+ */
67
+ getFileSizeText(): string;
68
+ /**
69
+ * 获取消息描述
70
+ */
71
+ getContent(): string;
72
+ /**
73
+ * 获取消息文本
74
+ */
75
+ getMsgText(): Promise<string>;
76
+ /**
77
+ * 获取文件下载URL(仅发送完成后可用)
78
+ */
79
+ getDownloadUrl(): string | null;
80
+ }
81
+ //# sourceMappingURL=FileMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileMessage.d.ts","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/FileMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACtC,WAAW;IACJ,QAAQ,EAAE,QAAQ,CAAM;IAE/B,cAAc;IACP,UAAU,EAAE,MAAM,CAAC;IAE1B,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAAkB;gBAEzB,IAAI,EAAE,GAAG;IAmBrB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAsCrB;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,eAAe,IAAI,MAAM;IAazB;;OAEG;IACM,UAAU,IAAI,MAAM;IAO7B;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;CAOlC"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileMessage = void 0;
4
+ const weChatMsgBase_1 = require("../weChatMsgBase");
5
+ const weChatMessageType_1 = require("../weChatMessageType");
6
+ const utils_1 = require("../../../utils");
7
+ /**
8
+ * 文件消息类
9
+ * MsgType = 49, appmsg.type = 6 或 74
10
+ *
11
+ * type=74: 文件发送中通知(不可用于转发和下载)
12
+ * type=6: 文件发送完成(可用于转发和下载)
13
+ *
14
+ * 示例数据:
15
+ * {
16
+ * "MsgType": 49,
17
+ * "Content": {
18
+ * "string": "<?xml><msg><appmsg><type>6</type><title>file.xlsx</title>..."
19
+ * }
20
+ * }
21
+ */
22
+ class FileMessage extends weChatMsgBase_1.WeChatMsg {
23
+ constructor(data) {
24
+ super(data.Appid, data.api, data.Wxid, weChatMessageType_1.WeChatMessageType.AppMessage, data.Data.MsgId, data.Data.NewMsgId, data.Data.CreateTime, data.Data.FromUserName?.string || data.Data.FromUserName, data.Data.ToUserName?.string || data.Data.ToUserName, data.Data.MsgSource, data.Data.Content?.string || data.Data.Content);
25
+ /** 文件信息 */
26
+ this.fileInfo = {};
27
+ /** 是否为发送完成状态 */
28
+ this._isComplete = false;
29
+ // 解析文件信息
30
+ this.appMsgType = this.parseFileInfo();
31
+ }
32
+ /**
33
+ * 解析文件信息
34
+ * @returns 应用消息子类型
35
+ */
36
+ parseFileInfo() {
37
+ try {
38
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
39
+ if (xmlObj?.msg?.appmsg) {
40
+ const appmsg = xmlObj.msg.appmsg;
41
+ const appMsgType = parseInt(appmsg.type) || weChatMessageType_1.AppMessageSubType.File;
42
+ // 判断是否为发送完成状态
43
+ this._isComplete = appMsgType === weChatMessageType_1.AppMessageSubType.File;
44
+ this.fileInfo = {
45
+ title: appmsg.title
46
+ };
47
+ // 解析附件信息
48
+ if (appmsg.appattach) {
49
+ const attach = appmsg.appattach;
50
+ this.fileInfo.totallen = parseInt(attach.totallen) || 0;
51
+ this.fileInfo.fileext = attach.fileext;
52
+ this.fileInfo.cdnattachurl = attach.cdnattachurl;
53
+ this.fileInfo.aeskey = attach.aeskey;
54
+ this.fileInfo.attachid = attach.attachid;
55
+ this.fileInfo.fileuploadtoken = attach.fileuploadtoken;
56
+ this.fileInfo.encryver = attach.encryver;
57
+ this.fileInfo.overwrite_newmsgid = attach.overwrite_newmsgid;
58
+ }
59
+ // MD5信息
60
+ this.fileInfo.md5 = appmsg.md5;
61
+ return appMsgType;
62
+ }
63
+ }
64
+ catch (error) {
65
+ console.error('解析文件信息失败:', error);
66
+ }
67
+ return weChatMessageType_1.AppMessageSubType.File;
68
+ }
69
+ /**
70
+ * 判断文件是否发送完成
71
+ * 只有发送完成的文件才能进行转发和下载
72
+ */
73
+ isComplete() {
74
+ return this._isComplete;
75
+ }
76
+ /**
77
+ * 判断文件是否正在发送中
78
+ */
79
+ isSending() {
80
+ return !this._isComplete;
81
+ }
82
+ /**
83
+ * 获取文件大小描述
84
+ */
85
+ getFileSizeText() {
86
+ const size = this.fileInfo.totallen || 0;
87
+ if (size < 1024) {
88
+ return `${size}B`;
89
+ }
90
+ else if (size < 1024 * 1024) {
91
+ return `${(size / 1024).toFixed(2)}KB`;
92
+ }
93
+ else if (size < 1024 * 1024 * 1024) {
94
+ return `${(size / (1024 * 1024)).toFixed(2)}MB`;
95
+ }
96
+ else {
97
+ return `${(size / (1024 * 1024 * 1024)).toFixed(2)}GB`;
98
+ }
99
+ }
100
+ /**
101
+ * 获取消息描述
102
+ */
103
+ getContent() {
104
+ const fileName = this.fileInfo.title || '文件';
105
+ const fileSize = this.getFileSizeText();
106
+ const status = this.isComplete() ? '' : '(发送中)';
107
+ return `[文件${status}]${fileName} (${fileSize})`;
108
+ }
109
+ /**
110
+ * 获取消息文本
111
+ */
112
+ async getMsgText() {
113
+ return this.getContent();
114
+ }
115
+ /**
116
+ * 获取文件下载URL(仅发送完成后可用)
117
+ */
118
+ getDownloadUrl() {
119
+ if (!this.isComplete()) {
120
+ console.warn('文件尚未发送完成,无法获取下载URL');
121
+ return null;
122
+ }
123
+ return this.fileInfo.cdnattachurl || null;
124
+ }
125
+ }
126
+ exports.FileMessage = FileMessage;
127
+ //# sourceMappingURL=FileMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/FileMessage.ts"],"names":[],"mappings":"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"}