@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,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GroupTodoMessage = 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 = roomtoolstips
10
+ *
11
+ * 示例数据:
12
+ * {
13
+ * "MsgType": 10002,
14
+ * "Content": {
15
+ * "string": "<sysmsg type=\"roomtoolstips\"><todo>...</todo></sysmsg>"
16
+ * }
17
+ * }
18
+ */
19
+ class GroupTodoMessage 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.todoInfo = {};
24
+ /** 系统消息子类型 */
25
+ this.sysMsgType = weChatMessageType_1.SystemMessageSubType.GroupTodo;
26
+ // 解析群待办信息
27
+ this.parseTodoInfo();
28
+ }
29
+ /**
30
+ * 解析群待办信息
31
+ */
32
+ parseTodoInfo() {
33
+ try {
34
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
35
+ if (xmlObj?.sysmsg?.todo) {
36
+ const todo = xmlObj.sysmsg.todo;
37
+ this.todoInfo = {
38
+ op: todo.op,
39
+ todoid: todo.todoid,
40
+ username: todo.username,
41
+ path: todo.path,
42
+ time: todo.time,
43
+ custominfo: todo.custominfo,
44
+ title: todo.title,
45
+ creator: todo.creator,
46
+ related_msgid: todo.related_msgid,
47
+ manager: todo.manager,
48
+ nreply: todo.nreply,
49
+ scene: todo.scene,
50
+ oper: todo.oper,
51
+ sharekey: todo.sharekey,
52
+ sharename: todo.sharename,
53
+ template: todo.template
54
+ };
55
+ }
56
+ }
57
+ catch (error) {
58
+ console.error('解析群待办信息失败:', error);
59
+ }
60
+ }
61
+ /**
62
+ * 获取待办标题
63
+ */
64
+ getTodoTitle() {
65
+ return this.todoInfo.title || '群待办';
66
+ }
67
+ /**
68
+ * 获取操作者
69
+ */
70
+ getOperator() {
71
+ return this.todoInfo.oper || '';
72
+ }
73
+ /**
74
+ * 获取创建者
75
+ */
76
+ getCreator() {
77
+ return this.todoInfo.creator || '';
78
+ }
79
+ /**
80
+ * 获取模板文本
81
+ */
82
+ getTemplateText() {
83
+ return this.todoInfo.template || '';
84
+ }
85
+ /**
86
+ * 判断是否为设置待办操作
87
+ */
88
+ isSetTodo() {
89
+ return this.todoInfo.op === '0';
90
+ }
91
+ /**
92
+ * 获取消息描述
93
+ */
94
+ getContent() {
95
+ const template = this.getTemplateText();
96
+ if (template) {
97
+ // 替换模板中的变量,例如 ${wxid_xxx} 替换为实际用户
98
+ return `[群待办]${template}`;
99
+ }
100
+ const title = this.getTodoTitle();
101
+ return `[群待办]${title}`;
102
+ }
103
+ /**
104
+ * 获取消息文本
105
+ */
106
+ async getMsgText() {
107
+ return this.getContent();
108
+ }
109
+ }
110
+ exports.GroupTodoMessage = GroupTodoMessage;
111
+ //# sourceMappingURL=GroupTodoMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupTodoMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/GroupTodoMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { WeChatMsg } from "../weChatMsgBase";
2
+ /**
3
+ * 图片信息接口
4
+ */
5
+ export interface ImageInfo {
6
+ /** AES密钥 */
7
+ aeskey?: string;
8
+ /** CDN缩略图URL */
9
+ cdnthumburl?: string;
10
+ /** CDN中图URL */
11
+ cdnmidimgurl?: string;
12
+ /** 图片长度 */
13
+ length?: number;
14
+ /** MD5值 */
15
+ md5?: string;
16
+ /** 缩略图长度 */
17
+ cdnthumblength?: number;
18
+ /** 缩略图高度 */
19
+ cdnthumbheight?: number;
20
+ /** 缩略图宽度 */
21
+ cdnthumbwidth?: number;
22
+ }
23
+ /**
24
+ * 图片消息类
25
+ * MsgType = 3
26
+ *
27
+ * 示例数据:
28
+ * {
29
+ * "MsgType": 3,
30
+ * "Content": { "string": "<?xml...图片cdn信息..." },
31
+ * "ImgBuf": { "iLen": 2146, "buffer": "/9j/4AAQ..." }
32
+ * }
33
+ */
34
+ export declare class ImageMessage extends WeChatMsg {
35
+ /** 缩略图Base64数据 */
36
+ thumbnailBase64?: string;
37
+ /** 图片信息 */
38
+ imageInfo: ImageInfo;
39
+ constructor(data: any);
40
+ /**
41
+ * 解析图片信息
42
+ */
43
+ private parseImageInfo;
44
+ /**
45
+ * 获取缩略图Base64
46
+ */
47
+ getThumbnailBase64(): string | undefined;
48
+ /**
49
+ * 下载图片
50
+ * @param type 下载类型 1=缩略图, 2=中图, 3=原图
51
+ * @returns 图片URL或Base64
52
+ */
53
+ downImage(type?: number, xmlStr?: string): Promise<string>;
54
+ /**
55
+ * 获取图片URL
56
+ */
57
+ getMsgText(): Promise<string>;
58
+ /**
59
+ * 获取消息描述
60
+ */
61
+ getContent(): string;
62
+ }
63
+ //# sourceMappingURL=ImageMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageMessage.d.ts","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/ImageMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACvC,kBAAkB;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;IAEhC,WAAW;IACJ,SAAS,EAAE,SAAS,CAAM;gBAErB,IAAI,EAAE,GAAG;IAyBrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,SAAS;IAIxC;;;;OAIG;IACY,SAAS,CAAC,IAAI,GAAE,MAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5E;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAc5C;;OAEG;IACM,UAAU,IAAI,MAAM;CAGhC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ImageMessage = void 0;
4
+ const weChatMsgBase_1 = require("../weChatMsgBase");
5
+ const weChatMessageType_1 = require("../weChatMessageType");
6
+ const utils_1 = require("../../../utils");
7
+ /**
8
+ * 图片消息类
9
+ * MsgType = 3
10
+ *
11
+ * 示例数据:
12
+ * {
13
+ * "MsgType": 3,
14
+ * "Content": { "string": "<?xml...图片cdn信息..." },
15
+ * "ImgBuf": { "iLen": 2146, "buffer": "/9j/4AAQ..." }
16
+ * }
17
+ */
18
+ class ImageMessage extends weChatMsgBase_1.WeChatMsg {
19
+ constructor(data) {
20
+ super(data.Appid, data.api, data.Wxid, weChatMessageType_1.WeChatMessageType.Image, 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
+ this.imageInfo = {};
23
+ // 解析缩略图
24
+ if (data.Data.ImgBuf && data.Data.ImgBuf.iLen > 0) {
25
+ this.thumbnailBase64 = data.Data.ImgBuf.buffer;
26
+ }
27
+ // 解析图片信息
28
+ this.parseImageInfo();
29
+ }
30
+ /**
31
+ * 解析图片信息
32
+ */
33
+ parseImageInfo() {
34
+ try {
35
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
36
+ if (xmlObj?.msg?.img) {
37
+ const img = xmlObj.msg.img;
38
+ this.imageInfo = {
39
+ aeskey: img.aeskey,
40
+ cdnthumburl: img.cdnthumburl,
41
+ cdnmidimgurl: img.cdnmidimgurl,
42
+ length: parseInt(img.length) || 0,
43
+ md5: img.md5,
44
+ cdnthumblength: parseInt(img.cdnthumblength) || 0,
45
+ cdnthumbheight: parseInt(img.cdnthumbheight) || 0,
46
+ cdnthumbwidth: parseInt(img.cdnthumbwidth) || 0
47
+ };
48
+ }
49
+ }
50
+ catch (error) {
51
+ console.error('解析图片信息失败:', error);
52
+ }
53
+ }
54
+ /**
55
+ * 获取缩略图Base64
56
+ */
57
+ getThumbnailBase64() {
58
+ return this.thumbnailBase64;
59
+ }
60
+ /**
61
+ * 下载图片
62
+ * @param type 下载类型 1=缩略图, 2=中图, 3=原图
63
+ * @returns 图片URL或Base64
64
+ */
65
+ async downImage(type = 1, xmlStr) {
66
+ return super.downImage(type, xmlStr || this.Content);
67
+ }
68
+ /**
69
+ * 获取图片URL
70
+ */
71
+ async getMsgText() {
72
+ try {
73
+ const imageUrl = await this.downImage(1, this.Content);
74
+ if (!imageUrl) {
75
+ throw new Error("图片下载失败");
76
+ }
77
+ return imageUrl;
78
+ }
79
+ catch (error) {
80
+ console.error('获取图片失败:', error);
81
+ // 降级返回缩略图Base64
82
+ return this.thumbnailBase64 || '[图片]';
83
+ }
84
+ }
85
+ /**
86
+ * 获取消息描述
87
+ */
88
+ getContent() {
89
+ return '[图片]';
90
+ }
91
+ }
92
+ exports.ImageMessage = ImageMessage;
93
+ //# sourceMappingURL=ImageMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/ImageMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { WeChatMsg } from "../weChatMsgBase";
2
+ /**
3
+ * 链接信息接口
4
+ */
5
+ export interface LinkInfo {
6
+ /** 链接标题 */
7
+ title?: string;
8
+ /** 链接描述 */
9
+ des?: string;
10
+ /** 链接URL */
11
+ url?: string;
12
+ /** 缩略图URL */
13
+ thumburl?: string;
14
+ /** 来源用户名 */
15
+ sourceusername?: string;
16
+ /** 来源显示名称 */
17
+ sourcedisplayname?: string;
18
+ /** CDN缩略图URL */
19
+ cdnthumburl?: string;
20
+ /** CDN缩略图MD5 */
21
+ cdnthumbmd5?: string;
22
+ /** CDN缩略图长度 */
23
+ cdnthumblength?: number;
24
+ /** CDN缩略图宽度 */
25
+ cdnthumbwidth?: number;
26
+ /** CDN缩略图高度 */
27
+ cdnthumbheight?: number;
28
+ /** CDN缩略图AES密钥 */
29
+ cdnthumbaeskey?: string;
30
+ }
31
+ /**
32
+ * 链接消息类
33
+ * MsgType = 49, appmsg.type = 5
34
+ *
35
+ * 包括:
36
+ * 1. 公众号链接消息
37
+ * 2. 群聊邀请(判断标题是否包含"邀请你加入群聊")
38
+ *
39
+ * 示例数据:
40
+ * {
41
+ * "MsgType": 49,
42
+ * "Content": {
43
+ * "string": "<?xml><msg><appmsg><type>5</type><title>文章标题</title>..."
44
+ * }
45
+ * }
46
+ */
47
+ export declare class LinkMessage extends WeChatMsg {
48
+ /** 链接信息 */
49
+ linkInfo: LinkInfo;
50
+ /** 应用消息子类型 */
51
+ appMsgType: number;
52
+ constructor(data: any);
53
+ /**
54
+ * 解析链接信息
55
+ */
56
+ private parseLinkInfo;
57
+ /**
58
+ * 判断是否为群聊邀请
59
+ */
60
+ isGroupInvite(): boolean;
61
+ /**
62
+ * 判断是否为公众号链接
63
+ */
64
+ isPublicAccountLink(): boolean;
65
+ /**
66
+ * 获取链接类型描述
67
+ */
68
+ getLinkType(): string;
69
+ /**
70
+ * 获取消息描述
71
+ */
72
+ getContent(): string;
73
+ /**
74
+ * 获取消息文本
75
+ */
76
+ getMsgText(): Promise<string>;
77
+ }
78
+ //# sourceMappingURL=LinkMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkMessage.d.ts","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/LinkMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,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,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACtC,WAAW;IACJ,QAAQ,EAAE,QAAQ,CAAM;IAE/B,cAAc;IACP,UAAU,EAAE,MAAM,CAA0B;gBAEvC,IAAI,EAAE,GAAG;IAoBrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAgCrB;;OAEG;IACH,aAAa,IAAI,OAAO;IAQxB;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,WAAW,IAAI,MAAM;IASrB;;OAEG;IACM,UAAU,IAAI,MAAM;IAM7B;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG/C"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LinkMessage = 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 = 5
10
+ *
11
+ * 包括:
12
+ * 1. 公众号链接消息
13
+ * 2. 群聊邀请(判断标题是否包含"邀请你加入群聊")
14
+ *
15
+ * 示例数据:
16
+ * {
17
+ * "MsgType": 49,
18
+ * "Content": {
19
+ * "string": "<?xml><msg><appmsg><type>5</type><title>文章标题</title>..."
20
+ * }
21
+ * }
22
+ */
23
+ class LinkMessage extends weChatMsgBase_1.WeChatMsg {
24
+ constructor(data) {
25
+ 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 || '');
26
+ /** 链接信息 */
27
+ this.linkInfo = {};
28
+ /** 应用消息子类型 */
29
+ this.appMsgType = weChatMessageType_1.AppMessageSubType.Link;
30
+ // 解析链接信息
31
+ this.parseLinkInfo();
32
+ }
33
+ /**
34
+ * 解析链接信息
35
+ */
36
+ parseLinkInfo() {
37
+ try {
38
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
39
+ if (xmlObj?.msg?.appmsg) {
40
+ const appmsg = xmlObj.msg.appmsg;
41
+ this.appMsgType = parseInt(appmsg.type) || weChatMessageType_1.AppMessageSubType.Link;
42
+ this.linkInfo = {
43
+ title: appmsg.title,
44
+ des: appmsg.des,
45
+ url: appmsg.url,
46
+ thumburl: appmsg.thumburl,
47
+ sourceusername: appmsg.sourceusername,
48
+ sourcedisplayname: appmsg.sourcedisplayname
49
+ };
50
+ // 解析CDN缩略图信息
51
+ if (appmsg.appattach) {
52
+ const attach = appmsg.appattach;
53
+ this.linkInfo.cdnthumburl = attach.cdnthumburl;
54
+ this.linkInfo.cdnthumbmd5 = attach.cdnthumbmd5;
55
+ this.linkInfo.cdnthumblength = parseInt(attach.cdnthumblength) || 0;
56
+ this.linkInfo.cdnthumbwidth = parseInt(attach.cdnthumbwidth) || 0;
57
+ this.linkInfo.cdnthumbheight = parseInt(attach.cdnthumbheight) || 0;
58
+ this.linkInfo.cdnthumbaeskey = attach.cdnthumbaeskey;
59
+ }
60
+ }
61
+ }
62
+ catch (error) {
63
+ console.error('解析链接信息失败:', error);
64
+ }
65
+ }
66
+ /**
67
+ * 判断是否为群聊邀请
68
+ */
69
+ isGroupInvite() {
70
+ const title = this.linkInfo.title || '';
71
+ // 支持多语言判断
72
+ return title.includes('邀请你加入群聊') ||
73
+ title.includes('invite you to join') ||
74
+ title.toLowerCase().includes('group chat');
75
+ }
76
+ /**
77
+ * 判断是否为公众号链接
78
+ */
79
+ isPublicAccountLink() {
80
+ return !this.isGroupInvite() && !!this.linkInfo.sourceusername;
81
+ }
82
+ /**
83
+ * 获取链接类型描述
84
+ */
85
+ getLinkType() {
86
+ if (this.isGroupInvite()) {
87
+ return '群聊邀请';
88
+ }
89
+ else if (this.isPublicAccountLink()) {
90
+ return '公众号链接';
91
+ }
92
+ return '链接';
93
+ }
94
+ /**
95
+ * 获取消息描述
96
+ */
97
+ getContent() {
98
+ const type = this.getLinkType();
99
+ const title = this.linkInfo.title || '链接';
100
+ return `[${type}]${title}`;
101
+ }
102
+ /**
103
+ * 获取消息文本
104
+ */
105
+ async getMsgText() {
106
+ return this.getContent();
107
+ }
108
+ }
109
+ exports.LinkMessage = LinkMessage;
110
+ //# sourceMappingURL=LinkMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/LinkMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { WeChatMsg } from "../weChatMsgBase";
2
+ /**
3
+ * 位置信息接口
4
+ */
5
+ export interface LocationInfo {
6
+ /** 纬度 */
7
+ x?: string;
8
+ /** 经度 */
9
+ y?: string;
10
+ /** 缩放级别 */
11
+ scale?: string;
12
+ /** 地址标签 */
13
+ label?: string;
14
+ /** POI名称 */
15
+ poiname?: string;
16
+ /** POI ID */
17
+ poiid?: string;
18
+ /** 城市名称 */
19
+ cityname?: string;
20
+ /** 行政区代码 */
21
+ adcode?: string;
22
+ /** POI类别提示 */
23
+ poiCategoryTips?: string;
24
+ /** POI营业时间 */
25
+ poiBusinessHour?: string;
26
+ /** POI电话 */
27
+ poiPhone?: string;
28
+ }
29
+ /**
30
+ * 地理位置消息类
31
+ * MsgType = 48
32
+ *
33
+ * 示例数据:
34
+ * {
35
+ * "MsgType": 48,
36
+ * "Content": { "string": "<?xml...位置信息..." }
37
+ * }
38
+ */
39
+ export declare class LocationMessage extends WeChatMsg {
40
+ /** 位置信息 */
41
+ locationInfo: LocationInfo;
42
+ constructor(data: any);
43
+ /**
44
+ * 解析位置信息
45
+ */
46
+ private parseLocationInfo;
47
+ /**
48
+ * 获取坐标
49
+ */
50
+ getCoordinates(): {
51
+ lat: number;
52
+ lng: number;
53
+ };
54
+ /**
55
+ * 获取地图链接
56
+ */
57
+ getMapUrl(): string;
58
+ /**
59
+ * 获取消息描述
60
+ */
61
+ getContent(): string;
62
+ /**
63
+ * 获取消息文本
64
+ */
65
+ getMsgText(): Promise<string>;
66
+ }
67
+ //# sourceMappingURL=LocationMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocationMessage.d.ts","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/LocationMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,SAAS;IACT,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,SAAS;IACT,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC1C,WAAW;IACJ,YAAY,EAAE,YAAY,CAAM;gBAE3B,IAAI,EAAE,GAAG;IAoBrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;IACH,cAAc,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAO9C;;OAEG;IACH,SAAS,IAAI,MAAM;IAMnB;;OAEG;IACM,UAAU,IAAI,MAAM;IAK7B;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG/C"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocationMessage = void 0;
4
+ const weChatMsgBase_1 = require("../weChatMsgBase");
5
+ const weChatMessageType_1 = require("../weChatMessageType");
6
+ const utils_1 = require("../../../utils");
7
+ /**
8
+ * 地理位置消息类
9
+ * MsgType = 48
10
+ *
11
+ * 示例数据:
12
+ * {
13
+ * "MsgType": 48,
14
+ * "Content": { "string": "<?xml...位置信息..." }
15
+ * }
16
+ */
17
+ class LocationMessage extends weChatMsgBase_1.WeChatMsg {
18
+ constructor(data) {
19
+ super(data.Appid, data.api, data.Wxid, weChatMessageType_1.WeChatMessageType.Location, 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.locationInfo = {};
22
+ // 解析位置信息
23
+ this.parseLocationInfo();
24
+ }
25
+ /**
26
+ * 解析位置信息
27
+ */
28
+ parseLocationInfo() {
29
+ try {
30
+ const xmlObj = (0, utils_1.getXml2Json)(this.Content);
31
+ if (xmlObj?.msg?.location) {
32
+ const loc = xmlObj.msg.location;
33
+ this.locationInfo = {
34
+ x: loc.x,
35
+ y: loc.y,
36
+ scale: loc.scale,
37
+ label: loc.label,
38
+ poiname: loc.poiname,
39
+ poiid: loc.poiid,
40
+ cityname: loc.cityname,
41
+ adcode: loc.adcode,
42
+ poiCategoryTips: loc.poiCategoryTips,
43
+ poiBusinessHour: loc.poiBusinessHour,
44
+ poiPhone: loc.poiPhone
45
+ };
46
+ }
47
+ }
48
+ catch (error) {
49
+ console.error('解析位置信息失败:', error);
50
+ }
51
+ }
52
+ /**
53
+ * 获取坐标
54
+ */
55
+ getCoordinates() {
56
+ return {
57
+ lat: parseFloat(this.locationInfo.x || '0'),
58
+ lng: parseFloat(this.locationInfo.y || '0')
59
+ };
60
+ }
61
+ /**
62
+ * 获取地图链接
63
+ */
64
+ getMapUrl() {
65
+ const { lat, lng } = this.getCoordinates();
66
+ const name = encodeURIComponent(this.locationInfo.poiname || '位置');
67
+ return `https://uri.amap.com/marker?position=${lng},${lat}&name=${name}`;
68
+ }
69
+ /**
70
+ * 获取消息描述
71
+ */
72
+ getContent() {
73
+ const name = this.locationInfo.poiname || this.locationInfo.label || '位置';
74
+ return `[位置]${name}`;
75
+ }
76
+ /**
77
+ * 获取消息文本
78
+ */
79
+ async getMsgText() {
80
+ return this.getContent();
81
+ }
82
+ }
83
+ exports.LocationMessage = LocationMessage;
84
+ //# sourceMappingURL=LocationMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocationMessage.js","sourceRoot":"","sources":["../../../../src/weChatBase/weChatMessage/types/LocationMessage.ts"],"names":[],"mappings":"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"}