wechaty-puppet-padplus2 3.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/README.md +50 -0
- package/dist/cjs/cleanup.cjs +1 -0
- package/dist/cjs/config.cjs +1 -0
- package/dist/cjs/mock/cache-manager.cjs +1 -0
- package/dist/cjs/mock/events/event-friendship.cjs +1 -0
- package/dist/cjs/mock/events/event-message.cjs +1 -0
- package/dist/cjs/mock/events/event-room-invite.cjs +1 -0
- package/dist/cjs/mock/events/event-room-join.cjs +1 -0
- package/dist/cjs/mock/events/event-room-leave.cjs +1 -0
- package/dist/cjs/mock/events/event-room-topic.cjs +1 -0
- package/dist/cjs/mock/events/event.cjs +1 -0
- package/dist/cjs/mock/events/mod.cjs +1 -0
- package/dist/cjs/mock/messages/message-appmsg.cjs +1 -0
- package/dist/cjs/mock/messages/message-emotion.cjs +1 -0
- package/dist/cjs/mock/messages/message-miniprogram.cjs +1 -0
- package/dist/cjs/mock/messages/message-sysmsg.cjs +1 -0
- package/dist/cjs/mock/messages/sysmsg/message-pat.cjs +1 -0
- package/dist/cjs/mock/messages/sysmsg/message-revokemsg.cjs +1 -0
- package/dist/cjs/mock/messages/sysmsg/message-sysmsgtemplate.cjs +1 -0
- package/dist/cjs/mock/messages/sysmsg/message-todo.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/contact.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/message/message-parser-appmsg.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/message/message-parser-refermsg.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/message/message-parser-room.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/message/message-parser-single-chat.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/message/message-parser-sysmsg.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/message/message-parser-type.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/message/message-parser.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/message/mod.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/message.cjs +1 -0
- package/dist/cjs/mock/schema-mapper/room.cjs +1 -0
- package/dist/cjs/mock/types.cjs +1 -0
- package/dist/cjs/mock/utils/cached-promise.cjs +1 -0
- package/dist/cjs/mock/utils/is-type.cjs +1 -0
- package/dist/cjs/mock/utils/regex.cjs +1 -0
- package/dist/cjs/mock/utils/runner.cjs +1 -0
- package/dist/cjs/mock/utils/xml-to-json.cjs +1 -0
- package/dist/cjs/mod.cjs +1 -0
- package/dist/cjs/package-json.cjs +1 -0
- package/dist/cjs/puppet-plus.cjs +1 -0
- package/dist/cjs/server/cache-manager.cjs +1 -0
- package/dist/cjs/server/index.cjs +1 -0
- package/dist/cjs/server/map/AppMessageLink.cjs +1 -0
- package/dist/cjs/server/map/Label.cjs +1 -0
- package/dist/cjs/server/map/RoomMemberList.cjs +1 -0
- package/dist/cjs/server/map/contact.cjs +1 -0
- package/dist/cjs/server/map/index.cjs +1 -0
- package/dist/cjs/server/map/message.cjs +1 -0
- package/dist/cjs/server/map/response.cjs +1 -0
- package/dist/cjs/server/service/api/index3.cjs +1 -0
- package/dist/cjs/server/service/config/index.cjs +1 -0
- package/dist/cjs/server/service/index.cjs +1 -0
- package/dist/cjs/server/service/request/index.cjs +1 -0
- package/dist/cjs/server/service/utils/polling.cjs +1 -0
- package/dist/cjs/server/utils/PromiseUtils.cjs +1 -0
- package/dist/cjs/server/utils/SerialExecutor.cjs +1 -0
- package/dist/cjs/server/utils/Utils.cjs +1 -0
- package/dist/cjs/server/utils/xml-to-json.cjs +1 -0
- package/dist/esm/cleanup.js +26 -0
- package/dist/esm/config.js +9 -0
- package/dist/esm/mock/cache-manager.js +182 -0
- package/dist/esm/mock/events/event-friendship.js +59 -0
- package/dist/esm/mock/events/event-message.js +3 -0
- package/dist/esm/mock/events/event-room-invite.js +33 -0
- package/dist/esm/mock/events/event-room-join.js +105 -0
- package/dist/esm/mock/events/event-room-leave.js +83 -0
- package/dist/esm/mock/events/event-room-topic.js +50 -0
- package/dist/esm/mock/events/event.js +38 -0
- package/dist/esm/mock/events/mod.js +20 -0
- package/dist/esm/mock/messages/message-appmsg.js +41 -0
- package/dist/esm/mock/messages/message-emotion.js +24 -0
- package/dist/esm/mock/messages/message-miniprogram.js +18 -0
- package/dist/esm/mock/messages/message-sysmsg.js +50 -0
- package/dist/esm/mock/messages/sysmsg/message-pat.js +10 -0
- package/dist/esm/mock/messages/sysmsg/message-revokemsg.js +20 -0
- package/dist/esm/mock/messages/sysmsg/message-sysmsgtemplate.js +45 -0
- package/dist/esm/mock/messages/sysmsg/message-todo.js +15 -0
- package/dist/esm/mock/schema-mapper/contact.js +22 -0
- package/dist/esm/mock/schema-mapper/message/message-parser-appmsg.js +64 -0
- package/dist/esm/mock/schema-mapper/message/message-parser-refermsg.js +46 -0
- package/dist/esm/mock/schema-mapper/message/message-parser-room.js +33 -0
- package/dist/esm/mock/schema-mapper/message/message-parser-single-chat.js +4 -0
- package/dist/esm/mock/schema-mapper/message/message-parser-sysmsg.js +33 -0
- package/dist/esm/mock/schema-mapper/message/message-parser-type.js +31 -0
- package/dist/esm/mock/schema-mapper/message/message-parser.js +20 -0
- package/dist/esm/mock/schema-mapper/message/mod.js +19 -0
- package/dist/esm/mock/schema-mapper/message.js +21 -0
- package/dist/esm/mock/schema-mapper/room.js +30 -0
- package/dist/esm/mock/types.js +13 -0
- package/dist/esm/mock/utils/cached-promise.js +12 -0
- package/dist/esm/mock/utils/is-type.js +21 -0
- package/dist/esm/mock/utils/regex.js +11 -0
- package/dist/esm/mock/utils/runner.js +11 -0
- package/dist/esm/mock/utils/xml-to-json.js +14 -0
- package/dist/esm/mod.js +5 -0
- package/dist/esm/package-json.js +5 -0
- package/dist/esm/puppet-plus.js +829 -0
- package/dist/esm/server/cache-manager.js +77 -0
- package/dist/esm/server/index.js +19 -0
- package/dist/esm/server/map/AppMessageLink.js +58 -0
- package/dist/esm/server/map/Label.js +30 -0
- package/dist/esm/server/map/RoomMemberList.js +48 -0
- package/dist/esm/server/map/contact.js +192 -0
- package/dist/esm/server/map/index.js +7 -0
- package/dist/esm/server/map/message.js +107 -0
- package/dist/esm/server/map/response.js +78 -0
- package/dist/esm/server/service/api/index3.js +960 -0
- package/dist/esm/server/service/config/index.js +7 -0
- package/dist/esm/server/service/index.js +30 -0
- package/dist/esm/server/service/request/index.js +47 -0
- package/dist/esm/server/service/utils/polling.js +24 -0
- package/dist/esm/server/utils/PromiseUtils.js +19 -0
- package/dist/esm/server/utils/SerialExecutor.js +41 -0
- package/dist/esm/server/utils/Utils.js +7 -0
- package/dist/esm/server/utils/xml-to-json.js +18 -0
- package/dist/types/cleanup.d.ts +4 -0
- package/dist/types/config.d.ts +9 -0
- package/dist/types/mock/cache-manager.d.ts +55 -0
- package/dist/types/mock/events/event-friendship.d.ts +5 -0
- package/dist/types/mock/events/event-message.d.ts +5 -0
- package/dist/types/mock/events/event-room-invite.d.ts +5 -0
- package/dist/types/mock/events/event-room-join.d.ts +5 -0
- package/dist/types/mock/events/event-room-leave.d.ts +7 -0
- package/dist/types/mock/events/event-room-topic.d.ts +5 -0
- package/dist/types/mock/events/event.d.ts +28 -0
- package/dist/types/mock/events/mod.d.ts +4 -0
- package/dist/types/mock/messages/message-appmsg.d.ts +57 -0
- package/dist/types/mock/messages/message-emotion.d.ts +12 -0
- package/dist/types/mock/messages/message-miniprogram.d.ts +3 -0
- package/dist/types/mock/messages/message-sysmsg.d.ts +18 -0
- package/dist/types/mock/messages/sysmsg/message-pat.d.ts +14 -0
- package/dist/types/mock/messages/sysmsg/message-revokemsg.d.ts +19 -0
- package/dist/types/mock/messages/sysmsg/message-sysmsgtemplate.d.ts +60 -0
- package/dist/types/mock/messages/sysmsg/message-todo.d.ts +31 -0
- package/dist/types/mock/schema-mapper/contact.d.ts +4 -0
- package/dist/types/mock/schema-mapper/message/message-parser-appmsg.d.ts +4 -0
- package/dist/types/mock/schema-mapper/message/message-parser-refermsg.d.ts +4 -0
- package/dist/types/mock/schema-mapper/message/message-parser-room.d.ts +4 -0
- package/dist/types/mock/schema-mapper/message/message-parser-single-chat.d.ts +4 -0
- package/dist/types/mock/schema-mapper/message/message-parser-sysmsg.d.ts +4 -0
- package/dist/types/mock/schema-mapper/message/message-parser-type.d.ts +4 -0
- package/dist/types/mock/schema-mapper/message/message-parser.d.ts +12 -0
- package/dist/types/mock/schema-mapper/message/mod.d.ts +4 -0
- package/dist/types/mock/schema-mapper/message.d.ts +3 -0
- package/dist/types/mock/schema-mapper/room.d.ts +5 -0
- package/dist/types/mock/types.d.ts +35 -0
- package/dist/types/mock/utils/cached-promise.d.ts +5 -0
- package/dist/types/mock/utils/is-type.d.ts +9 -0
- package/dist/types/mock/utils/regex.d.ts +3 -0
- package/dist/types/mock/utils/runner.d.ts +3 -0
- package/dist/types/mock/utils/xml-to-json.d.ts +2 -0
- package/dist/types/mod.d.ts +6 -0
- package/dist/types/package-json.d.ts +4 -0
- package/dist/types/puppet-plus.d.ts +102 -0
- package/dist/types/server/cache-manager.d.ts +22 -0
- package/dist/types/server/index.d.ts +15 -0
- package/dist/types/server/map/AppMessageLink.d.ts +31 -0
- package/dist/types/server/map/Label.d.ts +17 -0
- package/dist/types/server/map/RoomMemberList.d.ts +31 -0
- package/dist/types/server/map/contact.d.ts +113 -0
- package/dist/types/server/map/index.d.ts +13 -0
- package/dist/types/server/map/message.d.ts +68 -0
- package/dist/types/server/map/response.d.ts +45 -0
- package/dist/types/server/server.d.ts +6 -0
- package/dist/types/server/service/api/index.d.ts +78 -0
- package/dist/types/server/service/api/index2.d.ts +72 -0
- package/dist/types/server/service/api/index3.d.ts +78 -0
- package/dist/types/server/service/api/index_c.d.ts +71 -0
- package/dist/types/server/service/api/ws.d.ts +2 -0
- package/dist/types/server/service/config/index.d.ts +6 -0
- package/dist/types/server/service/index.d.ts +8 -0
- package/dist/types/server/service/request/index.d.ts +14 -0
- package/dist/types/server/service/request/type.d.ts +11 -0
- package/dist/types/server/service/utils/polling.d.ts +8 -0
- package/dist/types/server/utils/PromiseUtils.d.ts +13 -0
- package/dist/types/server/utils/SerialExecutor.d.ts +10 -0
- package/dist/types/server/utils/Utils.d.ts +3 -0
- package/dist/types/server/utils/diff.d.ts +35 -0
- package/dist/types/server/utils/polling.d.ts +7 -0
- package/dist/types/server/utils/token.d.ts +11 -0
- package/dist/types/server/utils/xml-to-json.d.ts +3 -0
- package/package.json +123 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { WechatMessageType as s } from "../types.js";
|
|
2
|
+
|
|
3
|
+
import { xmlToJson as t } from "../utils/xml-to-json.js";
|
|
4
|
+
|
|
5
|
+
import { parsePatMessagePayload as e } from "./sysmsg/message-pat.js";
|
|
6
|
+
|
|
7
|
+
import { parseSysmsgTemplateMessagePayload as m } from "./sysmsg/message-sysmsgtemplate.js";
|
|
8
|
+
|
|
9
|
+
import { parseTodoMessagePayload as a } from "./sysmsg/message-todo.js";
|
|
10
|
+
|
|
11
|
+
import { parseRevokeMsgMessagePayload as o } from "./sysmsg/message-revokemsg.js";
|
|
12
|
+
|
|
13
|
+
async function r(message) {
|
|
14
|
+
if (message.type !== s.SysTemplate) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const r = message.content.trim(), y = r.indexOf("<sysmsg");
|
|
18
|
+
if (-1 === y) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const p = await t(r.substring(y));
|
|
22
|
+
let g;
|
|
23
|
+
switch (p.sysmsg.$.type) {
|
|
24
|
+
case "pat":
|
|
25
|
+
g = await e(p.sysmsg.pat);
|
|
26
|
+
break;
|
|
27
|
+
|
|
28
|
+
case "sysmsgtemplate":
|
|
29
|
+
g = await m(p.sysmsg.sysmsgtemplate);
|
|
30
|
+
break;
|
|
31
|
+
|
|
32
|
+
case "roomtoolstips":
|
|
33
|
+
g = await a(p.sysmsg.todo);
|
|
34
|
+
break;
|
|
35
|
+
|
|
36
|
+
case "revokemsg":
|
|
37
|
+
g = await o(p.sysmsg.revokemsg);
|
|
38
|
+
}
|
|
39
|
+
return g ? {
|
|
40
|
+
payload: g,
|
|
41
|
+
type: p.sysmsg.$.type
|
|
42
|
+
} : null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async function y(message) {
|
|
46
|
+
const s = await r(message);
|
|
47
|
+
return s && "sysmsgtemplate" === s.type ? s.payload : null;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { r as parseSysmsgMessagePayload, y as parseSysmsgSysmsgTemplateMessagePayload };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { parseTextWithRegexList as e } from "../../utils/regex.js";
|
|
2
|
+
|
|
3
|
+
import { executeRunners as s } from "../../utils/runner.js";
|
|
4
|
+
|
|
5
|
+
const a = [ /你撤回了一条消息/, /You recalled a message/ ], r = [ /"(.+)" 撤回了一条消息/, /"(.+)" has recalled a message./ ];
|
|
6
|
+
|
|
7
|
+
async function n(n) {
|
|
8
|
+
let o;
|
|
9
|
+
const t = await s([ async () => e(n.replacemsg, a, (async () => "You")), async () => e(n.replacemsg, r, (async (e, s) => (o = s[1],
|
|
10
|
+
"Other"))) ]);
|
|
11
|
+
return {
|
|
12
|
+
content: n.replacemsg,
|
|
13
|
+
operatorNickName: o,
|
|
14
|
+
originalMessageId: n.newmsgid,
|
|
15
|
+
session: n.session,
|
|
16
|
+
type: t
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { n as parseRevokeMsgMessagePayload };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { parseTextWithRegexList as e } from "../../utils/regex.js";
|
|
2
|
+
|
|
3
|
+
function t(e) {
|
|
4
|
+
return Array.isArray(e) ? e : [ e ];
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
async function n(e) {
|
|
8
|
+
const n = t(e.content_template.link_list.link).map((e => {
|
|
9
|
+
const n = e.$.type;
|
|
10
|
+
let r;
|
|
11
|
+
if ("link_profile" === n) {
|
|
12
|
+
r = t(e.memberlist.member).map((e => ({
|
|
13
|
+
nickName: e.nickname,
|
|
14
|
+
userName: e.username
|
|
15
|
+
})));
|
|
16
|
+
} else {
|
|
17
|
+
"link_revoke" === e.$.type && (r = {
|
|
18
|
+
title: e.title,
|
|
19
|
+
userNameList: t(e.usernamelist.username)
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
name: e.$.name,
|
|
24
|
+
payload: r,
|
|
25
|
+
type: n
|
|
26
|
+
};
|
|
27
|
+
})), r = e.content_template.template, a = [ ...r.matchAll(/\$(.+?)\$/g) ];
|
|
28
|
+
return {
|
|
29
|
+
template: r,
|
|
30
|
+
templateLinkList: a.map((e => {
|
|
31
|
+
const t = e[1];
|
|
32
|
+
return n.filter((e => e.name === t))[0];
|
|
33
|
+
}))
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async function r(t, n, r) {
|
|
38
|
+
return e(t.template, n, (async e => r(t.templateLinkList, e)));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function a(e, t, n) {
|
|
42
|
+
return async () => r(e, t, n);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { a as createSysmsgTemplateRunner, r as parseSysmsgTemplate, n as parseSysmsgTemplateMessagePayload };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
async function e(e) {
|
|
2
|
+
return {
|
|
3
|
+
appId: e.username,
|
|
4
|
+
creatorUserName: e.creator,
|
|
5
|
+
id: e.todoid,
|
|
6
|
+
numberOfReply: e.nreply,
|
|
7
|
+
operatorUserName: e.oper,
|
|
8
|
+
path: e.path,
|
|
9
|
+
relatedMessageId: e.related_msgid,
|
|
10
|
+
template: e.template,
|
|
11
|
+
title: e.title
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { e as parseTodoMessagePayload };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as e from "wechaty-puppet";
|
|
2
|
+
|
|
3
|
+
import { isContactOfficialId as a } from "../utils/is-type.js";
|
|
4
|
+
|
|
5
|
+
function t(contact) {
|
|
6
|
+
return {
|
|
7
|
+
alias: contact.remark,
|
|
8
|
+
avatar: contact.avatar,
|
|
9
|
+
city: contact.city,
|
|
10
|
+
friend: !contact.stranger,
|
|
11
|
+
gender: contact.gender,
|
|
12
|
+
id: contact.username,
|
|
13
|
+
name: contact.nickname,
|
|
14
|
+
phone: contact.phoneList,
|
|
15
|
+
province: contact.province,
|
|
16
|
+
signature: contact.signature,
|
|
17
|
+
type: a(contact.username) ? e.types.Contact.Official : e.types.Contact.Individual,
|
|
18
|
+
weixin: contact.alias
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { t as padPlusContactToWechaty };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import * as e from "wechaty-puppet";
|
|
2
|
+
|
|
3
|
+
import { log as t } from "wechaty-puppet";
|
|
4
|
+
|
|
5
|
+
import { LOGPRE as s } from "./message-parser.js";
|
|
6
|
+
|
|
7
|
+
import { parseAppmsgMessagePayload as a, AppMessageType as r } from "../../messages/message-appmsg.js";
|
|
8
|
+
|
|
9
|
+
const p = async (p, o, y) => {
|
|
10
|
+
if (o.type !== e.types.Message.Attachment) {
|
|
11
|
+
return o;
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
const t = await a(p.content);
|
|
15
|
+
switch (y.appMessagePayload = t, t.type) {
|
|
16
|
+
case r.Text:
|
|
17
|
+
o.type = e.types.Message.Text, o.text = t.title;
|
|
18
|
+
break;
|
|
19
|
+
|
|
20
|
+
case r.Audio:
|
|
21
|
+
case r.Video:
|
|
22
|
+
case r.Url:
|
|
23
|
+
o.type = e.types.Message.Url;
|
|
24
|
+
break;
|
|
25
|
+
|
|
26
|
+
case r.Attach:
|
|
27
|
+
o.type = e.types.Message.Attachment, o.filename = t.title;
|
|
28
|
+
break;
|
|
29
|
+
|
|
30
|
+
case r.ChatHistory:
|
|
31
|
+
o.type = e.types.Message.ChatHistory;
|
|
32
|
+
break;
|
|
33
|
+
|
|
34
|
+
case r.MiniProgram:
|
|
35
|
+
case r.MiniProgramApp:
|
|
36
|
+
o.type = e.types.Message.MiniProgram;
|
|
37
|
+
break;
|
|
38
|
+
|
|
39
|
+
case r.RedEnvelopes:
|
|
40
|
+
o.type = e.types.Message.RedEnvelope;
|
|
41
|
+
break;
|
|
42
|
+
|
|
43
|
+
case r.Transfers:
|
|
44
|
+
o.type = e.types.Message.Transfer;
|
|
45
|
+
break;
|
|
46
|
+
|
|
47
|
+
case r.RealtimeShareLocation:
|
|
48
|
+
o.type = e.types.Message.Location;
|
|
49
|
+
break;
|
|
50
|
+
|
|
51
|
+
case r.GroupNote:
|
|
52
|
+
o.type = e.types.Message.GroupNote, o.text = t.title;
|
|
53
|
+
break;
|
|
54
|
+
|
|
55
|
+
default:
|
|
56
|
+
o.type = e.types.Message.Unknown;
|
|
57
|
+
}
|
|
58
|
+
} catch (e) {
|
|
59
|
+
t.warn(s, `Error occurred while parse message attachment: ${JSON.stringify(p)} , ${e.stack}`);
|
|
60
|
+
}
|
|
61
|
+
return o;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export { p as appMsgParser };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as e from "wechaty-puppet";
|
|
2
|
+
|
|
3
|
+
import { AppMessageType as a, parseAppmsgMessagePayload as t } from "../../messages/message-appmsg.js";
|
|
4
|
+
|
|
5
|
+
import { WechatMessageType as s } from "../../types.js";
|
|
6
|
+
|
|
7
|
+
const p = async (p, r, o) => {
|
|
8
|
+
if (!o.appMessagePayload || o.appMessagePayload.type !== a.ReferMsg) {
|
|
9
|
+
return r;
|
|
10
|
+
}
|
|
11
|
+
const c = o.appMessagePayload;
|
|
12
|
+
let n;
|
|
13
|
+
const m = c.refermsg;
|
|
14
|
+
switch (parseInt(m.type)) {
|
|
15
|
+
case s.Text:
|
|
16
|
+
n = m.content;
|
|
17
|
+
break;
|
|
18
|
+
|
|
19
|
+
case s.Image:
|
|
20
|
+
n = "图片";
|
|
21
|
+
break;
|
|
22
|
+
|
|
23
|
+
case s.Video:
|
|
24
|
+
n = "视频";
|
|
25
|
+
break;
|
|
26
|
+
|
|
27
|
+
case s.Emoticon:
|
|
28
|
+
n = "动画表情";
|
|
29
|
+
break;
|
|
30
|
+
|
|
31
|
+
case s.Location:
|
|
32
|
+
n = "位置";
|
|
33
|
+
break;
|
|
34
|
+
|
|
35
|
+
case s.App:
|
|
36
|
+
n = (await t(m.content)).title;
|
|
37
|
+
break;
|
|
38
|
+
|
|
39
|
+
default:
|
|
40
|
+
n = "未知消息";
|
|
41
|
+
}
|
|
42
|
+
return r.type = e.types.Message.Text, r.text = `「${m.displayname}:${n}」\n- - - - - - - - - - - - - - -\n${c.title}`,
|
|
43
|
+
r;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export { p as referMsgParser };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { isRoomId as e, isIMRoomId as t } from "../../utils/is-type.js";
|
|
2
|
+
|
|
3
|
+
const n = async (n, o, s) => {
|
|
4
|
+
if (await async function(n, o) {
|
|
5
|
+
if (e(n.fromusername) || t(n.fromusername)) {
|
|
6
|
+
o.roomId = n.fromusername;
|
|
7
|
+
const e = n.content.indexOf(":\n");
|
|
8
|
+
if (-1 !== e) {
|
|
9
|
+
const t = n.content.slice(0, e);
|
|
10
|
+
o.talkerId = t, o.text = n.content.slice(e + 2);
|
|
11
|
+
} else {
|
|
12
|
+
o.talkerId = n.tousername;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}(n, o), await async function(n, o) {
|
|
16
|
+
if (e(n.tousername) || t(n.tousername)) {
|
|
17
|
+
o.roomId = n.tousername, o.talkerId = n.fromusername;
|
|
18
|
+
const e = n.content.indexOf(":\n");
|
|
19
|
+
-1 !== e && (o.text = n.content.slice(e + 2));
|
|
20
|
+
}
|
|
21
|
+
}(n, o), o.roomId) {
|
|
22
|
+
let e;
|
|
23
|
+
if (s.isRoomMessage = !0, 1 === n.atList.length && "announcement@all" === n.atList[0]) {
|
|
24
|
+
e = (await s.puppet.roomPayload(o.roomId)).memberIdList;
|
|
25
|
+
} else {
|
|
26
|
+
e = n.atList;
|
|
27
|
+
}
|
|
28
|
+
o.mentionIdList = e;
|
|
29
|
+
}
|
|
30
|
+
return o;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { n as roomParser };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { parseSysmsgMessagePayload as e } from "../../messages/message-sysmsg.js";
|
|
2
|
+
|
|
3
|
+
const s = async (s, a, r) => {
|
|
4
|
+
const t = await e(s);
|
|
5
|
+
if (!t) {
|
|
6
|
+
return a;
|
|
7
|
+
}
|
|
8
|
+
switch (t.type) {
|
|
9
|
+
case "pat":
|
|
10
|
+
{
|
|
11
|
+
const e = t.payload;
|
|
12
|
+
r.isRoomMessage && (a.talkerId = e.pattedUserName, a.listenerId = e.fromUserName);
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
case "roomtoolstips":
|
|
17
|
+
{
|
|
18
|
+
const e = t.payload;
|
|
19
|
+
r.isRoomMessage && (a.talkerId = e.operatorUserName);
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
case "revokemsg":
|
|
24
|
+
{
|
|
25
|
+
const e = t.payload;
|
|
26
|
+
r.isRoomMessage || "You" === e.type && (a.listenerId = a.talkerId, a.talkerId = r.puppet.currentUserId);
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return a;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { s as sysmsgParser };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as e from "wechaty-puppet";
|
|
2
|
+
|
|
3
|
+
import { log as s } from "wechaty-puppet";
|
|
4
|
+
|
|
5
|
+
import { WechatMessageType as t } from "../../types.js";
|
|
6
|
+
|
|
7
|
+
import { LOGPRE as p } from "./message-parser.js";
|
|
8
|
+
|
|
9
|
+
const a = {
|
|
10
|
+
[t.Text]: e.types.Message.Text,
|
|
11
|
+
[t.Image]: e.types.Message.Image,
|
|
12
|
+
[t.Voice]: e.types.Message.Audio,
|
|
13
|
+
[t.Emoticon]: e.types.Message.Emoticon,
|
|
14
|
+
[t.App]: e.types.Message.Attachment,
|
|
15
|
+
[t.File]: e.types.Message.Attachment,
|
|
16
|
+
[t.Location]: e.types.Message.Location,
|
|
17
|
+
[t.Video]: e.types.Message.Video,
|
|
18
|
+
[t.Sys]: e.types.Message.Unknown,
|
|
19
|
+
[t.ShareCard]: e.types.Message.Contact,
|
|
20
|
+
[t.VoipMsg]: e.types.Message.Recalled,
|
|
21
|
+
[t.SysTemplate]: e.types.Message.Recalled,
|
|
22
|
+
[t.StatusNotify]: e.types.Message.Unknown,
|
|
23
|
+
[t.SysNotice]: e.types.Message.Unknown
|
|
24
|
+
}, o = async (t, o, y) => {
|
|
25
|
+
const n = t.type;
|
|
26
|
+
let g = a[n];
|
|
27
|
+
return g || (s.verbose(p, `unsupported type: ${JSON.stringify(t)}`), g = e.types.Message.Unknown),
|
|
28
|
+
o.type = g, o;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { o as typeParser };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const s = [];
|
|
2
|
+
|
|
3
|
+
function o(o) {
|
|
4
|
+
s.push(o);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
async function n(puppet, o, n) {
|
|
8
|
+
const t = {
|
|
9
|
+
isRoomMessage: !1,
|
|
10
|
+
puppet
|
|
11
|
+
};
|
|
12
|
+
for (const e of s) {
|
|
13
|
+
n = await e(o, n, t);
|
|
14
|
+
}
|
|
15
|
+
return n;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const t = "message-parser";
|
|
19
|
+
|
|
20
|
+
export { t as LOGPRE, o as addMessageParser, n as executeMessageParsers };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { addMessageParser as s } from "./message-parser.js";
|
|
2
|
+
|
|
3
|
+
import { executeMessageParsers as r } from "./message-parser.js";
|
|
4
|
+
|
|
5
|
+
import { typeParser as e } from "./message-parser-type.js";
|
|
6
|
+
|
|
7
|
+
import { roomParser as m } from "./message-parser-room.js";
|
|
8
|
+
|
|
9
|
+
import { singleChatParser as p } from "./message-parser-single-chat.js";
|
|
10
|
+
|
|
11
|
+
import { appMsgParser as o } from "./message-parser-appmsg.js";
|
|
12
|
+
|
|
13
|
+
import { referMsgParser as a } from "./message-parser-refermsg.js";
|
|
14
|
+
|
|
15
|
+
import { sysmsgParser as g } from "./message-parser-sysmsg.js";
|
|
16
|
+
|
|
17
|
+
s(e), s(m), s(p), s(o), s(a), s(g);
|
|
18
|
+
|
|
19
|
+
export { r as executeMessageParsers };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as e from "wechaty-puppet";
|
|
2
|
+
|
|
3
|
+
import "./message/mod.js";
|
|
4
|
+
|
|
5
|
+
import { executeMessageParsers as t } from "./message/message-parser.js";
|
|
6
|
+
|
|
7
|
+
async function r(puppet, r) {
|
|
8
|
+
const o = {
|
|
9
|
+
id: r.id,
|
|
10
|
+
talkerId: r.fromusername,
|
|
11
|
+
text: r.content,
|
|
12
|
+
timestamp: r.createtime,
|
|
13
|
+
type: e.types.Message.Unknown
|
|
14
|
+
};
|
|
15
|
+
if (await t(puppet, r, o), !o.roomId && !o.listenerId) {
|
|
16
|
+
throw new Error("neither roomId nor listenerId");
|
|
17
|
+
}
|
|
18
|
+
return o;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { r as padPlusToWechaty };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import "../../server/map/index.js";
|
|
2
|
+
|
|
3
|
+
import { Contact as e } from "../../server/map/contact.js";
|
|
4
|
+
|
|
5
|
+
function a(contact) {
|
|
6
|
+
return {
|
|
7
|
+
adminIdList: [],
|
|
8
|
+
avatar: contact.avatar,
|
|
9
|
+
id: contact.username,
|
|
10
|
+
memberIdList: contact.chatroommemberList.map((e => e.username)),
|
|
11
|
+
ownerId: contact.chatroomownerusername,
|
|
12
|
+
topic: contact.nickname
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function r(e) {
|
|
17
|
+
return {
|
|
18
|
+
avatar: e.avatar,
|
|
19
|
+
id: e.username,
|
|
20
|
+
inviterId: e.inviterusername,
|
|
21
|
+
name: e.nickname,
|
|
22
|
+
roomAlias: e.displayname
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function n(a) {
|
|
27
|
+
return (new e).setUsername(a.getUsername()).setNickname(a.getNickname()).setAvatar(a.getAvatar()).setStranger(!0);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { n as chatRoomMemberToContact, r as padPlusRoomMemberToWechaty, a as padPlusRoomToWechaty };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var e, i;
|
|
2
|
+
|
|
3
|
+
(i = e || (e = {}))[i.Text = 1] = "Text", i[i.Image = 3] = "Image", i[i.Voice = 34] = "Voice",
|
|
4
|
+
i[i.VerifyMsg = 37] = "VerifyMsg", i[i.PossibleFriendMsg = 40] = "PossibleFriendMsg",
|
|
5
|
+
i[i.ShareCard = 42] = "ShareCard", i[i.Video = 43] = "Video", i[i.Emoticon = 47] = "Emoticon",
|
|
6
|
+
i[i.Location = 48] = "Location", i[i.App = 49] = "App", i[i.VoipMsg = 50] = "VoipMsg",
|
|
7
|
+
i[i.StatusNotify = 51] = "StatusNotify", i[i.VoipNotify = 52] = "VoipNotify", i[i.VoipInvite = 53] = "VoipInvite",
|
|
8
|
+
i[i.MicroVideo = 62] = "MicroVideo", i[i.VerifyMsgEnterprise = 65] = "VerifyMsgEnterprise",
|
|
9
|
+
i[i.Transfer = 2e3] = "Transfer", i[i.RedEnvelope = 2001] = "RedEnvelope", i[i.MiniProgram = 2002] = "MiniProgram",
|
|
10
|
+
i[i.GroupInvite = 2003] = "GroupInvite", i[i.File = 2004] = "File", i[i.SysNotice = 9999] = "SysNotice",
|
|
11
|
+
i[i.Sys = 1e4] = "Sys", i[i.SysTemplate = 10002] = "SysTemplate";
|
|
12
|
+
|
|
13
|
+
export { e as WechatMessageType };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function t(t) {
|
|
2
|
+
return !!t && /@chatroom$/.test(t);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
function n(t) {
|
|
6
|
+
return !!t && /@im.chatroom$/.test(t);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function r(r) {
|
|
10
|
+
return !!r && (!t(r) && !n(r) && !e(r));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function e(t) {
|
|
14
|
+
return !!t && /@openim$/.test(t);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function o(t) {
|
|
18
|
+
return !!t && /^gh_/i.test(t);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { r as isContactId, o as isContactOfficialId, e as isIMContactId, n as isIMRoomId, t as isRoomId };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { parseString as t } from "xml2js";
|
|
2
|
+
|
|
3
|
+
import { log as r } from "wechaty-puppet";
|
|
4
|
+
|
|
5
|
+
async function e(e) {
|
|
6
|
+
const n = e.indexOf("<");
|
|
7
|
+
return 0 !== n && (e = e.substring(n, e.length)), new Promise((n => {
|
|
8
|
+
t(e, {
|
|
9
|
+
explicitArray: !1
|
|
10
|
+
}, ((t, e) => (t && 0 !== Object.keys(t).length && r.warn(JSON.stringify(t)), n(e))));
|
|
11
|
+
}));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { e as xmlToJson };
|
package/dist/esm/mod.js
ADDED