@wxbot/wechat-api-sdk 1.0.0 → 1.1.0

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 (107) 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 +85 -0
  8. package/dist/weChatBase/weChatMessage/WeChatMessageFactory.d.ts.map +1 -0
  9. package/dist/weChatBase/weChatMessage/WeChatMessageFactory.js +190 -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/GroupInviteMessage.d.ts +70 -0
  32. package/dist/weChatBase/weChatMessage/types/GroupInviteMessage.d.ts.map +1 -0
  33. package/dist/weChatBase/weChatMessage/types/GroupInviteMessage.js +104 -0
  34. package/dist/weChatBase/weChatMessage/types/GroupInviteMessage.js.map +1 -0
  35. package/dist/weChatBase/weChatMessage/types/GroupNoticeMessage.d.ts +52 -0
  36. package/dist/weChatBase/weChatMessage/types/GroupNoticeMessage.d.ts.map +1 -0
  37. package/dist/weChatBase/weChatMessage/types/GroupNoticeMessage.js +76 -0
  38. package/dist/weChatBase/weChatMessage/types/GroupNoticeMessage.js.map +1 -0
  39. package/dist/weChatBase/weChatMessage/types/GroupSystemMessage.d.ts +94 -0
  40. package/dist/weChatBase/weChatMessage/types/GroupSystemMessage.d.ts.map +1 -0
  41. package/dist/weChatBase/weChatMessage/types/GroupSystemMessage.js +151 -0
  42. package/dist/weChatBase/weChatMessage/types/GroupSystemMessage.js.map +1 -0
  43. package/dist/weChatBase/weChatMessage/types/GroupTodoMessage.d.ts +90 -0
  44. package/dist/weChatBase/weChatMessage/types/GroupTodoMessage.d.ts.map +1 -0
  45. package/dist/weChatBase/weChatMessage/types/GroupTodoMessage.js +111 -0
  46. package/dist/weChatBase/weChatMessage/types/GroupTodoMessage.js.map +1 -0
  47. package/dist/weChatBase/weChatMessage/types/ImageMessage.d.ts +63 -0
  48. package/dist/weChatBase/weChatMessage/types/ImageMessage.d.ts.map +1 -0
  49. package/dist/weChatBase/weChatMessage/types/ImageMessage.js +93 -0
  50. package/dist/weChatBase/weChatMessage/types/ImageMessage.js.map +1 -0
  51. package/dist/weChatBase/weChatMessage/types/LinkMessage.d.ts +78 -0
  52. package/dist/weChatBase/weChatMessage/types/LinkMessage.d.ts.map +1 -0
  53. package/dist/weChatBase/weChatMessage/types/LinkMessage.js +110 -0
  54. package/dist/weChatBase/weChatMessage/types/LinkMessage.js.map +1 -0
  55. package/dist/weChatBase/weChatMessage/types/LocationMessage.d.ts +67 -0
  56. package/dist/weChatBase/weChatMessage/types/LocationMessage.d.ts.map +1 -0
  57. package/dist/weChatBase/weChatMessage/types/LocationMessage.js +84 -0
  58. package/dist/weChatBase/weChatMessage/types/LocationMessage.js.map +1 -0
  59. package/dist/weChatBase/weChatMessage/types/MiniProgramMessage.d.ts +73 -0
  60. package/dist/weChatBase/weChatMessage/types/MiniProgramMessage.d.ts.map +1 -0
  61. package/dist/weChatBase/weChatMessage/types/MiniProgramMessage.js +91 -0
  62. package/dist/weChatBase/weChatMessage/types/MiniProgramMessage.js.map +1 -0
  63. package/dist/weChatBase/weChatMessage/types/PatMessage.d.ts +70 -0
  64. package/dist/weChatBase/weChatMessage/types/PatMessage.d.ts.map +1 -0
  65. package/dist/weChatBase/weChatMessage/types/PatMessage.js +101 -0
  66. package/dist/weChatBase/weChatMessage/types/PatMessage.js.map +1 -0
  67. package/dist/weChatBase/weChatMessage/types/RedPacketMessage.d.ts +93 -0
  68. package/dist/weChatBase/weChatMessage/types/RedPacketMessage.d.ts.map +1 -0
  69. package/dist/weChatBase/weChatMessage/types/RedPacketMessage.js +115 -0
  70. package/dist/weChatBase/weChatMessage/types/RedPacketMessage.js.map +1 -0
  71. package/dist/weChatBase/weChatMessage/types/ReferMessage.d.ts +63 -0
  72. package/dist/weChatBase/weChatMessage/types/ReferMessage.d.ts.map +1 -0
  73. package/dist/weChatBase/weChatMessage/types/ReferMessage.js +88 -0
  74. package/dist/weChatBase/weChatMessage/types/ReferMessage.js.map +1 -0
  75. package/dist/weChatBase/weChatMessage/types/RevokeMessage.d.ts +58 -0
  76. package/dist/weChatBase/weChatMessage/types/RevokeMessage.d.ts.map +1 -0
  77. package/dist/weChatBase/weChatMessage/types/RevokeMessage.js +82 -0
  78. package/dist/weChatBase/weChatMessage/types/RevokeMessage.js.map +1 -0
  79. package/dist/weChatBase/weChatMessage/types/TextMessage.d.ts +26 -0
  80. package/dist/weChatBase/weChatMessage/types/TextMessage.d.ts.map +1 -0
  81. package/dist/weChatBase/weChatMessage/types/TextMessage.js +43 -0
  82. package/dist/weChatBase/weChatMessage/types/TextMessage.js.map +1 -0
  83. package/dist/weChatBase/weChatMessage/types/TransferMessage.d.ts +83 -0
  84. package/dist/weChatBase/weChatMessage/types/TransferMessage.d.ts.map +1 -0
  85. package/dist/weChatBase/weChatMessage/types/TransferMessage.js +109 -0
  86. package/dist/weChatBase/weChatMessage/types/TransferMessage.js.map +1 -0
  87. package/dist/weChatBase/weChatMessage/types/VideoMessage.d.ts +56 -0
  88. package/dist/weChatBase/weChatMessage/types/VideoMessage.d.ts.map +1 -0
  89. package/dist/weChatBase/weChatMessage/types/VideoMessage.js +76 -0
  90. package/dist/weChatBase/weChatMessage/types/VideoMessage.js.map +1 -0
  91. package/dist/weChatBase/weChatMessage/types/VoiceMessage.d.ts +53 -0
  92. package/dist/weChatBase/weChatMessage/types/VoiceMessage.d.ts.map +1 -0
  93. package/dist/weChatBase/weChatMessage/types/VoiceMessage.js +73 -0
  94. package/dist/weChatBase/weChatMessage/types/VoiceMessage.js.map +1 -0
  95. package/dist/weChatBase/weChatMessage/types/index.d.ts +25 -0
  96. package/dist/weChatBase/weChatMessage/types/index.d.ts.map +1 -0
  97. package/dist/weChatBase/weChatMessage/types/index.js +44 -0
  98. package/dist/weChatBase/weChatMessage/types/index.js.map +1 -0
  99. package/dist/weChatBase/weChatMessage/weChatMessageType.d.ts +97 -3
  100. package/dist/weChatBase/weChatMessage/weChatMessageType.d.ts.map +1 -1
  101. package/dist/weChatBase/weChatMessage/weChatMessageType.js +101 -15
  102. package/dist/weChatBase/weChatMessage/weChatMessageType.js.map +1 -1
  103. package/dist/weChatBase/weChatMessage/weChatMsgBase.d.ts +4 -4
  104. package/dist/weChatBase/weChatMessage/weChatMsgBase.d.ts.map +1 -1
  105. package/dist/weChatBase/weChatMessage/weChatMsgBase.js +8 -9
  106. package/dist/weChatBase/weChatMessage/weChatMsgBase.js.map +1 -1
  107. package/package.json +8 -9
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReferMessage = 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 = 57
10
+ *
11
+ * 示例数据:
12
+ * {
13
+ * "MsgType": 49,
14
+ * "Content": {
15
+ * "string": "<?xml><msg><appmsg><type>57</type><title>看看这个</title>..."
16
+ * }
17
+ * }
18
+ */
19
+ class ReferMessage 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, data.Data.PushContent?.string || data.Data.PushContent || '');
22
+ /** 引用消息信息 */
23
+ this.referInfo = {};
24
+ /** 应用消息子类型 */
25
+ this.appMsgType = weChatMessageType_1.AppMessageSubType.ReferMessage;
26
+ // 解析引用消息信息
27
+ this.parseReferInfo();
28
+ }
29
+ /**
30
+ * 解析引用消息信息
31
+ */
32
+ parseReferInfo() {
33
+ try {
34
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
35
+ if (xmlObj?.msg?.appmsg) {
36
+ const appmsg = xmlObj.msg.appmsg;
37
+ this.referInfo = {
38
+ title: appmsg.title
39
+ };
40
+ // 解析被引用的消息
41
+ if (appmsg.refermsg) {
42
+ const refer = appmsg.refermsg;
43
+ this.referInfo.refermsg = {
44
+ type: parseInt(refer.type) || 0,
45
+ svrid: refer.svrid,
46
+ fromusr: refer.fromusr,
47
+ chatusr: refer.chatusr,
48
+ displayname: refer.displayname,
49
+ content: refer.content
50
+ };
51
+ }
52
+ }
53
+ }
54
+ catch (error) {
55
+ console.error('解析引用消息信息失败:', error);
56
+ }
57
+ }
58
+ /**
59
+ * 获取被引用的消息ID
60
+ */
61
+ getReferredMessageId() {
62
+ return this.referInfo.refermsg?.svrid;
63
+ }
64
+ /**
65
+ * 获取被引用的消息内容预览
66
+ */
67
+ getReferredContent() {
68
+ const content = this.referInfo.refermsg?.content || '';
69
+ // 移除XML标签,只保留纯文本
70
+ return content.replace(/<[^>]+>/g, '').substring(0, 50);
71
+ }
72
+ /**
73
+ * 获取消息描述
74
+ */
75
+ getContent() {
76
+ const title = this.referInfo.title || '';
77
+ const referContent = this.getReferredContent();
78
+ return `[引用]${title}${referContent ? ` (引用:${referContent}...)` : ''}`;
79
+ }
80
+ /**
81
+ * 获取消息文本
82
+ */
83
+ async getMsgText() {
84
+ return this.getContent();
85
+ }
86
+ }
87
+ exports.ReferMessage = ReferMessage;
88
+ //# sourceMappingURL=ReferMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/ReferMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { WeChatMsg } from "../weChatMsgBase";
2
+ /**
3
+ * 撤回消息信息接口
4
+ */
5
+ export interface RevokeInfo {
6
+ /** 会话ID */
7
+ session?: string;
8
+ /** 被撤回的消息ID */
9
+ msgid?: string;
10
+ /** 被撤回的新消息ID */
11
+ newmsgid?: string;
12
+ /** 替换文本 */
13
+ replacemsg?: string;
14
+ }
15
+ /**
16
+ * 撤回消息类
17
+ * MsgType = 10002, sysmsg.type = revokemsg
18
+ *
19
+ * 示例数据:
20
+ * {
21
+ * "MsgType": 10002,
22
+ * "Content": {
23
+ * "string": "<sysmsg type=\"revokemsg\"><revokemsg>...</revokemsg></sysmsg>"
24
+ * }
25
+ * }
26
+ */
27
+ export declare class RevokeMessage extends WeChatMsg {
28
+ /** 撤回信息 */
29
+ revokeInfo: RevokeInfo;
30
+ /** 系统消息子类型 */
31
+ sysMsgType: string;
32
+ constructor(data: any);
33
+ /**
34
+ * 解析撤回信息
35
+ */
36
+ private parseRevokeInfo;
37
+ /**
38
+ * 获取被撤回的消息ID
39
+ */
40
+ getRevokedMessageId(): string | undefined;
41
+ /**
42
+ * 获取撤回提示文本
43
+ */
44
+ getRevokeText(): string;
45
+ /**
46
+ * 判断是否为自己撤回
47
+ */
48
+ isSelfRevoke(): boolean;
49
+ /**
50
+ * 获取消息描述
51
+ */
52
+ getContent(): string;
53
+ /**
54
+ * 获取消息文本
55
+ */
56
+ getMsgText(): Promise<string>;
57
+ }
58
+ //# sourceMappingURL=RevokeMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RevokeMessage.d.ts","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/RevokeMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,SAAS;IACxC,WAAW;IACJ,UAAU,EAAE,UAAU,CAAM;IAEnC,cAAc;IACP,UAAU,EAAE,MAAM,CAA+B;gBAE5C,IAAI,EAAE,GAAG;IAoBrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACH,mBAAmB,IAAI,MAAM,GAAG,SAAS;IAIzC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,YAAY,IAAI,OAAO;IAKvB;;OAEG;IACM,UAAU,IAAI,MAAM;IAI7B;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG/C"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RevokeMessage = void 0;
4
+ const weChatMsgBase_1 = require("../weChatMsgBase");
5
+ const weChatMessageType_1 = require("../weChatMessageType");
6
+ const utils_1 = require("../../../utils");
7
+ /**
8
+ * 撤回消息类
9
+ * MsgType = 10002, sysmsg.type = revokemsg
10
+ *
11
+ * 示例数据:
12
+ * {
13
+ * "MsgType": 10002,
14
+ * "Content": {
15
+ * "string": "<sysmsg type=\"revokemsg\"><revokemsg>...</revokemsg></sysmsg>"
16
+ * }
17
+ * }
18
+ */
19
+ class RevokeMessage extends weChatMsgBase_1.WeChatMsg {
20
+ constructor(data) {
21
+ super(data.Appid, data.api, data.Wxid, weChatMessageType_1.WeChatMessageType.SystemMessage, 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, data.Data.PushContent?.string || data.Data.PushContent || '');
22
+ /** 撤回信息 */
23
+ this.revokeInfo = {};
24
+ /** 系统消息子类型 */
25
+ this.sysMsgType = weChatMessageType_1.SystemMessageSubType.Revoke;
26
+ // 解析撤回信息
27
+ this.parseRevokeInfo();
28
+ }
29
+ /**
30
+ * 解析撤回信息
31
+ */
32
+ parseRevokeInfo() {
33
+ try {
34
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
35
+ if (xmlObj?.sysmsg?.revokemsg) {
36
+ const revoke = xmlObj.sysmsg.revokemsg;
37
+ this.revokeInfo = {
38
+ session: revoke.session,
39
+ msgid: revoke.msgid,
40
+ newmsgid: revoke.newmsgid,
41
+ replacemsg: revoke.replacemsg
42
+ };
43
+ }
44
+ }
45
+ catch (error) {
46
+ console.error('解析撤回消息信息失败:', error);
47
+ }
48
+ }
49
+ /**
50
+ * 获取被撤回的消息ID
51
+ */
52
+ getRevokedMessageId() {
53
+ return this.revokeInfo.msgid || this.revokeInfo.newmsgid;
54
+ }
55
+ /**
56
+ * 获取撤回提示文本
57
+ */
58
+ getRevokeText() {
59
+ return this.revokeInfo.replacemsg || '撤回了一条消息';
60
+ }
61
+ /**
62
+ * 判断是否为自己撤回
63
+ */
64
+ isSelfRevoke() {
65
+ const text = this.getRevokeText();
66
+ return text.includes('你撤回了') || text.toLowerCase().includes('you recalled');
67
+ }
68
+ /**
69
+ * 获取消息描述
70
+ */
71
+ getContent() {
72
+ return `[撤回]${this.getRevokeText()}`;
73
+ }
74
+ /**
75
+ * 获取消息文本
76
+ */
77
+ async getMsgText() {
78
+ return this.getContent();
79
+ }
80
+ }
81
+ exports.RevokeMessage = RevokeMessage;
82
+ //# sourceMappingURL=RevokeMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RevokeMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/RevokeMessage.ts"],"names":[],"mappings":";;;AAAA,oDAA6C;AAC7C,4DAA+E;AAC/E,0CAA6C;AAgB7C;;;;;;;;;;;GAWG;AACH,MAAa,aAAc,SAAQ,yBAAS;IAOxC,YAAY,IAAS;QACjB,KAAK,CACD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,EACT,qCAAiB,CAAC,aAAa,EAC/B,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,EAC9C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAC/D,CAAC;QApBN,WAAW;QACJ,eAAU,GAAe,EAAE,CAAC;QAEnC,cAAc;QACP,eAAU,GAAW,wCAAoB,CAAC,MAAM,CAAC;QAkBpD,SAAS;QACT,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,eAAe;QACnB,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG;oBACd,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;iBAChC,CAAC;YACN,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,mBAAmB;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,SAAS,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,YAAY;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACM,UAAU;QACf,OAAO,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACJ;AAlFD,sCAkFC"}
@@ -0,0 +1,26 @@
1
+ import { WeChatMsg } from "../weChatMsgBase";
2
+ /**
3
+ * 文本消息类
4
+ * MsgType = 1
5
+ *
6
+ * 示例数据:
7
+ * {
8
+ * "MsgType": 1,
9
+ * "Content": { "string": "123" },
10
+ * "FromUserName": { "string": "wxid_phyyedw9xap22" },
11
+ * "ToUserName": { "string": "wxid_0xsqb3o0tsvz22" }
12
+ * }
13
+ */
14
+ export declare class TextMessage extends WeChatMsg {
15
+ constructor(data: any);
16
+ /**
17
+ * 获取纯文本内容
18
+ * 如果是群聊消息会去掉发送人前缀
19
+ */
20
+ getContent(): string;
21
+ /**
22
+ * 获取消息文本
23
+ */
24
+ getMsgText(): Promise<string>;
25
+ }
26
+ //# sourceMappingURL=TextMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextMessage.d.ts","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/TextMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,SAAQ,SAAS;gBAE1B,IAAI,EAAE,GAAG;IAiBrB;;;OAGG;IACM,UAAU,IAAI,MAAM;IAS7B;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG/C"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextMessage = void 0;
4
+ const weChatMsgBase_1 = require("../weChatMsgBase");
5
+ const weChatMessageType_1 = require("../weChatMessageType");
6
+ /**
7
+ * 文本消息类
8
+ * MsgType = 1
9
+ *
10
+ * 示例数据:
11
+ * {
12
+ * "MsgType": 1,
13
+ * "Content": { "string": "123" },
14
+ * "FromUserName": { "string": "wxid_phyyedw9xap22" },
15
+ * "ToUserName": { "string": "wxid_0xsqb3o0tsvz22" }
16
+ * }
17
+ */
18
+ class TextMessage extends weChatMsgBase_1.WeChatMsg {
19
+ constructor(data) {
20
+ super(data.Appid, data.api, data.Wxid, weChatMessageType_1.WeChatMessageType.Text, 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, data.Data.PushContent?.string || data.Data.PushContent || '');
21
+ }
22
+ /**
23
+ * 获取纯文本内容
24
+ * 如果是群聊消息会去掉发送人前缀
25
+ */
26
+ getContent() {
27
+ if (this.getIsFriend()) {
28
+ return this.Content.trim();
29
+ }
30
+ else {
31
+ // 群聊消息格式: "wxid_xxx:\n消息内容"
32
+ return this.Content.split(':\n').slice(1).join(':\n').trim();
33
+ }
34
+ }
35
+ /**
36
+ * 获取消息文本
37
+ */
38
+ async getMsgText() {
39
+ return this.getContent();
40
+ }
41
+ }
42
+ exports.TextMessage = TextMessage;
43
+ //# sourceMappingURL=TextMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/TextMessage.ts"],"names":[],"mappings":";;;AAAA,oDAA6C;AAC7C,4DAAyD;AAEzD;;;;;;;;;;;GAWG;AACH,MAAa,WAAY,SAAQ,yBAAS;IAEtC,YAAY,IAAS;QACjB,KAAK,CACD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,EACT,qCAAiB,CAAC,IAAI,EACtB,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,EAC9C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAC/D,CAAC;IACN,CAAC;IAED;;;OAGG;IACM,UAAU;QACf,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,4BAA4B;YAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACjE,CAAC;IACL,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACJ;AAtCD,kCAsCC"}
@@ -0,0 +1,83 @@
1
+ import { WeChatMsg } from "../weChatMsgBase";
2
+ /**
3
+ * 转账信息接口
4
+ */
5
+ export interface TransferInfo {
6
+ /** 转账标题 */
7
+ title?: string;
8
+ /** 转账描述 */
9
+ des?: string;
10
+ /** 转账URL */
11
+ url?: string;
12
+ /** 微信支付信息 */
13
+ wcpayinfo?: {
14
+ /** 支付子类型 */
15
+ paysubtype?: string;
16
+ /** 金额描述 */
17
+ feedesc?: string;
18
+ /** 交易ID */
19
+ transcationid?: string;
20
+ /** 转账ID */
21
+ transferid?: string;
22
+ /** 失效时间 */
23
+ invalidtime?: string;
24
+ /** 开始转账时间 */
25
+ begintransfertime?: string;
26
+ /** 有效天数 */
27
+ effectivedate?: string;
28
+ /** 转账备注 */
29
+ pay_memo?: string;
30
+ /** 接收方用户名 */
31
+ receiver_username?: string;
32
+ /** 支付方用户名 */
33
+ payer_username?: string;
34
+ };
35
+ }
36
+ /**
37
+ * 转账消息类
38
+ * MsgType = 49, appmsg.type = 2000
39
+ *
40
+ * 示例数据:
41
+ * {
42
+ * "MsgType": 49,
43
+ * "Content": {
44
+ * "string": "<msg><appmsg><type>2000</type><title>微信转账</title>..."
45
+ * }
46
+ * }
47
+ */
48
+ export declare class TransferMessage extends WeChatMsg {
49
+ /** 转账信息 */
50
+ transferInfo: TransferInfo;
51
+ /** 应用消息子类型 */
52
+ appMsgType: number;
53
+ constructor(data: any);
54
+ /**
55
+ * 解析转账信息
56
+ */
57
+ private parseTransferInfo;
58
+ /**
59
+ * 获取转账金额
60
+ */
61
+ getAmount(): string;
62
+ /**
63
+ * 获取转账ID
64
+ */
65
+ getTransferId(): string | undefined;
66
+ /**
67
+ * 获取转账备注
68
+ */
69
+ getMemo(): string;
70
+ /**
71
+ * 判断转账是否已过期
72
+ */
73
+ isExpiredTransfer(): boolean;
74
+ /**
75
+ * 获取消息描述
76
+ */
77
+ getContent(): string;
78
+ /**
79
+ * 获取消息文本
80
+ */
81
+ getMsgText(): Promise<string>;
82
+ }
83
+ //# sourceMappingURL=TransferMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransferMessage.d.ts","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/TransferMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa;IACb,SAAS,CAAC,EAAE;QACR,YAAY;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW;QACX,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW;QACX,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa;QACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,WAAW;QACX,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW;QACX,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa;QACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,aAAa;QACb,cAAc,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACL;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC1C,WAAW;IACJ,YAAY,EAAE,YAAY,CAAM;IAEvC,cAAc;IACP,UAAU,EAAE,MAAM,CAA8B;gBAE3C,IAAI,EAAE,GAAG;IAoBrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkCzB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAO5B;;OAEG;IACM,UAAU,IAAI,MAAM;IAO7B;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG/C"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransferMessage = 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 = 2000
10
+ *
11
+ * 示例数据:
12
+ * {
13
+ * "MsgType": 49,
14
+ * "Content": {
15
+ * "string": "<msg><appmsg><type>2000</type><title>微信转账</title>..."
16
+ * }
17
+ * }
18
+ */
19
+ class TransferMessage 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, data.Data.PushContent?.string || data.Data.PushContent || '');
22
+ /** 转账信息 */
23
+ this.transferInfo = {};
24
+ /** 应用消息子类型 */
25
+ this.appMsgType = weChatMessageType_1.AppMessageSubType.Transfer;
26
+ // 解析转账信息
27
+ this.parseTransferInfo();
28
+ }
29
+ /**
30
+ * 解析转账信息
31
+ */
32
+ parseTransferInfo() {
33
+ try {
34
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
35
+ if (xmlObj?.msg?.appmsg) {
36
+ const appmsg = xmlObj.msg.appmsg;
37
+ this.transferInfo = {
38
+ title: appmsg.title,
39
+ des: appmsg.des,
40
+ url: appmsg.url
41
+ };
42
+ // 解析微信支付信息
43
+ if (appmsg.wcpayinfo) {
44
+ const pay = appmsg.wcpayinfo;
45
+ this.transferInfo.wcpayinfo = {
46
+ paysubtype: pay.paysubtype,
47
+ feedesc: pay.feedesc,
48
+ transcationid: pay.transcationid,
49
+ transferid: pay.transferid,
50
+ invalidtime: pay.invalidtime,
51
+ begintransfertime: pay.begintransfertime,
52
+ effectivedate: pay.effectivedate,
53
+ pay_memo: pay.pay_memo,
54
+ receiver_username: pay.receiver_username,
55
+ payer_username: pay.payer_username
56
+ };
57
+ }
58
+ }
59
+ }
60
+ catch (error) {
61
+ console.error('解析转账信息失败:', error);
62
+ }
63
+ }
64
+ /**
65
+ * 获取转账金额
66
+ */
67
+ getAmount() {
68
+ return this.transferInfo.wcpayinfo?.feedesc || '¥0.00';
69
+ }
70
+ /**
71
+ * 获取转账ID
72
+ */
73
+ getTransferId() {
74
+ return this.transferInfo.wcpayinfo?.transferid;
75
+ }
76
+ /**
77
+ * 获取转账备注
78
+ */
79
+ getMemo() {
80
+ return this.transferInfo.wcpayinfo?.pay_memo || '';
81
+ }
82
+ /**
83
+ * 判断转账是否已过期
84
+ */
85
+ isExpiredTransfer() {
86
+ const invalidTime = this.transferInfo.wcpayinfo?.invalidtime;
87
+ if (!invalidTime)
88
+ return false;
89
+ const expireTimestamp = parseInt(invalidTime);
90
+ return expireTimestamp < Date.now() / 1000;
91
+ }
92
+ /**
93
+ * 获取消息描述
94
+ */
95
+ getContent() {
96
+ const amount = this.getAmount();
97
+ const memo = this.getMemo();
98
+ const expired = this.isExpiredTransfer() ? '(已过期)' : '';
99
+ return `[转账${expired}]${amount}${memo ? ` (${memo})` : ''}`;
100
+ }
101
+ /**
102
+ * 获取消息文本
103
+ */
104
+ async getMsgText() {
105
+ return this.getContent();
106
+ }
107
+ }
108
+ exports.TransferMessage = TransferMessage;
109
+ //# sourceMappingURL=TransferMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransferMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/TransferMessage.ts"],"names":[],"mappings":";;;AAAA,oDAA6C;AAC7C,4DAA4E;AAC5E,0CAA6C;AAqC7C;;;;;;;;;;;GAWG;AACH,MAAa,eAAgB,SAAQ,yBAAS;IAO1C,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,EAC9C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAC/D,CAAC;QApBN,WAAW;QACJ,iBAAY,GAAiB,EAAE,CAAC;QAEvC,cAAc;QACP,eAAU,GAAW,qCAAiB,CAAC,QAAQ,CAAC;QAkBnD,SAAS;QACT,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;oBACf,GAAG,EAAE,MAAM,CAAC,GAAG;iBAClB,CAAC;gBAEF,WAAW;gBACX,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;oBAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG;wBAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,aAAa,EAAE,GAAG,CAAC,aAAa;wBAChC,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;wBACxC,aAAa,EAAE,GAAG,CAAC,aAAa;wBAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;wBACxC,cAAc,EAAE,GAAG,CAAC,cAAc;qBACrC,CAAC;gBACN,CAAC;YACL,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,SAAS;QACL,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,IAAI,OAAO,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,OAAO;QACH,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,IAAI,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,iBAAiB;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC;QAC7D,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9C,OAAO,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC/C,CAAC;IAED;;OAEG;IACM,UAAU;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,MAAM,OAAO,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAChE,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACJ;AA/GD,0CA+GC"}
@@ -0,0 +1,56 @@
1
+ import { WeChatMsg } from "../weChatMsgBase";
2
+ /**
3
+ * 视频信息接口
4
+ */
5
+ export interface VideoInfo {
6
+ /** 视频AES密钥 */
7
+ aeskey?: string;
8
+ /** 视频CDN URL */
9
+ cdnvideourl?: string;
10
+ /** 缩略图CDN URL */
11
+ cdnthumburl?: string;
12
+ /** 视频长度(字节) */
13
+ length?: number;
14
+ /** 播放时长(秒) */
15
+ playlength?: number;
16
+ /** 缩略图长度(字节) */
17
+ cdnthumblength?: number;
18
+ /** 视频宽度 */
19
+ cdnthumbwidth?: number;
20
+ /** 视频高度 */
21
+ cdnthumbheight?: number;
22
+ /** 视频MD5 */
23
+ md5?: string;
24
+ }
25
+ /**
26
+ * 视频消息类
27
+ * MsgType = 43
28
+ *
29
+ * 示例数据:
30
+ * {
31
+ * "MsgType": 43,
32
+ * "Content": { "string": "<?xml...视频cdn信息..." }
33
+ * }
34
+ */
35
+ export declare class VideoMessage extends WeChatMsg {
36
+ /** 视频信息 */
37
+ videoInfo: VideoInfo;
38
+ constructor(data: any);
39
+ /**
40
+ * 解析视频信息
41
+ */
42
+ private parseVideoInfo;
43
+ /**
44
+ * 获取视频时长描述
45
+ */
46
+ getVideoDuration(): string;
47
+ /**
48
+ * 获取消息描述
49
+ */
50
+ getContent(): string;
51
+ /**
52
+ * 获取消息文本
53
+ */
54
+ getMsgText(): Promise<string>;
55
+ }
56
+ //# sourceMappingURL=VideoMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoMessage.d.ts","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/VideoMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACvC,WAAW;IACJ,SAAS,EAAE,SAAS,CAAM;gBAErB,IAAI,EAAE,GAAG;IAoBrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAU1B;;OAEG;IACM,UAAU,IAAI,MAAM;IAI7B;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG/C"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VideoMessage = void 0;
4
+ const weChatMsgBase_1 = require("../weChatMsgBase");
5
+ const weChatMessageType_1 = require("../weChatMessageType");
6
+ const utils_1 = require("../../../utils");
7
+ /**
8
+ * 视频消息类
9
+ * MsgType = 43
10
+ *
11
+ * 示例数据:
12
+ * {
13
+ * "MsgType": 43,
14
+ * "Content": { "string": "<?xml...视频cdn信息..." }
15
+ * }
16
+ */
17
+ class VideoMessage extends weChatMsgBase_1.WeChatMsg {
18
+ constructor(data) {
19
+ super(data.Appid, data.api, data.Wxid, weChatMessageType_1.WeChatMessageType.Video, 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, data.Data.PushContent?.string || data.Data.PushContent || '');
20
+ /** 视频信息 */
21
+ this.videoInfo = {};
22
+ // 解析视频信息
23
+ this.parseVideoInfo();
24
+ }
25
+ /**
26
+ * 解析视频信息
27
+ */
28
+ parseVideoInfo() {
29
+ try {
30
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
31
+ if (xmlObj?.msg?.videomsg) {
32
+ const video = xmlObj.msg.videomsg;
33
+ this.videoInfo = {
34
+ aeskey: video.aeskey,
35
+ cdnvideourl: video.cdnvideourl,
36
+ cdnthumburl: video.cdnthumburl,
37
+ length: parseInt(video.length) || 0,
38
+ playlength: parseInt(video.playlength) || 0,
39
+ cdnthumblength: parseInt(video.cdnthumblength) || 0,
40
+ cdnthumbwidth: parseInt(video.cdnthumbwidth) || 0,
41
+ cdnthumbheight: parseInt(video.cdnthumbheight) || 0,
42
+ md5: video.md5
43
+ };
44
+ }
45
+ }
46
+ catch (error) {
47
+ console.error('解析视频信息失败:', error);
48
+ }
49
+ }
50
+ /**
51
+ * 获取视频时长描述
52
+ */
53
+ getVideoDuration() {
54
+ const seconds = this.videoInfo.playlength || 0;
55
+ if (seconds < 60) {
56
+ return `${seconds}秒`;
57
+ }
58
+ const minutes = Math.floor(seconds / 60);
59
+ const remainSeconds = seconds % 60;
60
+ return remainSeconds > 0 ? `${minutes}分${remainSeconds}秒` : `${minutes}分钟`;
61
+ }
62
+ /**
63
+ * 获取消息描述
64
+ */
65
+ getContent() {
66
+ return `[视频${this.getVideoDuration()}]`;
67
+ }
68
+ /**
69
+ * 获取消息文本
70
+ */
71
+ async getMsgText() {
72
+ return this.getContent();
73
+ }
74
+ }
75
+ exports.VideoMessage = VideoMessage;
76
+ //# sourceMappingURL=VideoMessage.js.map