@juzi/wechaty 1.0.21 → 1.0.24
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/cjs/src/config.d.ts +2 -0
- package/dist/cjs/src/config.d.ts.map +1 -1
- package/dist/cjs/src/config.js +3 -1
- package/dist/cjs/src/config.js.map +1 -1
- package/dist/cjs/src/package-json.js +4 -4
- package/dist/cjs/src/package-json.js.map +1 -1
- package/dist/cjs/src/pure-functions/update.d.ts +2 -1
- package/dist/cjs/src/pure-functions/update.d.ts.map +1 -1
- package/dist/cjs/src/pure-functions/update.js +18 -6
- package/dist/cjs/src/pure-functions/update.js.map +1 -1
- package/dist/cjs/src/schemas/contact-events.d.ts +14 -2
- package/dist/cjs/src/schemas/contact-events.d.ts.map +1 -1
- package/dist/cjs/src/schemas/contact-events.js.map +1 -1
- package/dist/cjs/src/schemas/room-events.d.ts +4 -1
- package/dist/cjs/src/schemas/room-events.d.ts.map +1 -1
- package/dist/cjs/src/schemas/room-events.js +1 -0
- package/dist/cjs/src/schemas/room-events.js.map +1 -1
- package/dist/cjs/src/schemas/update.d.ts +30 -11
- package/dist/cjs/src/schemas/update.d.ts.map +1 -1
- package/dist/cjs/src/schemas/update.js +32 -0
- package/dist/cjs/src/schemas/update.js.map +1 -1
- package/dist/cjs/src/schemas/wechaty-events.d.ts +26 -2
- package/dist/cjs/src/schemas/wechaty-events.d.ts.map +1 -1
- package/dist/cjs/src/schemas/wechaty-events.js +7 -0
- package/dist/cjs/src/schemas/wechaty-events.js.map +1 -1
- package/dist/cjs/src/user-modules/contact.d.ts.map +1 -1
- package/dist/cjs/src/user-modules/contact.js +7 -10
- package/dist/cjs/src/user-modules/contact.js.map +1 -1
- package/dist/cjs/src/user-modules/tag-group.d.ts +54 -20
- package/dist/cjs/src/user-modules/tag-group.d.ts.map +1 -1
- package/dist/cjs/src/user-modules/tag-group.js +103 -44
- package/dist/cjs/src/user-modules/tag-group.js.map +1 -1
- package/dist/cjs/src/user-modules/tag.d.ts +57 -22
- package/dist/cjs/src/user-modules/tag.d.ts.map +1 -1
- package/dist/cjs/src/user-modules/tag.js +140 -48
- package/dist/cjs/src/user-modules/tag.js.map +1 -1
- package/dist/cjs/src/wechaty/wechaty-base.d.ts +7 -7
- package/dist/cjs/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
- package/dist/cjs/src/wechaty-mixins/io-mixin.d.ts +2 -2
- package/dist/cjs/src/wechaty-mixins/login-mixin.d.ts +5 -5
- package/dist/cjs/src/wechaty-mixins/misc-mixin.d.ts +5 -5
- package/dist/cjs/src/wechaty-mixins/plugin-mixin.d.ts +6 -6
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts +4 -4
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.js +152 -13
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.js.map +1 -1
- package/dist/cjs/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +1 -1
- package/dist/esm/src/config.d.ts +2 -0
- package/dist/esm/src/config.d.ts.map +1 -1
- package/dist/esm/src/config.js +2 -0
- package/dist/esm/src/config.js.map +1 -1
- package/dist/esm/src/package-json.js +4 -4
- package/dist/esm/src/package-json.js.map +1 -1
- package/dist/esm/src/pure-functions/update.d.ts +2 -1
- package/dist/esm/src/pure-functions/update.d.ts.map +1 -1
- package/dist/esm/src/pure-functions/update.js +16 -5
- package/dist/esm/src/pure-functions/update.js.map +1 -1
- package/dist/esm/src/schemas/contact-events.d.ts +14 -2
- package/dist/esm/src/schemas/contact-events.d.ts.map +1 -1
- package/dist/esm/src/schemas/contact-events.js.map +1 -1
- package/dist/esm/src/schemas/room-events.d.ts +4 -1
- package/dist/esm/src/schemas/room-events.d.ts.map +1 -1
- package/dist/esm/src/schemas/room-events.js +1 -0
- package/dist/esm/src/schemas/room-events.js.map +1 -1
- package/dist/esm/src/schemas/update.d.ts +30 -11
- package/dist/esm/src/schemas/update.d.ts.map +1 -1
- package/dist/esm/src/schemas/update.js +8 -1
- package/dist/esm/src/schemas/update.js.map +1 -1
- package/dist/esm/src/schemas/wechaty-events.d.ts +26 -2
- package/dist/esm/src/schemas/wechaty-events.d.ts.map +1 -1
- package/dist/esm/src/schemas/wechaty-events.js +7 -0
- package/dist/esm/src/schemas/wechaty-events.js.map +1 -1
- package/dist/esm/src/user-modules/contact.d.ts.map +1 -1
- package/dist/esm/src/user-modules/contact.js +7 -10
- package/dist/esm/src/user-modules/contact.js.map +1 -1
- package/dist/esm/src/user-modules/tag-group.d.ts +54 -20
- package/dist/esm/src/user-modules/tag-group.d.ts.map +1 -1
- package/dist/esm/src/user-modules/tag-group.js +104 -45
- package/dist/esm/src/user-modules/tag-group.js.map +1 -1
- package/dist/esm/src/user-modules/tag.d.ts +57 -22
- package/dist/esm/src/user-modules/tag.d.ts.map +1 -1
- package/dist/esm/src/user-modules/tag.js +119 -50
- package/dist/esm/src/user-modules/tag.js.map +1 -1
- package/dist/esm/src/wechaty/wechaty-base.d.ts +7 -7
- package/dist/esm/src/wechaty-mixins/gerror-mixin.d.ts +1 -1
- package/dist/esm/src/wechaty-mixins/io-mixin.d.ts +2 -2
- package/dist/esm/src/wechaty-mixins/login-mixin.d.ts +5 -5
- package/dist/esm/src/wechaty-mixins/misc-mixin.d.ts +5 -5
- package/dist/esm/src/wechaty-mixins/plugin-mixin.d.ts +6 -6
- package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts +4 -4
- package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
- package/dist/esm/src/wechaty-mixins/puppet-mixin.js +153 -14
- package/dist/esm/src/wechaty-mixins/puppet-mixin.js.map +1 -1
- package/dist/esm/src/wechaty-mixins/wechatify-user-module-mixin.d.ts +1 -1
- package/package.json +3 -3
- package/src/config.ts +3 -0
- package/src/package-json.ts +4 -4
- package/src/pure-functions/update.ts +20 -8
- package/src/schemas/contact-events.ts +22 -3
- package/src/schemas/room-events.ts +4 -0
- package/src/schemas/update.ts +42 -13
- package/src/schemas/wechaty-events.ts +77 -43
- package/src/user-modules/contact.ts +7 -10
- package/src/user-modules/tag-group.ts +135 -53
- package/src/user-modules/tag.ts +124 -57
- package/src/wechaty-mixins/puppet-mixin.ts +171 -15
|
@@ -1,41 +1,43 @@
|
|
|
1
|
+
import { concurrencyExecuter } from 'rx-queue';
|
|
1
2
|
import { log } from '../config.js';
|
|
3
|
+
import { poolifyMixin } from '../user-mixins/poolify.js';
|
|
2
4
|
import { validationMixin } from '../user-mixins/validation.js';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
import { wechatifyMixin, } from '../user-mixins/wechatify.js';
|
|
6
|
+
const MixinBase = wechatifyMixin(poolifyMixin(Object)());
|
|
7
|
+
class TagGroupMixin extends MixinBase {
|
|
8
|
+
id;
|
|
6
9
|
/**
|
|
7
10
|
*
|
|
8
|
-
*
|
|
11
|
+
* Instance properties
|
|
12
|
+
* @ignore
|
|
9
13
|
*
|
|
10
14
|
*/
|
|
11
|
-
|
|
12
|
-
log.verbose('TagGroup', 'create()');
|
|
13
|
-
return new this(payload);
|
|
14
|
-
}
|
|
15
|
+
payload;
|
|
15
16
|
/**
|
|
16
17
|
* @hideconstructor
|
|
17
18
|
*/
|
|
18
|
-
constructor(
|
|
19
|
+
constructor(id) {
|
|
19
20
|
super();
|
|
20
|
-
this.
|
|
21
|
+
this.id = id;
|
|
21
22
|
log.silly('TagGroup', 'constructor()');
|
|
22
23
|
}
|
|
23
|
-
id() {
|
|
24
|
-
return this.payload.id;
|
|
25
|
-
}
|
|
26
24
|
name() {
|
|
27
|
-
return this.payload.name;
|
|
25
|
+
return (this.payload && this.payload.name) || '';
|
|
28
26
|
}
|
|
29
|
-
static
|
|
30
|
-
|
|
31
|
-
log.verbose('TagGroup', 'list(%s)', forceSync);
|
|
32
|
-
if (this.pool.length > 0 && !forceSync) {
|
|
33
|
-
return this.pool;
|
|
34
|
-
}
|
|
27
|
+
static async list() {
|
|
28
|
+
log.verbose('TagGroup', 'list()');
|
|
35
29
|
try {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
const tagGroupIds = await this.wechaty.puppet.tagGroupList();
|
|
31
|
+
const idToTagGroup = async (id) => this.find(id).catch(e => this.wechaty.emitError(e));
|
|
32
|
+
const CONCURRENCY = 17;
|
|
33
|
+
const tagGroupIterator = concurrencyExecuter(CONCURRENCY)(idToTagGroup)(tagGroupIds);
|
|
34
|
+
const tagGroupList = [];
|
|
35
|
+
for await (const tagGroup of tagGroupIterator) {
|
|
36
|
+
if (tagGroup) {
|
|
37
|
+
tagGroupList.push(tagGroup);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return tagGroupList;
|
|
39
41
|
}
|
|
40
42
|
catch (e) {
|
|
41
43
|
this.wechaty.emitError(e);
|
|
@@ -43,26 +45,12 @@ class TagGroupMixin extends wechatifyMixinBase() {
|
|
|
43
45
|
return [];
|
|
44
46
|
}
|
|
45
47
|
}
|
|
46
|
-
static async sync() {
|
|
47
|
-
log.verbose('TagGroup', 'sync()');
|
|
48
|
-
await this.list(true);
|
|
49
|
-
}
|
|
50
|
-
static load(tagGroupId) {
|
|
51
|
-
log.verbose('TagGroup', 'load(%s)', tagGroupId);
|
|
52
|
-
for (const item of this.pool) {
|
|
53
|
-
if (item.id() === tagGroupId) {
|
|
54
|
-
return item;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return undefined;
|
|
58
|
-
}
|
|
59
48
|
static async createTagGroup(name) {
|
|
60
49
|
log.verbose('TagGroup', 'createTagGroup(%s, %s)', name);
|
|
61
50
|
try {
|
|
62
|
-
const
|
|
63
|
-
if (
|
|
64
|
-
const newTagGroup =
|
|
65
|
-
this.pool.push(newTagGroup);
|
|
51
|
+
const groupId = await this.wechaty.puppet.tagGroupAdd(name);
|
|
52
|
+
if (groupId) {
|
|
53
|
+
const newTagGroup = await this.find(groupId);
|
|
66
54
|
return newTagGroup;
|
|
67
55
|
}
|
|
68
56
|
}
|
|
@@ -74,8 +62,7 @@ class TagGroupMixin extends wechatifyMixinBase() {
|
|
|
74
62
|
static async deleteTagGroup(tagGroup) {
|
|
75
63
|
log.verbose('TagGroup', 'deleteTagGroup(%s)', tagGroup);
|
|
76
64
|
try {
|
|
77
|
-
await this.wechaty.puppet.tagGroupDelete(tagGroup.id
|
|
78
|
-
this.pool.splice(this.pool.indexOf(tagGroup), 1);
|
|
65
|
+
await this.wechaty.puppet.tagGroupDelete(tagGroup.id);
|
|
79
66
|
}
|
|
80
67
|
catch (e) {
|
|
81
68
|
this.wechaty.emitError(e);
|
|
@@ -83,13 +70,85 @@ class TagGroupMixin extends wechatifyMixinBase() {
|
|
|
83
70
|
}
|
|
84
71
|
}
|
|
85
72
|
async tags() {
|
|
86
|
-
|
|
73
|
+
log.verbose('TagGroup', 'tags(%s)', this);
|
|
74
|
+
try {
|
|
75
|
+
const tagIdentifierList = await this.wechaty.puppet.tagGroupTagList(this.id);
|
|
76
|
+
const identifierToTag = async (tag) => this.wechaty.Tag.find(tag).catch(e => this.wechaty.emitError(e));
|
|
77
|
+
const CONCURRENCY = 17;
|
|
78
|
+
const tagIterator = concurrencyExecuter(CONCURRENCY)(identifierToTag)(tagIdentifierList);
|
|
79
|
+
const tagList = [];
|
|
80
|
+
for await (const tag of tagIterator) {
|
|
81
|
+
if (tag) {
|
|
82
|
+
tagList.push(tag);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return tagList;
|
|
86
|
+
}
|
|
87
|
+
catch (e) {
|
|
88
|
+
this.wechaty.emitError(e);
|
|
89
|
+
log.error('TagGroup', 'list() exception: %s', e.message);
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
static async find(id) {
|
|
94
|
+
log.silly('TagGroup', 'find(%s)', id);
|
|
95
|
+
const tagGroup = this.wechaty.TagGroup.load(id);
|
|
96
|
+
try {
|
|
97
|
+
await tagGroup.ready();
|
|
98
|
+
}
|
|
99
|
+
catch (e) {
|
|
100
|
+
this.wechaty.emitError(e);
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
return tagGroup;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Force reload data for TagGroup, Sync data from low-level API again.
|
|
107
|
+
*
|
|
108
|
+
* @returns {Promise<this>}
|
|
109
|
+
* @example
|
|
110
|
+
* await tagGroup.sync()
|
|
111
|
+
*/
|
|
112
|
+
async sync() {
|
|
113
|
+
await this.wechaty.puppet.tagGroupPayloadDirty(this.id);
|
|
114
|
+
await this.ready(true);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* @ignore
|
|
118
|
+
*/
|
|
119
|
+
isReady() {
|
|
120
|
+
return !!(this.payload);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* `ready()` is For FrameWork ONLY!
|
|
124
|
+
*
|
|
125
|
+
* Please not to use `ready()` at the user land.
|
|
126
|
+
* If you want to sync data, use `sync()` instead.
|
|
127
|
+
*
|
|
128
|
+
* @ignore
|
|
129
|
+
*/
|
|
130
|
+
async ready(forceSync = false) {
|
|
131
|
+
log.silly('TagGroup', 'ready() @ %s with TagGroup="%s"', this.wechaty.puppet, this.id);
|
|
132
|
+
if (!forceSync && this.isReady()) { // already ready
|
|
133
|
+
log.silly('TagGroup', 'ready() isReady() true');
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
this.payload = await this.wechaty.puppet.tagGroupPayload(this.id);
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
this.wechaty.emitError(e);
|
|
141
|
+
log.verbose('TagGroup', 'ready() this.wechaty.puppet.tagGroupPayload(%s) exception: %s', this.id, e.message);
|
|
142
|
+
throw e;
|
|
143
|
+
}
|
|
87
144
|
}
|
|
88
145
|
toString() {
|
|
89
|
-
return `<TagGroup#${this.name() || this.id
|
|
146
|
+
return `<TagGroup#${this.name() || this.id}>`;
|
|
90
147
|
}
|
|
91
148
|
}
|
|
92
|
-
class
|
|
149
|
+
class TagGroupImplBase extends validationMixin(TagGroupMixin)() {
|
|
150
|
+
}
|
|
151
|
+
class TagGroupImpl extends validationMixin(TagGroupImplBase)() {
|
|
93
152
|
}
|
|
94
153
|
export { TagGroupImpl, };
|
|
95
154
|
//# sourceMappingURL=tag-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-group.js","sourceRoot":"","sources":["../../../../src/user-modules/tag-group.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tag-group.js","sourceRoot":"","sources":["../../../../src/user-modules/tag-group.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,56 +17,91 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
|
-
import
|
|
20
|
+
import * as PUPPET from '@juzi/wechaty-puppet';
|
|
21
21
|
import type { TagIdentifier } from '@juzi/wechaty-puppet/filters';
|
|
22
22
|
import type { Constructor } from 'clone-class';
|
|
23
23
|
import type { ContactInterface } from './contact.js';
|
|
24
24
|
import type { TagGroupInterface } from './tag-group.js';
|
|
25
|
-
declare const
|
|
25
|
+
declare const MixinBase: ((abstract new (...args: any[]) => {
|
|
26
26
|
readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
|
|
27
27
|
}) & {
|
|
28
28
|
readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
|
|
29
|
-
}) & {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
}) & ((abstract new (...args: any[]) => {}) & {
|
|
30
|
+
_pool?: Map<string, TagImplInterface> | undefined;
|
|
31
|
+
readonly pool: Map<string, TagImplInterface>;
|
|
32
|
+
load<L extends import("clone-class/dist/esm/src/constructor.js").ClassInterface<{}> & {
|
|
33
|
+
new (...args: any[]): TagImplInterface;
|
|
34
|
+
prototype: TagImplInterface;
|
|
35
|
+
} & import("../user-mixins/poolify.js").PoolifyMixin<TagImplInterface>>(this: L, id: string): TagImplInterface;
|
|
36
|
+
}) & ObjectConstructor;
|
|
37
|
+
declare class TagMixin extends MixinBase {
|
|
38
|
+
readonly key: string;
|
|
34
39
|
/**
|
|
35
40
|
*
|
|
36
|
-
*
|
|
41
|
+
* Instance properties
|
|
42
|
+
* @ignore
|
|
37
43
|
*
|
|
38
44
|
*/
|
|
39
|
-
|
|
45
|
+
payload?: PUPPET.payloads.Tag;
|
|
46
|
+
readonly id: string;
|
|
47
|
+
readonly groupId?: string;
|
|
40
48
|
/**
|
|
41
49
|
* @hideconstructor
|
|
42
50
|
*/
|
|
43
|
-
constructor(
|
|
44
|
-
id(): string;
|
|
51
|
+
constructor(key: string);
|
|
45
52
|
type(): PUPPET.types.Tag;
|
|
46
|
-
groupId(): string;
|
|
47
53
|
name(): string;
|
|
48
|
-
group(): TagGroupInterface | undefined
|
|
49
|
-
private static pool;
|
|
54
|
+
group(): Promise<TagGroupInterface | undefined>;
|
|
50
55
|
static list(forceSync?: boolean): Promise<TagInterface[]>;
|
|
51
|
-
static
|
|
52
|
-
|
|
56
|
+
static find(identifier: TagIdentifier): Promise<TagInterface | undefined>;
|
|
57
|
+
/**
|
|
58
|
+
* Force reload data for Tag, Sync data from low-level API again.
|
|
59
|
+
*
|
|
60
|
+
* @returns {Promise<this>}
|
|
61
|
+
* @example
|
|
62
|
+
* await tag.sync()
|
|
63
|
+
*/
|
|
64
|
+
sync(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* @ignore
|
|
67
|
+
*/
|
|
68
|
+
isReady(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* `ready()` is For FrameWork ONLY!
|
|
71
|
+
*
|
|
72
|
+
* Please not to use `ready()` at the user land.
|
|
73
|
+
* If you want to sync data, use `sync()` instead.
|
|
74
|
+
*
|
|
75
|
+
* @ignore
|
|
76
|
+
*/
|
|
77
|
+
ready(forceSync?: boolean): Promise<void>;
|
|
53
78
|
contactList(): Promise<ContactInterface[]>;
|
|
54
79
|
tag(contacts: ContactInterface | ContactInterface[]): Promise<void>;
|
|
55
80
|
static createTag(name: string, tagGroup?: TagGroupInterface): Promise<TagInterface | void>;
|
|
56
81
|
static deleteTag(tagInstance: TagInterface): Promise<void>;
|
|
57
82
|
toString(): string;
|
|
58
83
|
}
|
|
84
|
+
declare const TagImplBase_base: {
|
|
85
|
+
new (...args: any[]): {};
|
|
86
|
+
valid: (o: any) => o is TagImplInterface;
|
|
87
|
+
validInstance: (target: any) => target is TagMixin;
|
|
88
|
+
validInterface: (target: any) => target is TagImplInterface;
|
|
89
|
+
} & typeof TagMixin;
|
|
90
|
+
declare class TagImplBase extends TagImplBase_base {
|
|
91
|
+
}
|
|
92
|
+
interface TagImplInterface extends TagImplBase {
|
|
93
|
+
}
|
|
94
|
+
declare type TagProtectedProperty = 'ready';
|
|
95
|
+
declare type TagInterface = Omit<TagImplInterface, TagProtectedProperty>;
|
|
59
96
|
declare const TagImpl_base: {
|
|
60
97
|
new (...args: any[]): {};
|
|
61
98
|
valid: (o: any) => o is TagInterface;
|
|
62
|
-
validInstance: (target: any) => target is
|
|
99
|
+
validInstance: (target: any) => target is TagImplBase;
|
|
63
100
|
validInterface: (target: any) => target is TagInterface;
|
|
64
|
-
} & typeof
|
|
101
|
+
} & typeof TagImplBase;
|
|
65
102
|
declare class TagImpl extends TagImpl_base {
|
|
66
103
|
}
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
declare type TagConstructor = Constructor<TagInterface, typeof TagImpl>;
|
|
70
|
-
export type { TagConstructor, TagInterface, };
|
|
104
|
+
declare type TagConstructor = Constructor<TagImplInterface, Omit<typeof TagImpl, 'load'>>;
|
|
105
|
+
export type { TagConstructor, TagProtectedProperty, TagInterface, };
|
|
71
106
|
export { TagImpl, };
|
|
72
107
|
//# sourceMappingURL=tag.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/tag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/tag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAGjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAS9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,QAAA,MAAM,SAAS;;;;;;;;;;;sBAId,CAAA;AAED,cAAM,QAAS,SAAQ,SAAS;aAgBZ,GAAG,EAAE,MAAM;IAd7B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAA;IAC7B,SAAgB,EAAE,EAAE,MAAM,CAAA;IAC1B,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhC;;OAEG;gBAEe,GAAG,EAAE,MAAM;IAQ7B,IAAI,IAAK,MAAM,CAAC,KAAK,CAAC,GAAG;IAIzB,IAAI,IAAK,MAAM;IAIT,KAAK,IAAK,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;WAIzC,IAAI,CAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;WA2BjD,IAAI,CAAE,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAchF;;;;;;OAMG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAQ5B;;OAEG;IACH,OAAO,IAAK,OAAO;IAInB;;;;;;;OAOG;IACG,KAAK,CACT,SAAS,UAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IAwBV,WAAW,IAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAS3C,GAAG,CAAE,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;WAa7D,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;WAepF,SAAS,CAAE,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,QAAQ;CAIlB;;;;;;;AAED,cAAM,WAAY,SAAQ,gBAA6C;CAAG;AAC1E,UAAU,gBAAiB,SAAQ,WAAW;CAAG;AAEjD,aAAK,oBAAoB,GACrB,OAAO,CAAA;AAEX,aAAK,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAA;;;;;;;AAChE,cAAM,OAAQ,SAAQ,YAA4C;CAAG;AAErE,aAAK,cAAc,GAAG,WAAW,CAC/B,gBAAgB,EAChB,IAAI,CAAC,OAAO,OAAO,EAAE,MAAM,CAAC,CAC7B,CAAA;AAED,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,YAAY,GACb,CAAA;AACD,OAAO,EACL,OAAO,GACR,CAAA"}
|
|
@@ -1,50 +1,74 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
|
|
3
|
+
*
|
|
4
|
+
* @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
|
|
5
|
+
* Wechaty Contributors <https://github.com/wechaty>.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
import * as PUPPET from '@juzi/wechaty-puppet';
|
|
21
|
+
import { getTagKey } from '@juzi/wechaty-puppet/helpers';
|
|
22
|
+
import { concurrencyExecuter } from 'rx-queue';
|
|
23
|
+
import { FOUR_PER_EM_SPACE, log } from '../config.js';
|
|
24
|
+
import { poolifyMixin } from '../user-mixins/poolify.js';
|
|
2
25
|
import { validationMixin } from '../user-mixins/validation.js';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
26
|
+
import { wechatifyMixin, } from '../user-mixins/wechatify.js';
|
|
27
|
+
const MixinBase = wechatifyMixin(poolifyMixin(Object)());
|
|
28
|
+
class TagMixin extends MixinBase {
|
|
29
|
+
key;
|
|
6
30
|
/**
|
|
7
31
|
*
|
|
8
|
-
*
|
|
32
|
+
* Instance properties
|
|
33
|
+
* @ignore
|
|
9
34
|
*
|
|
10
35
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
36
|
+
payload;
|
|
37
|
+
id;
|
|
38
|
+
groupId;
|
|
15
39
|
/**
|
|
16
40
|
* @hideconstructor
|
|
17
41
|
*/
|
|
18
|
-
constructor(
|
|
42
|
+
constructor(key) {
|
|
19
43
|
super();
|
|
20
|
-
this.
|
|
44
|
+
this.key = key;
|
|
45
|
+
this.groupId = this.key.split(FOUR_PER_EM_SPACE)[0];
|
|
46
|
+
this.id = this.key.split(FOUR_PER_EM_SPACE)[1];
|
|
21
47
|
log.silly('Tag', 'constructor()');
|
|
22
48
|
}
|
|
23
|
-
id() {
|
|
24
|
-
return this.payload.id;
|
|
25
|
-
}
|
|
26
49
|
type() {
|
|
27
|
-
return this.payload.type;
|
|
28
|
-
}
|
|
29
|
-
groupId() {
|
|
30
|
-
return this.payload.groupId || '';
|
|
50
|
+
return (this.payload && this.payload.type) || PUPPET.types.Tag.Personal;
|
|
31
51
|
}
|
|
32
52
|
name() {
|
|
33
|
-
return this.payload.name;
|
|
53
|
+
return (this.payload && this.payload.name) || '';
|
|
34
54
|
}
|
|
35
|
-
group() {
|
|
36
|
-
return this.wechaty.TagGroup.
|
|
55
|
+
async group() {
|
|
56
|
+
return this.groupId ? this.wechaty.TagGroup.find(this.groupId) : undefined;
|
|
37
57
|
}
|
|
38
|
-
static pool = [];
|
|
39
58
|
static async list(forceSync = false) {
|
|
40
59
|
log.verbose('Tag', 'list(%s)', forceSync);
|
|
41
|
-
if (this.pool.length > 0 && !forceSync) {
|
|
42
|
-
return this.pool;
|
|
43
|
-
}
|
|
44
60
|
try {
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
61
|
+
const tagIdentifierList = await this.wechaty.puppet.tagTagList();
|
|
62
|
+
const identifierToTag = async (identifier) => this.find(identifier).catch(e => this.wechaty.emitError(e));
|
|
63
|
+
const CONCURRENCY = 17;
|
|
64
|
+
const tagIterator = concurrencyExecuter(CONCURRENCY)(identifierToTag)(tagIdentifierList);
|
|
65
|
+
const tagList = [];
|
|
66
|
+
for await (const tag of tagIterator) {
|
|
67
|
+
if (tag) {
|
|
68
|
+
tagList.push(tag);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return tagList;
|
|
48
72
|
}
|
|
49
73
|
catch (e) {
|
|
50
74
|
this.wechaty.emitError(e);
|
|
@@ -52,29 +76,74 @@ class TagMixin extends wechatifyMixinBase() {
|
|
|
52
76
|
return [];
|
|
53
77
|
}
|
|
54
78
|
}
|
|
55
|
-
static async
|
|
56
|
-
log.
|
|
57
|
-
|
|
79
|
+
static async find(identifier) {
|
|
80
|
+
log.silly('Tag', 'find(%s)', JSON.stringify(identifier));
|
|
81
|
+
const tag = this.wechaty.Tag.load(getTagKey(identifier));
|
|
82
|
+
try {
|
|
83
|
+
await tag.ready();
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
this.wechaty.emitError(e);
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
return tag;
|
|
58
90
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Force reload data for Tag, Sync data from low-level API again.
|
|
93
|
+
*
|
|
94
|
+
* @returns {Promise<this>}
|
|
95
|
+
* @example
|
|
96
|
+
* await tag.sync()
|
|
97
|
+
*/
|
|
98
|
+
async sync() {
|
|
99
|
+
await this.wechaty.puppet.tagPayloadDirty(getTagKey({
|
|
100
|
+
id: this.id,
|
|
101
|
+
groupId: this.groupId,
|
|
102
|
+
}));
|
|
103
|
+
await this.ready(true);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* @ignore
|
|
107
|
+
*/
|
|
108
|
+
isReady() {
|
|
109
|
+
return !!(this.payload && this.payload.name);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* `ready()` is For FrameWork ONLY!
|
|
113
|
+
*
|
|
114
|
+
* Please not to use `ready()` at the user land.
|
|
115
|
+
* If you want to sync data, use `sync()` instead.
|
|
116
|
+
*
|
|
117
|
+
* @ignore
|
|
118
|
+
*/
|
|
119
|
+
async ready(forceSync = false) {
|
|
120
|
+
log.silly('Tag', 'ready() @ %s with Tag key="%s"', this.wechaty.puppet, this.key);
|
|
121
|
+
if (!forceSync && this.isReady()) { // already ready
|
|
122
|
+
log.silly('Tag', 'ready() isReady() true');
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
try {
|
|
126
|
+
this.payload = await this.wechaty.puppet.tagPayload({
|
|
127
|
+
id: this.id,
|
|
128
|
+
groupId: this.groupId,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
catch (e) {
|
|
132
|
+
this.wechaty.emitError(e);
|
|
133
|
+
log.verbose('Tag', 'ready() this.wechaty.puppet.tagPayload(%s) exception: %s', this.id, e.message);
|
|
134
|
+
throw e;
|
|
65
135
|
}
|
|
66
|
-
return undefined;
|
|
67
136
|
}
|
|
68
137
|
async contactList() {
|
|
69
138
|
log.verbose('Tag', 'contactList() for tag : %s', this);
|
|
70
|
-
const tag = { id: this.id
|
|
139
|
+
const tag = { id: this.id, groupId: this.groupId };
|
|
71
140
|
const contactIds = await this.wechaty.puppet.tagTagContactList(tag);
|
|
72
141
|
const contactPromises = contactIds.map(id => this.wechaty.Contact.find({ id }));
|
|
73
142
|
return Promise.all(contactPromises);
|
|
74
143
|
}
|
|
75
144
|
async tag(contacts) {
|
|
76
145
|
log.verbose('Tag', 'tag(%s) for tag : %s', contacts, this);
|
|
77
|
-
const tag = { id: this.id
|
|
146
|
+
const tag = { id: this.id, groupId: this.groupId };
|
|
78
147
|
let contactIds;
|
|
79
148
|
if (Array.isArray(contacts)) {
|
|
80
149
|
contactIds = contacts.map(c => c.id);
|
|
@@ -87,24 +156,22 @@ class TagMixin extends wechatifyMixinBase() {
|
|
|
87
156
|
static async createTag(name, tagGroup) {
|
|
88
157
|
log.verbose('Tag', 'createTag(%s, %s)', tagGroup, name);
|
|
89
158
|
try {
|
|
90
|
-
const
|
|
91
|
-
if (
|
|
92
|
-
const newTag =
|
|
93
|
-
this.pool.push(newTag);
|
|
159
|
+
const tagIdentifier = await this.wechaty.puppet.tagTagAdd(name, tagGroup?.name());
|
|
160
|
+
if (tagIdentifier) {
|
|
161
|
+
const newTag = await this.find(tagIdentifier);
|
|
94
162
|
return newTag;
|
|
95
163
|
}
|
|
96
164
|
}
|
|
97
165
|
catch (e) {
|
|
98
166
|
this.wechaty.emitError(e);
|
|
99
|
-
log.error('
|
|
167
|
+
log.error('Tag', 'createTag() exception: %s', e.message);
|
|
100
168
|
}
|
|
101
169
|
}
|
|
102
170
|
static async deleteTag(tagInstance) {
|
|
103
171
|
log.verbose('Tag', 'deleteTag(%s, %s)', tagInstance);
|
|
104
|
-
const
|
|
172
|
+
const tagIdentifier = { id: tagInstance.id, groupId: tagInstance.groupId };
|
|
105
173
|
try {
|
|
106
|
-
await this.wechaty.puppet.tagTagDelete(
|
|
107
|
-
this.pool.splice(this.pool.indexOf(tagInstance), 1);
|
|
174
|
+
await this.wechaty.puppet.tagTagDelete(tagIdentifier);
|
|
108
175
|
}
|
|
109
176
|
catch (e) {
|
|
110
177
|
this.wechaty.emitError(e);
|
|
@@ -112,10 +179,12 @@ class TagMixin extends wechatifyMixinBase() {
|
|
|
112
179
|
}
|
|
113
180
|
}
|
|
114
181
|
toString() {
|
|
115
|
-
return `<Tag#${this.name() || this.id
|
|
182
|
+
return `<Tag#${this.name() || this.id}>`;
|
|
116
183
|
}
|
|
117
184
|
}
|
|
118
|
-
class
|
|
185
|
+
class TagImplBase extends validationMixin(TagMixin)() {
|
|
186
|
+
}
|
|
187
|
+
class TagImpl extends validationMixin(TagImplBase)() {
|
|
119
188
|
}
|
|
120
189
|
export { TagImpl, };
|
|
121
190
|
//# sourceMappingURL=tag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../../../src/user-modules/tag.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../../../src/user-modules/tag.ts"],"names":[],"mappings":"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"}
|