@wxbot/wechat-api-sdk 1.1.0 → 1.1.2
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.
- package/dist/geweChat/gewe/apiCore/geweBaseApi.js +1 -59
- package/dist/geweChat/gewe/clientApi/geweMessage.js +1 -216
- package/dist/geweChat/gewe/clientApi/gewe_Api.js +1 -24
- package/dist/geweChat/gewe/clientApi/gewe_ChatRoom.js +1 -125
- package/dist/geweChat/gewe/clientApi/gewe_Friend.js +1 -110
- package/dist/geweChat/gewe/clientApi/gewe_Login.js +1 -119
- package/dist/geweChat/gewe/clientApi/gewe_Tools.js +1 -45
- package/dist/index.js +1 -38
- package/dist/protocolTypes.js +1 -11
- package/dist/utils/gameCore.js +1 -26
- package/dist/utils/index.js +1 -150
- package/dist/utils/linq.js +1 -24
- package/dist/weChatBase/EventBus.js +1 -32
- package/dist/weChatBase/entity/chatMemberInfo.js +1 -7
- package/dist/weChatBase/entity/simpleSession.js +1 -8
- package/dist/weChatBase/interface/weChatApiBase.js +1 -9
- package/dist/weChatBase/interface/weChatBase.js +1 -12
- package/dist/weChatBase/interface/weChatChatRoomBase.js +1 -9
- package/dist/weChatBase/interface/weChatFriendBase.js +1 -9
- package/dist/weChatBase/interface/weChatLoginBase.js +1 -9
- package/dist/weChatBase/interface/weChatMessageBase.js +1 -15
- package/dist/weChatBase/interface/weChatToolsBase.js +1 -8
- package/dist/weChatBase/request/chatRoom/wxGetChatroomInfoRequest.js +1 -16
- package/dist/weChatBase/request/chatRoom/wxGetChatroomMemberInfoRequest.js +1 -16
- package/dist/weChatBase/request/chatRoom/wxGetChatroomMemberListRequest.js +1 -10
- package/dist/weChatBase/request/chatRoom/wxGetChatroomQRCodeRequest.js +1 -10
- package/dist/weChatBase/request/friend/friendPassVerifyRequest.js +1 -14
- package/dist/weChatBase/request/friend/getContactListRequest.js +1 -20
- package/dist/weChatBase/request/friend/getContactRequest.js +1 -10
- package/dist/weChatBase/request/friend/wxGetContractDetailRequest.js +1 -10
- package/dist/weChatBase/request/friend/wxSearchContactRequest.js +1 -13
- package/dist/weChatBase/request/friend/wxUploadContactRequest.js +1 -7
- package/dist/weChatBase/request/login/wxAutoHeartBeatRequest.js +1 -10
- package/dist/weChatBase/request/login/wxAwakenRequest.js +1 -10
- package/dist/weChatBase/request/login/wxCheckOnlineRequest.js +1 -10
- package/dist/weChatBase/request/login/wxDialogLoginRequest.js +1 -10
- package/dist/weChatBase/request/login/wxGetLoginQrCodeRequest.js +1 -28
- package/dist/weChatBase/request/login/wxGetLoginQrStatus.js +1 -16
- package/dist/weChatBase/request/login/wxGetOnlineStatusRequest.js +1 -10
- package/dist/weChatBase/request/login/wxHeartBeatRequest.js +1 -10
- package/dist/weChatBase/request/login/wxLogOutRequest.js +1 -10
- package/dist/weChatBase/request/login/wxReconnectionRequest.js +1 -10
- package/dist/weChatBase/request/login/wxTwiceAutoAuthRequest.js +1 -10
- package/dist/weChatBase/request/message/syncMessageRequest.js +1 -10
- package/dist/weChatBase/request/message/wxForwardImageRequest.js +1 -10
- package/dist/weChatBase/request/message/wxRevokeMsgRequest.js +1 -10
- package/dist/weChatBase/request/message/wxSendAppRequest.js +1 -10
- package/dist/weChatBase/request/message/wxSendCardRequest.js +1 -10
- package/dist/weChatBase/request/message/wxSendEmojiRequest.js +1 -10
- package/dist/weChatBase/request/message/wxSendFileRequest.js +1 -10
- package/dist/weChatBase/request/message/wxSendImageRequest.js +1 -10
- package/dist/weChatBase/request/message/wxSendLinkRequest.js +1 -10
- package/dist/weChatBase/request/message/wxSendLocationRequest.js +1 -10
- package/dist/weChatBase/request/message/wxSendTxtRequest.js +1 -10
- package/dist/weChatBase/request/message/wxSendVideoRequest.js +1 -10
- package/dist/weChatBase/request/message/wxSendVoiceRequest.js +1 -10
- package/dist/weChatBase/request/tools/wxDownloadImgRequest.js +1 -14
- package/dist/weChatBase/request/tools/wxEmojiDownloadRequest.js +1 -10
- package/dist/weChatBase/request/tools/wxSetWebhookRequest.js +1 -10
- package/dist/weChatBase/request/tools/wxUploadFileRequest.js +1 -10
- package/dist/weChatBase/type/opCode.js +1 -16
- package/dist/weChatBase/type/scene.js +1 -32
- package/dist/weChatBase/weChatAPIClientBase.js +1 -92
- package/dist/weChatBase/weChatMessage/WeChatMessageFactory.js +1 -190
- package/dist/weChatBase/weChatMessage/types/AddFriendMessage.js +1 -92
- package/dist/weChatBase/weChatMessage/types/ChannelsVideoMessage.js +1 -124
- package/dist/weChatBase/weChatMessage/types/ContactMessage.js +1 -81
- package/dist/weChatBase/weChatMessage/types/EmojiMessage.js +1 -74
- package/dist/weChatBase/weChatMessage/types/FileMessage.js +1 -127
- package/dist/weChatBase/weChatMessage/types/GroupInviteMessage.js +1 -104
- package/dist/weChatBase/weChatMessage/types/GroupNoticeMessage.js +1 -76
- package/dist/weChatBase/weChatMessage/types/GroupSystemMessage.js +1 -151
- package/dist/weChatBase/weChatMessage/types/GroupTodoMessage.js +1 -111
- package/dist/weChatBase/weChatMessage/types/ImageMessage.js +1 -93
- package/dist/weChatBase/weChatMessage/types/LinkMessage.js +1 -110
- package/dist/weChatBase/weChatMessage/types/LocationMessage.js +1 -84
- package/dist/weChatBase/weChatMessage/types/MiniProgramMessage.js +1 -91
- package/dist/weChatBase/weChatMessage/types/PatMessage.js +1 -101
- package/dist/weChatBase/weChatMessage/types/RedPacketMessage.js +1 -115
- package/dist/weChatBase/weChatMessage/types/ReferMessage.js +1 -88
- package/dist/weChatBase/weChatMessage/types/RevokeMessage.js +1 -82
- package/dist/weChatBase/weChatMessage/types/TextMessage.js +1 -43
- package/dist/weChatBase/weChatMessage/types/TransferMessage.js +1 -109
- package/dist/weChatBase/weChatMessage/types/VideoMessage.js +1 -76
- package/dist/weChatBase/weChatMessage/types/VoiceMessage.js +1 -73
- package/dist/weChatBase/weChatMessage/types/index.js +1 -44
- package/dist/weChatBase/weChatMessage/weChatMessageType.js +1 -115
- package/dist/weChatBase/weChatMessage/weChatMsgBase.d.ts +1 -0
- package/dist/weChatBase/weChatMessage/weChatMsgBase.d.ts.map +1 -1
- package/dist/weChatBase/weChatMessage/weChatMsgBase.js +1 -238
- package/dist/weChatBase/weChatResult.js +1 -44
- package/dist/wechatApi.js +1 -23
- package/package.json +11 -7
- package/dist/geweChat/gewe/apiCore/geweBaseApi.js.map +0 -1
- package/dist/geweChat/gewe/clientApi/geweMessage.js.map +0 -1
- package/dist/geweChat/gewe/clientApi/gewe_Api.js.map +0 -1
- package/dist/geweChat/gewe/clientApi/gewe_ChatRoom.js.map +0 -1
- package/dist/geweChat/gewe/clientApi/gewe_Friend.js.map +0 -1
- package/dist/geweChat/gewe/clientApi/gewe_Login.js.map +0 -1
- package/dist/geweChat/gewe/clientApi/gewe_Tools.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/protocolTypes.js.map +0 -1
- package/dist/utils/gameCore.js.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/linq.js.map +0 -1
- package/dist/weChatBase/EventBus.js.map +0 -1
- package/dist/weChatBase/entity/chatMemberInfo.js.map +0 -1
- package/dist/weChatBase/entity/simpleSession.js.map +0 -1
- package/dist/weChatBase/interface/weChatApiBase.js.map +0 -1
- package/dist/weChatBase/interface/weChatBase.js.map +0 -1
- package/dist/weChatBase/interface/weChatChatRoomBase.js.map +0 -1
- package/dist/weChatBase/interface/weChatFriendBase.js.map +0 -1
- package/dist/weChatBase/interface/weChatLoginBase.js.map +0 -1
- package/dist/weChatBase/interface/weChatMessageBase.js.map +0 -1
- package/dist/weChatBase/interface/weChatToolsBase.js.map +0 -1
- package/dist/weChatBase/request/chatRoom/wxGetChatroomInfoRequest.js.map +0 -1
- package/dist/weChatBase/request/chatRoom/wxGetChatroomMemberInfoRequest.js.map +0 -1
- package/dist/weChatBase/request/chatRoom/wxGetChatroomMemberListRequest.js.map +0 -1
- package/dist/weChatBase/request/chatRoom/wxGetChatroomQRCodeRequest.js.map +0 -1
- package/dist/weChatBase/request/friend/friendPassVerifyRequest.js.map +0 -1
- package/dist/weChatBase/request/friend/getContactListRequest.js.map +0 -1
- package/dist/weChatBase/request/friend/getContactRequest.js.map +0 -1
- package/dist/weChatBase/request/friend/wxGetContractDetailRequest.js.map +0 -1
- package/dist/weChatBase/request/friend/wxSearchContactRequest.js.map +0 -1
- package/dist/weChatBase/request/friend/wxUploadContactRequest.js.map +0 -1
- package/dist/weChatBase/request/login/wxAutoHeartBeatRequest.js.map +0 -1
- package/dist/weChatBase/request/login/wxAwakenRequest.js.map +0 -1
- package/dist/weChatBase/request/login/wxCheckOnlineRequest.js.map +0 -1
- package/dist/weChatBase/request/login/wxDialogLoginRequest.js.map +0 -1
- package/dist/weChatBase/request/login/wxGetLoginQrCodeRequest.js.map +0 -1
- package/dist/weChatBase/request/login/wxGetLoginQrStatus.js.map +0 -1
- package/dist/weChatBase/request/login/wxGetOnlineStatusRequest.js.map +0 -1
- package/dist/weChatBase/request/login/wxHeartBeatRequest.js.map +0 -1
- package/dist/weChatBase/request/login/wxLogOutRequest.js.map +0 -1
- package/dist/weChatBase/request/login/wxReconnectionRequest.js.map +0 -1
- package/dist/weChatBase/request/login/wxTwiceAutoAuthRequest.js.map +0 -1
- package/dist/weChatBase/request/message/syncMessageRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxForwardImageRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxRevokeMsgRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxSendAppRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxSendCardRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxSendEmojiRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxSendFileRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxSendImageRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxSendLinkRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxSendLocationRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxSendTxtRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxSendVideoRequest.js.map +0 -1
- package/dist/weChatBase/request/message/wxSendVoiceRequest.js.map +0 -1
- package/dist/weChatBase/request/tools/wxDownloadImgRequest.js.map +0 -1
- package/dist/weChatBase/request/tools/wxEmojiDownloadRequest.js.map +0 -1
- package/dist/weChatBase/request/tools/wxSetWebhookRequest.js.map +0 -1
- package/dist/weChatBase/request/tools/wxUploadFileRequest.js.map +0 -1
- package/dist/weChatBase/type/opCode.js.map +0 -1
- package/dist/weChatBase/type/scene.js.map +0 -1
- package/dist/weChatBase/utils/xmlParser.d.ts +0 -11
- package/dist/weChatBase/utils/xmlParser.d.ts.map +0 -1
- package/dist/weChatBase/utils/xmlParser.js +0 -106
- package/dist/weChatBase/utils/xmlParser.js.map +0 -1
- package/dist/weChatBase/weChatAPIClientBase.js.map +0 -1
- package/dist/weChatBase/weChatMessage/WeChatMessageFactory.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/AddFriendMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/ChannelsVideoMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/ContactMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/EmojiMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/FileMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/GroupInviteMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/GroupNoticeMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/GroupSystemMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/GroupTodoMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/ImageMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/LinkMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/LocationMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/MiniProgramMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/PatMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/RedPacketMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/ReferMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/RevokeMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/TextMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/TransferMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/VideoMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/VoiceMessage.js.map +0 -1
- package/dist/weChatBase/weChatMessage/types/index.js.map +0 -1
- package/dist/weChatBase/weChatMessage/weChatMessageType.js.map +0 -1
- package/dist/weChatBase/weChatMessage/weChatMsgBase.js.map +0 -1
- package/dist/weChatBase/weChatResult.js.map +0 -1
- package/dist/wechatApi.js.map +0 -1
|
@@ -1,92 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AddFriendMessage = void 0;
|
|
4
|
-
const weChatMsgBase_1 = require("../weChatMsgBase");
|
|
5
|
-
const weChatMessageType_1 = require("../weChatMessageType");
|
|
6
|
-
const utils_1 = require("../../../utils");
|
|
7
|
-
/**
|
|
8
|
-
* 好友添加请求通知消息类
|
|
9
|
-
* MsgType = 37
|
|
10
|
-
*
|
|
11
|
-
* 示例数据:
|
|
12
|
-
* {
|
|
13
|
-
* "MsgType": 37,
|
|
14
|
-
* "FromUserName": { "string": "fmessage" },
|
|
15
|
-
* "Content": { "string": "<msg fromusername=...>" }
|
|
16
|
-
* }
|
|
17
|
-
*/
|
|
18
|
-
class AddFriendMessage extends weChatMsgBase_1.WeChatMsg {
|
|
19
|
-
constructor(data) {
|
|
20
|
-
super(data.Appid, data.api, data.Wxid, weChatMessageType_1.WeChatMessageType.AddFriend, 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.friendRequestInfo = {};
|
|
23
|
-
// 解析好友请求信息
|
|
24
|
-
this.parseFriendRequestInfo();
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* 解析好友请求信息
|
|
28
|
-
*/
|
|
29
|
-
parseFriendRequestInfo() {
|
|
30
|
-
try {
|
|
31
|
-
const xmlObj = (0, utils_1.getXml2Json)(this.Content);
|
|
32
|
-
if (xmlObj?.msg) {
|
|
33
|
-
const msg = xmlObj.msg;
|
|
34
|
-
this.friendRequestInfo = {
|
|
35
|
-
fromusername: msg.fromusername,
|
|
36
|
-
encryptusername: msg.encryptusername,
|
|
37
|
-
fromnickname: msg.fromnickname,
|
|
38
|
-
content: msg.content,
|
|
39
|
-
scene: msg.scene,
|
|
40
|
-
fullpy: msg.fullpy,
|
|
41
|
-
shortpy: msg.shortpy,
|
|
42
|
-
sex: msg.sex,
|
|
43
|
-
province: msg.province,
|
|
44
|
-
city: msg.city,
|
|
45
|
-
sign: msg.sign,
|
|
46
|
-
bigheadimgurl: msg.bigheadimgurl,
|
|
47
|
-
smallheadimgurl: msg.smallheadimgurl,
|
|
48
|
-
ticket: msg.ticket
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
console.error('解析好友请求信息失败:', error);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* 获取场景描述
|
|
58
|
-
*/
|
|
59
|
-
getSceneText() {
|
|
60
|
-
const sceneMap = {
|
|
61
|
-
'1': '搜索微信号',
|
|
62
|
-
'2': '查看QQ好友',
|
|
63
|
-
'3': '摇一摇',
|
|
64
|
-
'6': '通讯录',
|
|
65
|
-
'10': '面对面建群',
|
|
66
|
-
'12': '来自QQ好友',
|
|
67
|
-
'14': '通过群聊',
|
|
68
|
-
'15': '手机通讯录',
|
|
69
|
-
'17': '名片分享',
|
|
70
|
-
'18': '附近的人',
|
|
71
|
-
'25': '漂流瓶',
|
|
72
|
-
'29': '通过群聊二维码'
|
|
73
|
-
};
|
|
74
|
-
return sceneMap[this.friendRequestInfo.scene || ''] || '未知来源';
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* 获取消息描述
|
|
78
|
-
*/
|
|
79
|
-
getContent() {
|
|
80
|
-
const nickname = this.friendRequestInfo.fromnickname || '用户';
|
|
81
|
-
const content = this.friendRequestInfo.content || '';
|
|
82
|
-
return `[好友请求]${nickname}:${content}`;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* 获取消息文本
|
|
86
|
-
*/
|
|
87
|
-
async getMsgText() {
|
|
88
|
-
return this.getContent();
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
exports.AddFriendMessage = AddFriendMessage;
|
|
92
|
-
//# sourceMappingURL=AddFriendMessage.js.map
|
|
1
|
+
'use strict';const _0x1488db=_0x19fa;(function(_0x1a380c,_0x183086){const _0x4abdb6=_0x19fa,_0x384a3c=_0x1a380c();while(!![]){try{const _0x6a25ee=-parseInt(_0x4abdb6(0x147))/0x1*(-parseInt(_0x4abdb6(0x12a))/0x2)+-parseInt(_0x4abdb6(0x124))/0x3+-parseInt(_0x4abdb6(0x156))/0x4+-parseInt(_0x4abdb6(0x13a))/0x5+-parseInt(_0x4abdb6(0x14a))/0x6+parseInt(_0x4abdb6(0x128))/0x7*(parseInt(_0x4abdb6(0x134))/0x8)+-parseInt(_0x4abdb6(0x144))/0x9*(-parseInt(_0x4abdb6(0x14b))/0xa);if(_0x6a25ee===_0x183086)break;else _0x384a3c['push'](_0x384a3c['shift']());}catch(_0x185baf){_0x384a3c['push'](_0x384a3c['shift']());}}}(_0x4409,0xe3803));Object[_0x1488db(0x13c)](exports,_0x1488db(0x146),{'value':!![]}),exports['AddFriendMessage']=void 0x0;function _0x4409(){const _0x11f2e8=['C2nLBMu','mJaZBeL2rgrn','qxbWAwq','ndzkD0TQtuu','qwrKrNjPzw5K','6kEJ5P6q5Aw95y+l6k+35Rgc5l+H5OgV5AsX6lsLoG','5RYc5Rwb55o2','z2v0u2nLBMvuzxH0','z2v0txnNvgv4Da','zNjPzw5KuMvXDwvZDeLUzM8','6ycA6l+h576K6igk','5OMl5PY66ycA6k6V5B2v','yMLNAgvHzgLTz3vYBa','nda3mdK2ENDMALPS','rNjVBvvZzxjoyw1L','zNvSBhb5','C21HBgXOzwfKAw1NDxjS','5Pgh5lIa5Pgh','6z2I5A+56z2I5BU6576K','oda3nteYmeL6zMHKAq','uhvZAenVBNrLBNq','zgvMAw5LuhjVCgvYDhK','v3HPza','zw5JCNLWDhvZzxjUyw1L','5P2L6iEQuvhLPB3LJ4S','zNjVBxvZzxjUyw1L','vg9vC2vYtMfTzq','BxnN','txnNswq','mtiZmJaWmufsthjdqG','6ycA6k6V5B2v','x19LC01VzhvSzq','mJC3nZn2t1vwDeG','5PYQ55+L5P2L5RQq','z2v0q29UDgvUDa','ndi0nZi1nMvzC09KuW','mJeWzgDoqxHA','6zMe6l+r55Qe5lQ6','z2v0wg1SmKPZB24','6ycA6l+h576K6igk5lQm57U056cb','qwrKrNjPzw5KtwvZC2fNzq','w+wLVEwpI+IVT+AXGL0','C2HVCNrWEq','C3rYAw5N','zNjVBw5Py2TUyw1L','zxjYB3i','lI4VD2vdAgf0txnNqMfZzq','mta2otyWohDnqvztrq','lI4VD2vdAgf0twvZC2fNzvr5Cgu','lI4VlI4VlI4VDxrPBhm','q3jLyxrLvgLTzq','5PcC57sI5B6U5l+H5y+3','C2v4','y29UDgvUDa','v2vdAgf0twvZC2fNzvr5Cgu','DgLJA2v0','ndqWmta3ohnRr0DKsq','rgf0yq','CgfYC2vgCMLLBMrszxf1zxn0sw5MBW'];_0x4409=function(){return _0x11f2e8;};return _0x4409();}const weChatMsgBase_1=require(_0x1488db(0x155)),weChatMessageType_1=require(_0x1488db(0x157)),utils_1=require(_0x1488db(0x158));class AddFriendMessage extends weChatMsgBase_1['WeChatMsg']{constructor(_0x5317ee){const _0x180bb0=_0x1488db;super(_0x5317ee[_0x180bb0(0x129)],_0x5317ee['api'],_0x5317ee[_0x180bb0(0x13d)],weChatMessageType_1[_0x180bb0(0x15d)][_0x180bb0(0x12b)],_0x5317ee['Data'][_0x180bb0(0x143)],_0x5317ee[_0x180bb0(0x125)]['NewMsgId'],_0x5317ee['Data'][_0x180bb0(0x159)],_0x5317ee[_0x180bb0(0x125)][_0x180bb0(0x135)]?.[_0x180bb0(0x152)]||_0x5317ee[_0x180bb0(0x125)][_0x180bb0(0x135)],_0x5317ee['Data']['ToUserName']?.[_0x180bb0(0x152)]||_0x5317ee[_0x180bb0(0x125)][_0x180bb0(0x141)],_0x5317ee[_0x180bb0(0x125)]['MsgSource'],_0x5317ee[_0x180bb0(0x125)]['Content']?.['string']||_0x5317ee[_0x180bb0(0x125)]['Content'],_0x5317ee[_0x180bb0(0x125)]['PushContent']?.[_0x180bb0(0x152)]||_0x5317ee['Data'][_0x180bb0(0x13b)]||''),this[_0x180bb0(0x130)]={},this['parseFriendRequestInfo']();}[_0x1488db(0x126)](){const _0x276c0b=_0x1488db;try{const _0x295275=(0x0,utils_1[_0x276c0b(0x14d)])(this['Content']);if(_0x295275?.[_0x276c0b(0x142)]){const _0x1086d5=_0x295275['msg'];this[_0x276c0b(0x130)]={'fromusername':_0x1086d5[_0x276c0b(0x140)],'encryptusername':_0x1086d5[_0x276c0b(0x13e)],'fromnickname':_0x1086d5[_0x276c0b(0x153)],'content':_0x1086d5[_0x276c0b(0x15c)],'scene':_0x1086d5[_0x276c0b(0x127)],'fullpy':_0x1086d5[_0x276c0b(0x136)],'shortpy':_0x1086d5[_0x276c0b(0x151)],'sex':_0x1086d5[_0x276c0b(0x15b)],'province':_0x1086d5['province'],'city':_0x1086d5['city'],'sign':_0x1086d5['sign'],'bigheadimgurl':_0x1086d5[_0x276c0b(0x133)],'smallheadimgurl':_0x1086d5[_0x276c0b(0x137)],'ticket':_0x1086d5[_0x276c0b(0x123)]};}}catch(_0x120860){console[_0x276c0b(0x154)](_0x276c0b(0x12c),_0x120860);}}[_0x1488db(0x12e)](){const _0xd39e38=_0x1488db,_0x1f63d0={'1':_0xd39e38(0x15a),'2':'查看QQ好友','3':_0xd39e38(0x138),'6':_0xd39e38(0x145),'10':_0xd39e38(0x139),'12':_0xd39e38(0x13f),'14':_0xd39e38(0x131),'15':_0xd39e38(0x132),'17':'名片分享','18':_0xd39e38(0x14c),'25':_0xd39e38(0x12d),'29':_0xd39e38(0x14e)};return _0x1f63d0[this[_0xd39e38(0x130)][_0xd39e38(0x127)]||'']||_0xd39e38(0x148);}[_0x1488db(0x149)](){const _0x37d4fc=_0x1488db,_0x204ebb=this[_0x37d4fc(0x130)][_0x37d4fc(0x153)]||'用户',_0x571e45=this[_0x37d4fc(0x130)][_0x37d4fc(0x15c)]||'';return _0x37d4fc(0x150)+_0x204ebb+':'+_0x571e45;}async[_0x1488db(0x12f)](){return this['getContent']();}}function _0x19fa(_0x25b389,_0x45afc4){_0x25b389=_0x25b389-0x123;const _0x440939=_0x4409();let _0x19faa1=_0x440939[_0x25b389];if(_0x19fa['uZxLBo']===undefined){var _0x2873fb=function(_0x2adaad){const _0x2b2eea='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5317ee='',_0x295275='';for(let _0x1086d5=0x0,_0x120860,_0x1f63d0,_0x204ebb=0x0;_0x1f63d0=_0x2adaad['charAt'](_0x204ebb++);~_0x1f63d0&&(_0x120860=_0x1086d5%0x4?_0x120860*0x40+_0x1f63d0:_0x1f63d0,_0x1086d5++%0x4)?_0x5317ee+=String['fromCharCode'](0xff&_0x120860>>(-0x2*_0x1086d5&0x6)):0x0){_0x1f63d0=_0x2b2eea['indexOf'](_0x1f63d0);}for(let _0x571e45=0x0,_0x58255d=_0x5317ee['length'];_0x571e45<_0x58255d;_0x571e45++){_0x295275+='%'+('00'+_0x5317ee['charCodeAt'](_0x571e45)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x295275);};_0x19fa['IENMuV']=_0x2873fb,_0x19fa['QhXdop']={},_0x19fa['uZxLBo']=!![];}const _0x322d65=_0x440939[0x0],_0x325adb=_0x25b389+_0x322d65,_0x5385f7=_0x19fa['QhXdop'][_0x325adb];return!_0x5385f7?(_0x19faa1=_0x19fa['IENMuV'](_0x19faa1),_0x19fa['QhXdop'][_0x325adb]=_0x19faa1):_0x19faa1=_0x5385f7,_0x19faa1;}exports[_0x1488db(0x14f)]=AddFriendMessage;
|
|
@@ -1,124 +1 @@
|
|
|
1
|
-
|
|
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, data.Data.PushContent?.string || data.Data.PushContent || '');
|
|
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
|
|
1
|
+
'use strict';const _0x2870be=_0x2c58;(function(_0x339ca0,_0x4adfc6){const _0x326de3=_0x2c58,_0x32395f=_0x339ca0();while(!![]){try{const _0x2f68bc=-parseInt(_0x326de3(0x9b))/0x1*(parseInt(_0x326de3(0x87))/0x2)+parseInt(_0x326de3(0x97))/0x3+-parseInt(_0x326de3(0x7d))/0x4*(-parseInt(_0x326de3(0xa0))/0x5)+-parseInt(_0x326de3(0xa4))/0x6*(parseInt(_0x326de3(0x80))/0x7)+parseInt(_0x326de3(0x92))/0x8+-parseInt(_0x326de3(0x77))/0x9+-parseInt(_0x326de3(0x74))/0xa;if(_0x2f68bc===_0x4adfc6)break;else _0x32395f['push'](_0x32395f['shift']());}catch(_0x40619a){_0x32395f['push'](_0x32395f['shift']());}}}(_0x4c47,0xe65d9));function _0x4c47(){const _0x309c3d=['BwfW','mtyXuhfrsvnc','DxjS','C3vIC3rYAw5N','uhvZAenVBNrLBNq','zMLUzgvYrMvLza','yxbP','BwvKAwe','mMLKtuLLtW','qxbWtwvZC2fNzvn1yLr5Cgu','rNjVBvvZzxjoyw1L','z2v0rgvZy3jPChrPB24','yxzHDgfY','C3rYAw5N','yxbWBxnN','BxnN','BwvKAwfmAxn0','z2v0vMLKzw9eDxjHDgLVBG','6kEJ5P6q6kEg6Akr5y+35l+H5OgV5AsX6lsLoG','nde4otyWs09bu3zj','6kEg6Akr5y+3','zgvMAw5LuhjVCgvYDhK','vg9vC2vYtMfTzq','q3jLyxrLvgLTzq','mZeWmJm4mxftqw1LAa','qxbWtwvZC2fNzq','BwvKAwfuExbL','zNvSBenVDMvYvxjS','mZC1mtrps3nPEhO','B2jQzwn0swq','yxbWtxnNvhLWzq','zMvLzfr5Cgu','zgvZyW','ndq2nduWnxvuEwTSCq','z2v0txnNvgv4Da','z2v0wg1SmKPZB24','lI4VlI4VlI4VDxrPBhm','mte5mZq2zuXHuKjm','tMv3txnNswq','lI4U','z2v0qxv0Ag9YtMLJA25HBwu','AxnbCNjHEq','6kEg6Akr5y+35l2C6icf','q29UDgvUDa','BMLJA25HBwu','v2vdAgf0txnN','z2v0q29UDgvUDa','CgfYC2vdAgfUBMvSC0LUzM8','y292zxjvCMW','DxnLCM5HBwu','BgvUz3rO','BwvKAwfdB3vUDa','y2HHBM5LBhnjBMzV','mtaZnJi1mg5ZueXNva','x19LC01VzhvSzq','rgf0yq','mte5nZa4mtbiq2LlsNC','zxjYB3i','DgL0Bgu','qxbWAwq','q2HHBM5LBhnwAwrLB01LC3nHz2u','AxnmAxzL','ohDhzgHIuW','D2LKDgG'];_0x4c47=function(){return _0x309c3d;};return _0x4c47();}Object[_0x2870be(0x94)](exports,_0x2870be(0x75),{'value':!![]}),exports[_0x2870be(0x7b)]=void 0x0;const weChatMsgBase_1=require('../weChatMsgBase'),weChatMessageType_1=require('../weChatMessageType'),utils_1=require(_0x2870be(0xa3));function _0x2c58(_0x2e662b,_0x16e3da){_0x2e662b=_0x2e662b-0x72;const _0x4c4721=_0x4c47();let _0x2c589b=_0x4c4721[_0x2e662b];if(_0x2c58['OKZMmg']===undefined){var _0x3889d0=function(_0x3af25b){const _0x5bdb0f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x54233d='',_0xf4d609='';for(let _0x11a939=0x0,_0x3b75e7,_0x390bbf,_0x483bba=0x0;_0x390bbf=_0x3af25b['charAt'](_0x483bba++);~_0x390bbf&&(_0x3b75e7=_0x11a939%0x4?_0x3b75e7*0x40+_0x390bbf:_0x390bbf,_0x11a939++%0x4)?_0x54233d+=String['fromCharCode'](0xff&_0x3b75e7>>(-0x2*_0x11a939&0x6)):0x0){_0x390bbf=_0x5bdb0f['indexOf'](_0x390bbf);}for(let _0x33bb78=0x0,_0x1d815c=_0x54233d['length'];_0x33bb78<_0x1d815c;_0x33bb78++){_0xf4d609+='%'+('00'+_0x54233d['charCodeAt'](_0x33bb78)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xf4d609);};_0x2c58['FQduiA']=_0x3889d0,_0x2c58['bdjvaj']={},_0x2c58['OKZMmg']=!![];}const _0x1ee920=_0x4c4721[0x0],_0x2a06eb=_0x2e662b+_0x1ee920,_0x1ba6d3=_0x2c58['bdjvaj'][_0x2a06eb];return!_0x1ba6d3?(_0x2c589b=_0x2c58['FQduiA'](_0x2c589b),_0x2c58['bdjvaj'][_0x2a06eb]=_0x2c589b):_0x2c589b=_0x1ba6d3,_0x2c589b;}class ChannelsVideoMessage extends weChatMsgBase_1[_0x2870be(0xac)]{constructor(_0x54233d){const _0x30dc73=_0x2870be;super(_0x54233d[_0x30dc73(0x7a)],_0x54233d[_0x30dc73(0x85)],_0x54233d['Wxid'],weChatMessageType_1['WeChatMessageType'][_0x30dc73(0x98)],_0x54233d[_0x30dc73(0x76)]['MsgId'],_0x54233d['Data'][_0x30dc73(0xa5)],_0x54233d[_0x30dc73(0x76)][_0x30dc73(0x96)],_0x54233d['Data'][_0x30dc73(0x89)]?.['string']||_0x54233d[_0x30dc73(0x76)][_0x30dc73(0x89)],_0x54233d[_0x30dc73(0x76)][_0x30dc73(0x95)]?.[_0x30dc73(0x8c)]||_0x54233d[_0x30dc73(0x76)][_0x30dc73(0x95)],_0x54233d[_0x30dc73(0x76)]['MsgSource'],_0x54233d['Data'][_0x30dc73(0xaa)]?.['string']||_0x54233d['Data'][_0x30dc73(0xaa)],_0x54233d['Data'][_0x30dc73(0x83)]?.['string']||_0x54233d[_0x30dc73(0x76)][_0x30dc73(0x83)]||''),this[_0x30dc73(0x73)]={},this[_0x30dc73(0x9d)]=weChatMessageType_1[_0x30dc73(0x88)]['ChannelsVideo'],this[_0x30dc73(0xae)]();}[_0x2870be(0xae)](){const _0x55fa6e=_0x2870be;try{const _0xf4d609=(0x0,utils_1[_0x55fa6e(0xa2)])(this[_0x55fa6e(0xaa)]);if(_0xf4d609?.[_0x55fa6e(0x8e)]?.[_0x55fa6e(0x8d)]){const _0x11a939=_0xf4d609[_0x55fa6e(0x8e)]['appmsg'];this['channelsInfo']={'title':_0x11a939[_0x55fa6e(0x79)],'url':_0x11a939[_0x55fa6e(0x81)]};if(_0x11a939[_0x55fa6e(0x84)]){const _0x3b75e7=_0x11a939[_0x55fa6e(0x84)];this[_0x55fa6e(0x73)][_0x55fa6e(0x84)]={'objectId':_0x3b75e7[_0x55fa6e(0x9c)],'feedType':parseInt(_0x3b75e7['feedType'])||0x0,'nickname':_0x3b75e7[_0x55fa6e(0xab)],'avatar':_0x3b75e7[_0x55fa6e(0x8b)],'desc':_0x3b75e7[_0x55fa6e(0x9f)],'mediaCount':parseInt(_0x3b75e7[_0x55fa6e(0x72)])||0x0,'objectNonceId':_0x3b75e7['objectNonceId'],'liveId':_0x3b75e7['liveId'],'username':_0x3b75e7[_0x55fa6e(0xb0)]};if(_0x3b75e7[_0x55fa6e(0x8f)]?.['media']){const _0x390bbf=Array[_0x55fa6e(0xa8)](_0x3b75e7['mediaList'][_0x55fa6e(0x86)])?_0x3b75e7[_0x55fa6e(0x8f)][_0x55fa6e(0x86)]:[_0x3b75e7[_0x55fa6e(0x8f)]['media']];this[_0x55fa6e(0x73)][_0x55fa6e(0x84)]['mediaList']=_0x390bbf[_0x55fa6e(0x7f)](_0x483bba=>({'mediaType':parseInt(_0x483bba[_0x55fa6e(0x99)])||0x0,'url':_0x483bba[_0x55fa6e(0x81)],'thumbUrl':_0x483bba['thumbUrl'],'width':parseInt(_0x483bba[_0x55fa6e(0x7e)])||0x0,'height':parseInt(_0x483bba['height'])||0x0,'coverUrl':_0x483bba[_0x55fa6e(0xaf)],'fullCoverUrl':_0x483bba[_0x55fa6e(0x9a)],'videoPlayDuration':parseInt(_0x483bba['videoPlayDuration'])||0x0}));}}}}catch(_0x33bb78){console[_0x55fa6e(0x78)](_0x55fa6e(0x91),_0x33bb78);}}[_0x2870be(0xa7)](){const _0x1ad207=_0x2870be;return this[_0x1ad207(0x73)][_0x1ad207(0x84)]?.[_0x1ad207(0xab)]||_0x1ad207(0xa9);}[_0x2870be(0x8a)](){const _0x49478b=_0x2870be;return this['channelsInfo'][_0x49478b(0x84)]?.[_0x49478b(0x9f)]||'';}[_0x2870be(0x90)](){const _0x5ca212=_0x2870be,_0x1d815c=this[_0x5ca212(0x73)][_0x5ca212(0x84)]?.[_0x5ca212(0x8f)];if(_0x1d815c&&_0x1d815c[_0x5ca212(0xb1)]>0x0)return _0x1d815c[0x0]['videoPlayDuration']||0x0;return 0x0;}[_0x2870be(0x7c)](){const _0x23237a=_0x2870be,_0x1b0052=this[_0x23237a(0x73)][_0x23237a(0x84)]?.[_0x23237a(0x9e)]||0x0;return _0x1b0052===0x1;}['getContent'](){const _0x1a030e=_0x2870be,_0x150380=this[_0x1a030e(0xa7)](),_0x6ad37c=this[_0x1a030e(0x8a)](),_0x3bfe37=this['isLive']()?'视频号直播':_0x1a030e(0x93);return'['+_0x3bfe37+']'+_0x150380+(_0x6ad37c?':\x20'+_0x6ad37c[_0x1a030e(0x82)](0x0,0x14)+_0x1a030e(0xa6):'');}async[_0x2870be(0xa1)](){const _0xfadee6=_0x2870be;return this[_0xfadee6(0xad)]();}}exports['ChannelsVideoMessage']=ChannelsVideoMessage;
|
|
@@ -1,81 +1 @@
|
|
|
1
|
-
|
|
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, data.Data.PushContent?.string || data.Data.PushContent || '');
|
|
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
|
|
1
|
+
'use strict';function _0x1d99(){const _0x160534=['C3rYAw5N','zgvMAw5LuhjVCgvYDhK','vg9vC2vYtMfTzq','q29UDgfJDe1LC3nHz2u','6kEJ5P6q5zcn54Mh5l+H5OgV5AsX6lsLoG','rgf0yq','q29UDgvUDa','y2fYzeLUzM8','yw50AxnWyw10AwnRzxq','zNvSBhb5','zxjYB3i','CgfYC2vdB250ywn0sw5MBW','z2v0wg1SmKPZB24','mZG0odDXsK1Jt3q','y2L0Eq','txnNswq','mtC2mtm5nMPpsKXrta','z2v0q29UDgvUDa','tMv3txnNswq','BxnN','nJm4mJu2nMHWyuTWzq','v3HPza','ywXPyxm','mJy2nJa4sNnmzNbs','rNjVBvvZzxjoyw1L','mtbJDvP1uha','q3jLyxrLvgLTzq','C2HVCNrWEq','z2v0txnNvgv4Da','mte4mtqXmwXct0PSrW','ChjVDMLUy2u','ndjIquPKzvq','mJy5nta4nwfntw1Pua','qxbWAwq','lI4VlI4VlI4VDxrPBhm','mtqXmtqZmLzNyNnlCa','C2v4','txnNu291CMnL','uhvZAenVBNrLBNq','z2v0u2v4vgv4Da','lI4VD2vdAgf0twvZC2fNzvr5Cgu','BMLJA25HBwu','mtHouhfju0G','v2vdAgf0txnN','v2vdAgf0twvZC2fNzvr5Cgu'];_0x1d99=function(){return _0x160534;};return _0x1d99();}const _0x1beda8=_0x3d40;(function(_0x37eedf,_0x2acbf5){const _0x3037a4=_0x3d40,_0x9b7ecd=_0x37eedf();while(!![]){try{const _0x254644=-parseInt(_0x3037a4(0x7b))/0x1+parseInt(_0x3037a4(0x83))/0x2*(parseInt(_0x3037a4(0x9e))/0x3)+parseInt(_0x3037a4(0xa1))/0x4+-parseInt(_0x3037a4(0x84))/0x5+parseInt(_0x3037a4(0x8e))/0x6*(-parseInt(_0x3037a4(0x81))/0x7)+parseInt(_0x3037a4(0x87))/0x8+-parseInt(_0x3037a4(0x78))/0x9*(-parseInt(_0x3037a4(0x7d))/0xa);if(_0x254644===_0x2acbf5)break;else _0x9b7ecd['push'](_0x9b7ecd['shift']());}catch(_0x2b815e){_0x9b7ecd['push'](_0x9b7ecd['shift']());}}}(_0x1d99,0x45319));Object[_0x1beda8(0x92)](exports,'__esModule',{'value':!![]}),exports[_0x1beda8(0x94)]=void 0x0;const weChatMsgBase_1=require('../weChatMsgBase'),weChatMessageType_1=require(_0x1beda8(0x8c)),utils_1=require(_0x1beda8(0x86));class ContactMessage extends weChatMsgBase_1[_0x1beda8(0x8f)]{constructor(_0x1b00de){const _0x299130=_0x1beda8;super(_0x1b00de[_0x299130(0x85)],_0x1b00de['api'],_0x1b00de[_0x299130(0x79)],weChatMessageType_1[_0x299130(0x90)]['Contact'],_0x1b00de[_0x299130(0x96)][_0x299130(0xa0)],_0x1b00de['Data'][_0x299130(0xa3)],_0x1b00de[_0x299130(0x96)][_0x299130(0x7e)],_0x1b00de[_0x299130(0x96)]['FromUserName']?.[_0x299130(0x91)]||_0x1b00de[_0x299130(0x96)][_0x299130(0x7c)],_0x1b00de[_0x299130(0x96)][_0x299130(0x93)]?.[_0x299130(0x91)]||_0x1b00de[_0x299130(0x96)][_0x299130(0x93)],_0x1b00de[_0x299130(0x96)][_0x299130(0x89)],_0x1b00de['Data'][_0x299130(0x97)]?.[_0x299130(0x91)]||_0x1b00de[_0x299130(0x96)][_0x299130(0x97)],_0x1b00de['Data'][_0x299130(0x8a)]?.['string']||_0x1b00de[_0x299130(0x96)][_0x299130(0x8a)]||''),this['cardInfo']={},this['parseContactInfo']();}[_0x1beda8(0x9c)](){const _0x5188b5=_0x1beda8;try{const _0x2ef375=(0x0,utils_1[_0x5188b5(0x9d)])(this[_0x5188b5(0x97)]);if(_0x2ef375?.[_0x5188b5(0xa4)]){const _0x19121=_0x2ef375['msg'];this[_0x5188b5(0x98)]={'username':_0x19121['username'],'nickname':_0x19121[_0x5188b5(0x8d)],'fullpy':_0x19121[_0x5188b5(0x9a)],'shortpy':_0x19121[_0x5188b5(0x7f)],'alias':_0x19121[_0x5188b5(0x7a)],'sex':parseInt(_0x19121[_0x5188b5(0x88)])||0x0,'province':_0x19121[_0x5188b5(0x82)],'city':_0x19121[_0x5188b5(0x9f)],'sign':_0x19121['sign'],'bigheadimgurl':_0x19121['bigheadimgurl'],'smallheadimgurl':_0x19121['smallheadimgurl'],'antispamticket':_0x19121[_0x5188b5(0x99)]};}}catch(_0x499d1){console[_0x5188b5(0x9b)](_0x5188b5(0x95),_0x499d1);}}[_0x1beda8(0x8b)](){const _0x3d477d=_0x1beda8;switch(this[_0x3d477d(0x98)]['sex']){case 0x1:return'男';case 0x2:return'女';default:return'未知';}}[_0x1beda8(0xa2)](){const _0x270052=_0x1beda8,_0x1b8f98=this[_0x270052(0x98)][_0x270052(0x8d)]||'未知';return'[名片]'+_0x1b8f98;}async[_0x1beda8(0x80)](){return this['getContent']();}}function _0x3d40(_0x1fc5aa,_0x3d718d){_0x1fc5aa=_0x1fc5aa-0x78;const _0x1d99ea=_0x1d99();let _0x3d407d=_0x1d99ea[_0x1fc5aa];if(_0x3d40['RIWhZK']===undefined){var _0x48e4fa=function(_0x2d9eb9){const _0x2c2373='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b00de='',_0x2ef375='';for(let _0x19121=0x0,_0x499d1,_0x1b8f98,_0x137177=0x0;_0x1b8f98=_0x2d9eb9['charAt'](_0x137177++);~_0x1b8f98&&(_0x499d1=_0x19121%0x4?_0x499d1*0x40+_0x1b8f98:_0x1b8f98,_0x19121++%0x4)?_0x1b00de+=String['fromCharCode'](0xff&_0x499d1>>(-0x2*_0x19121&0x6)):0x0){_0x1b8f98=_0x2c2373['indexOf'](_0x1b8f98);}for(let _0x19434e=0x0,_0x465986=_0x1b00de['length'];_0x19434e<_0x465986;_0x19434e++){_0x2ef375+='%'+('00'+_0x1b00de['charCodeAt'](_0x19434e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2ef375);};_0x3d40['xonlOP']=_0x48e4fa,_0x3d40['EYGIHk']={},_0x3d40['RIWhZK']=!![];}const _0x98d616=_0x1d99ea[0x0],_0x2da458=_0x1fc5aa+_0x98d616,_0x21095f=_0x3d40['EYGIHk'][_0x2da458];return!_0x21095f?(_0x3d407d=_0x3d40['xonlOP'](_0x3d407d),_0x3d40['EYGIHk'][_0x2da458]=_0x3d407d):_0x3d407d=_0x21095f,_0x3d407d;}exports['ContactMessage']=ContactMessage;
|
|
@@ -1,74 +1 @@
|
|
|
1
|
-
|
|
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, data.Data.PushContent?.string || data.Data.PushContent || '');
|
|
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
|
|
1
|
+
'use strict';const _0x1fd981=_0x5a28;(function(_0x127dd5,_0x90c9b9){const _0x5dfd7d=_0x5a28,_0x5c64ab=_0x127dd5();while(!![]){try{const _0x2900d7=-parseInt(_0x5dfd7d(0xb5))/0x1+-parseInt(_0x5dfd7d(0x9b))/0x2+parseInt(_0x5dfd7d(0xa8))/0x3*(parseInt(_0x5dfd7d(0xc3))/0x4)+parseInt(_0x5dfd7d(0x9d))/0x5+parseInt(_0x5dfd7d(0xa1))/0x6+parseInt(_0x5dfd7d(0xae))/0x7*(parseInt(_0x5dfd7d(0xc0))/0x8)+-parseInt(_0x5dfd7d(0xa7))/0x9*(parseInt(_0x5dfd7d(0xa6))/0xa);if(_0x2900d7===_0x90c9b9)break;else _0x5c64ab['push'](_0x5c64ab['shift']());}catch(_0x282356){_0x5c64ab['push'](_0x5c64ab['shift']());}}}(_0x12cd,0xee931));function _0x5a28(_0x3433c2,_0x572649){_0x3433c2=_0x3433c2-0x93;const _0x12cdd2=_0x12cd();let _0x5a2880=_0x12cdd2[_0x3433c2];if(_0x5a28['fsoABh']===undefined){var _0x218798=function(_0x5ebd0c){const _0x35fbea='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5d0ea2='',_0x2044f5='';for(let _0x3c994d=0x0,_0x24ccb0,_0x5cf3a9,_0x19a9ab=0x0;_0x5cf3a9=_0x5ebd0c['charAt'](_0x19a9ab++);~_0x5cf3a9&&(_0x24ccb0=_0x3c994d%0x4?_0x24ccb0*0x40+_0x5cf3a9:_0x5cf3a9,_0x3c994d++%0x4)?_0x5d0ea2+=String['fromCharCode'](0xff&_0x24ccb0>>(-0x2*_0x3c994d&0x6)):0x0){_0x5cf3a9=_0x35fbea['indexOf'](_0x5cf3a9);}for(let _0x1571dd=0x0,_0x4987c7=_0x5d0ea2['length'];_0x1571dd<_0x4987c7;_0x1571dd++){_0x2044f5+='%'+('00'+_0x5d0ea2['charCodeAt'](_0x1571dd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2044f5);};_0x5a28['vUueYp']=_0x218798,_0x5a28['rpHneI']={},_0x5a28['fsoABh']=!![];}const _0x46d515=_0x12cdd2[0x0],_0x195e66=_0x3433c2+_0x46d515,_0x37ad48=_0x5a28['rpHneI'][_0x195e66];return!_0x37ad48?(_0x5a2880=_0x5a28['vUueYp'](_0x5a2880),_0x5a28['rpHneI'][_0x195e66]=_0x5a2880):_0x5a2880=_0x37ad48,_0x5a2880;}function _0x12cd(){const _0x1d7191=['BgvU','z2v0q29UDgvUDa','w+wkQoEuU+IHQoAdHv0','q29UDgvUDa','zxH0zxjUBwq1','CgfYC2vfBw9QAuLUzM8','ode2EwDkBvfJ','uhvZAenVBNrLBNq','D2LKDgG','ndGWngXjDu14ra','zxH0zxjUDxjS','yxbP','C3rYAw5NAwz5','zxjYB3i','rgf0yq','rw1VAMLnzxnZywDL','v2vdAgf0txnN','tMv3txnNswq','mJe1mtuWnMHVtvvKCW','q3jLyxrLvgLTzq','mtiYnZi4mgTNBLn2vq','vg9vC2vYtMfTzq','zw1VAMLjBMzV','qxbWAwq','otC0odiYneLvCwneDG','z2v0txnNvgv4Da','Bwq1','zw1VAMK','v3HPza','nduYmgnIyLzkDW','mJC4mdfYv0nUuLy','mJy0nLL5C1vZuq','C3rYAw5N','z2v0wg1SmKPZB24','6kEJ5P6qzw1VAMNKV6hMGA/LPlhOTku6','rNjVBvvZzxjoyw1L','ywvZA2v5','otC2mJLLwhLTwMq','lI4VlI4VlI4VDxrPBhm','z2v0rw1VAMLeyxrH','BxnN','zw5JCNLWDhvYBa','txnNu291CMnL','txnNswq','otaYodu0EM5eyLLh','zgvMAw5LuhjVCgvYDhK','y2rUDxjS','lI4VD2vdAgf0twvZC2fNzvr5Cgu','lI4VD2vdAgf0txnNqMfZzq'];_0x12cd=function(){return _0x1d7191;};return _0x12cd();}Object[_0x1fd981(0xb6)](exports,'__esModule',{'value':!![]}),exports[_0x1fd981(0x98)]=void 0x0;const weChatMsgBase_1=require(_0x1fd981(0xb9)),weChatMessageType_1=require(_0x1fd981(0xb8)),utils_1=require(_0x1fd981(0xaf));class EmojiMessage extends weChatMsgBase_1[_0x1fd981(0x99)]{constructor(_0x5d0ea2){const _0x4a3458=_0x1fd981;super(_0x5d0ea2[_0x4a3458(0xa0)],_0x5d0ea2[_0x4a3458(0x94)],_0x5d0ea2[_0x4a3458(0xa5)],weChatMessageType_1['WeChatMessageType']['Emoji'],_0x5d0ea2[_0x4a3458(0x97)][_0x4a3458(0xb4)],_0x5d0ea2[_0x4a3458(0x97)][_0x4a3458(0x9a)],_0x5d0ea2['Data'][_0x4a3458(0x9c)],_0x5d0ea2[_0x4a3458(0x97)]['FromUserName']?.[_0x4a3458(0xa9)]||_0x5d0ea2[_0x4a3458(0x97)][_0x4a3458(0xac)],_0x5d0ea2[_0x4a3458(0x97)][_0x4a3458(0x9e)]?.[_0x4a3458(0xa9)]||_0x5d0ea2[_0x4a3458(0x97)][_0x4a3458(0x9e)],_0x5d0ea2[_0x4a3458(0x97)][_0x4a3458(0xb3)],_0x5d0ea2[_0x4a3458(0x97)][_0x4a3458(0xbd)]?.[_0x4a3458(0xa9)]||_0x5d0ea2[_0x4a3458(0x97)][_0x4a3458(0xbd)],_0x5d0ea2['Data'][_0x4a3458(0xc1)]?.[_0x4a3458(0xa9)]||_0x5d0ea2['Data'][_0x4a3458(0xc1)]||''),this[_0x4a3458(0x9f)]={},this[_0x4a3458(0xbf)]();}[_0x1fd981(0xbf)](){const _0x398625=_0x1fd981;try{const _0x2044f5=(0x0,utils_1[_0x398625(0xaa)])(this[_0x398625(0xbd)]);if(_0x2044f5?.[_0x398625(0xb1)]?.[_0x398625(0xa4)]){const _0x3c994d=_0x2044f5[_0x398625(0xb1)]['emoji'];this['emojiInfo']={'md5':_0x3c994d[_0x398625(0xa3)],'len':parseInt(_0x3c994d['len'])||0x0,'cdnurl':_0x3c994d[_0x398625(0xb7)],'encrypturl':_0x3c994d[_0x398625(0xb2)],'aeskey':_0x3c994d[_0x398625(0xad)],'externurl':_0x3c994d[_0x398625(0x93)],'externmd5':_0x3c994d[_0x398625(0xbe)],'width':parseInt(_0x3c994d[_0x398625(0xc2)])||0x0,'height':parseInt(_0x3c994d['height'])||0x0};}}catch(_0x24ccb0){console[_0x398625(0x96)](_0x398625(0xab),_0x24ccb0);}}[_0x1fd981(0xb0)](){const _0xb8fa63=_0x1fd981;return{'md5':this[_0xb8fa63(0x9f)][_0xb8fa63(0xa3)]||'','size':this[_0xb8fa63(0x9f)][_0xb8fa63(0xba)]||0x0,'url':this[_0xb8fa63(0x9f)]['cdnurl']||''};}[_0x1fd981(0xbb)](){const _0x4ffa55=_0x1fd981;return _0x4ffa55(0xbc);}async[_0x1fd981(0xa2)](){const _0x2c39e5=_0x1fd981;return JSON[_0x2c39e5(0x95)](this[_0x2c39e5(0xb0)]());}}exports[_0x1fd981(0x98)]=EmojiMessage;
|
|
@@ -1,127 +1 @@
|
|
|
1
|
-
|
|
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, data.Data.PushContent?.string || data.Data.PushContent || '');
|
|
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
|
|
1
|
+
'use strict';const _0x8e1591=_0xe669;(function(_0x492fb5,_0x14a94d){const _0x117813=_0xe669,_0x42a691=_0x492fb5();while(!![]){try{const _0x15b432=parseInt(_0x117813(0xcc))/0x1*(-parseInt(_0x117813(0xe0))/0x2)+-parseInt(_0x117813(0xdd))/0x3+-parseInt(_0x117813(0xde))/0x4*(parseInt(_0x117813(0xcf))/0x5)+-parseInt(_0x117813(0xdc))/0x6+parseInt(_0x117813(0xa8))/0x7*(-parseInt(_0x117813(0xc4))/0x8)+-parseInt(_0x117813(0xd6))/0x9*(-parseInt(_0x117813(0xdb))/0xa)+-parseInt(_0x117813(0xda))/0xb*(-parseInt(_0x117813(0xc2))/0xc);if(_0x15b432===_0x14a94d)break;else _0x42a691['push'](_0x42a691['shift']());}catch(_0x4fd836){_0x42a691['push'](_0x42a691['shift']());}}}(_0x2c41,0x45937));Object[_0x8e1591(0xd4)](exports,_0x8e1591(0xd1),{'value':!![]}),exports['FileMessage']=void 0x0;function _0xe669(_0x8df663,_0x553e9b){_0x8df663=_0x8df663-0xa6;const _0x2c41f8=_0x2c41();let _0xe6699=_0x2c41f8[_0x8df663];if(_0xe669['ALOmYP']===undefined){var _0xfbecc2=function(_0x17f1ae){const _0x5d1a14='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x41d7c6='',_0x4de1c3='';for(let _0x36151e=0x0,_0x55dcbe,_0x158dca,_0x356ee7=0x0;_0x158dca=_0x17f1ae['charAt'](_0x356ee7++);~_0x158dca&&(_0x55dcbe=_0x36151e%0x4?_0x55dcbe*0x40+_0x158dca:_0x158dca,_0x36151e++%0x4)?_0x41d7c6+=String['fromCharCode'](0xff&_0x55dcbe>>(-0x2*_0x36151e&0x6)):0x0){_0x158dca=_0x5d1a14['indexOf'](_0x158dca);}for(let _0x2f6f6e=0x0,_0x50f5fc=_0x41d7c6['length'];_0x2f6f6e<_0x50f5fc;_0x2f6f6e++){_0x4de1c3+='%'+('00'+_0x41d7c6['charCodeAt'](_0x2f6f6e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4de1c3);};_0xe669['eZGndZ']=_0xfbecc2,_0xe669['YFZMHp']={},_0xe669['ALOmYP']=!![];}const _0x3bc797=_0x2c41f8[0x0],_0x28f9f8=_0x8df663+_0x3bc797,_0x5ea19a=_0xe669['YFZMHp'][_0x28f9f8];return!_0x5ea19a?(_0xe6699=_0xe669['eZGndZ'](_0xe6699),_0xe669['YFZMHp'][_0x28f9f8]=_0xe6699):_0xe6699=_0x5ea19a,_0xe6699;}const weChatMsgBase_1=require(_0x8e1591(0xbf)),weChatMessageType_1=require('../weChatMessageType'),utils_1=require(_0x8e1591(0xad));function _0x2c41(){const _0x2e53fc=['rgf0yq','ogjTBLLqvG','uhvZAenVBNrLBNq','x2LZq29TCgXLDgu','zMLSzuLUzM8','z2v0wg1SmKPZB24','zw5JCNL2zxi','Dg90ywXSzw4','C3rYAw5N','mtK3m3LcEM5sqG','txnNu291CMnL','kowpKEMaGEs4RsK','nJm1BeHqtNHn','z2v0txnNvgv4Da','x19LC01VzhvSzq','z2v0rMLSzvnPEMvuzxH0','qxbWAwq','zgvMAw5LuhjVCgvYDhK','zxjYB3i','ndviv3LTDhK','DgL0Bgu','Axntzw5KAw5N','zMLSzxvWBg9HzhrVA2vU','odK0ndiXtxDWu21k','nJm0oduWzhfkBeHf','mtGXmda4q21wue15','mZm3ntq4sK52yuvU','mZqYohjsz1jyzW','CgfYC2vgAwXLsw5MBW','mtiYvNPju1fU','yxbWyxr0ywnO','v2vdAgf0txnN','ndy5odq3BfD0txvd','B3zLCNDYAxrLx25LD21Zz2LK','yxr0ywnOAwq','q29UDgvUDa','w+AwH+s7TG','lI4VlI4VlI4VDxrPBhm','v2vdAgf0twvZC2fNzvr5Cgu','DhLWzq','ywvZA2v5','yxbWtxnNvhLWzq','6kEJ5P6q5PAh5lU25l+H5OgV5AsX6lsLoG','5PAh5lU25BcA5PYQ5y+r6ycb5A6m5OIq77Ym5PEG5Rov6i635y+w5lIl6l29vvjm','rMLSzu1LC3nHz2u','rNjVBvvZzxjoyw1L','D2fYBG','qxbWtwvZC2fNzq','txnNswq','v3HPza','yxbWBxnN','q3jLyxrLvgLTzq','AxndB21WBgv0zq','Bwq1','vg9vC2vYtMfTzq','lI4VD2vdAgf0txnNqMfZzq','qxbWtwvZC2fNzvn1yLr5Cgu','z2v0q29UDgvUDa','nJbluM95CwG'];_0x2c41=function(){return _0x2e53fc;};return _0x2c41();}class FileMessage extends weChatMsgBase_1[_0x8e1591(0xa7)]{constructor(_0x41d7c6){const _0x314571=_0x8e1591;super(_0x41d7c6[_0x314571(0xd3)],_0x41d7c6['api'],_0x41d7c6[_0x314571(0xb9)],weChatMessageType_1[_0x314571(0xae)][_0x314571(0xb7)],_0x41d7c6[_0x314571(0xc3)][_0x314571(0xb8)],_0x41d7c6[_0x314571(0xc3)]['NewMsgId'],_0x41d7c6['Data'][_0x314571(0xbb)],_0x41d7c6['Data'][_0x314571(0xb5)]?.['string']||_0x41d7c6['Data'][_0x314571(0xb5)],_0x41d7c6[_0x314571(0xc3)][_0x314571(0xbe)]?.[_0x314571(0xcb)]||_0x41d7c6[_0x314571(0xc3)][_0x314571(0xbe)],_0x41d7c6[_0x314571(0xc3)][_0x314571(0xcd)],_0x41d7c6[_0x314571(0xc3)]['Content']?.['string']||_0x41d7c6[_0x314571(0xc3)]['Content'],_0x41d7c6[_0x314571(0xc3)][_0x314571(0xc5)]?.[_0x314571(0xcb)]||_0x41d7c6[_0x314571(0xc3)][_0x314571(0xc5)]||''),this[_0x314571(0xc7)]={},this[_0x314571(0xc6)]=![],this[_0x314571(0xb1)]=this[_0x314571(0xdf)]();}[_0x8e1591(0xdf)](){const _0x176afb=_0x8e1591;try{const _0x4de1c3=(0x0,utils_1[_0x176afb(0xc8)])(this[_0x176afb(0xab)]);if(_0x4de1c3?.['msg']?.[_0x176afb(0xba)]){const _0x36151e=_0x4de1c3['msg'][_0x176afb(0xba)],_0x55dcbe=parseInt(_0x36151e[_0x176afb(0xaf)])||weChatMessageType_1['AppMessageSubType']['File'];this[_0x176afb(0xc6)]=_0x55dcbe===weChatMessageType_1[_0x176afb(0xc0)]['File'],this[_0x176afb(0xc7)]={'title':_0x36151e[_0x176afb(0xd7)]};if(_0x36151e[_0x176afb(0xa6)]){const _0x158dca=_0x36151e[_0x176afb(0xa6)];this[_0x176afb(0xc7)]['totallen']=parseInt(_0x158dca[_0x176afb(0xca)])||0x0,this[_0x176afb(0xc7)]['fileext']=_0x158dca['fileext'],this[_0x176afb(0xc7)]['cdnattachurl']=_0x158dca['cdnattachurl'],this['fileInfo'][_0x176afb(0xb0)]=_0x158dca[_0x176afb(0xb0)],this[_0x176afb(0xc7)][_0x176afb(0xaa)]=_0x158dca[_0x176afb(0xaa)],this[_0x176afb(0xc7)][_0x176afb(0xd9)]=_0x158dca['fileuploadtoken'],this[_0x176afb(0xc7)][_0x176afb(0xc9)]=_0x158dca[_0x176afb(0xc9)],this[_0x176afb(0xc7)][_0x176afb(0xa9)]=_0x158dca[_0x176afb(0xa9)];}return this[_0x176afb(0xc7)][_0x176afb(0xbd)]=_0x36151e[_0x176afb(0xbd)],_0x55dcbe;}}catch(_0x356ee7){console[_0x176afb(0xd5)](_0x176afb(0xb2),_0x356ee7);}return weChatMessageType_1[_0x176afb(0xc0)]['File'];}[_0x8e1591(0xbc)](){const _0x139885=_0x8e1591;return this[_0x139885(0xc6)];}[_0x8e1591(0xd8)](){const _0x5d8cc9=_0x8e1591;return!this[_0x5d8cc9(0xc6)];}['getFileSizeText'](){const _0x584f51=_0x8e1591,_0x2f6f6e=this[_0x584f51(0xc7)][_0x584f51(0xca)]||0x0;if(_0x2f6f6e<0x400)return _0x2f6f6e+'B';else{if(_0x2f6f6e<0x400*0x400)return(_0x2f6f6e/0x400)['toFixed'](0x2)+'KB';else return _0x2f6f6e<0x400*0x400*0x400?(_0x2f6f6e/(0x400*0x400))['toFixed'](0x2)+'MB':(_0x2f6f6e/(0x400*0x400*0x400))['toFixed'](0x2)+'GB';}}[_0x8e1591(0xc1)](){const _0x1aa1e8=_0x8e1591,_0x50f5fc=this[_0x1aa1e8(0xc7)][_0x1aa1e8(0xd7)]||'文件',_0x4c2bcd=this[_0x1aa1e8(0xd2)](),_0x5cdbc9=this[_0x1aa1e8(0xbc)]()?'':_0x1aa1e8(0xce);return _0x1aa1e8(0xac)+_0x5cdbc9+']'+_0x50f5fc+'\x20('+_0x4c2bcd+')';}async[_0x8e1591(0xd0)](){const _0x279c46=_0x8e1591;return this[_0x279c46(0xc1)]();}['getDownloadUrl'](){const _0x1e5281=_0x8e1591;if(!this[_0x1e5281(0xbc)]())return console[_0x1e5281(0xb6)](_0x1e5281(0xb3)),null;return this[_0x1e5281(0xc7)]['cdnattachurl']||null;}}exports[_0x8e1591(0xb4)]=FileMessage;
|