@juzi/wechaty
Version:
Wechaty is a RPA SDK for Chatbot Makers.
83 lines • 3.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MomentImpl = void 0;
/**
* Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
*
* @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
* Wechaty Contributors <https://github.com/wechaty>.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
const wechaty_puppet_1 = require("@juzi/wechaty-puppet");
const validation_js_1 = require("../user-mixins/validation.js");
const wechatify_js_1 = require("../user-mixins/wechatify.js");
const rx_queue_1 = require("rx-queue");
class MomentMixin extends (0, wechatify_js_1.wechatifyMixinBase)() {
static async post(post) {
// post new moment
return this.wechaty.publish(post);
}
static async unPost(post) {
return this.wechaty.unpublish(post);
}
static timeline(contact) {
// list all moment
void contact;
return [];
}
static async signature(signature) {
wechaty_puppet_1.log.verbose('Moment', 'signature(%s)', signature);
return this.wechaty.puppet.momentSignature(signature);
}
static async coverage(coverage) {
wechaty_puppet_1.log.verbose('Moment', 'coverage(%s)', JSON.stringify(coverage));
return this.wechaty.puppet.momentCoverage(coverage);
}
static async visibleList() {
wechaty_puppet_1.log.verbose('Moment', 'visibleList()');
try {
const contactIdList = await this.wechaty.puppet.momentVisibleList();
const idToContact = async (id) => this.wechaty.Contact.find({ id }).catch(e => this.wechaty.emitError(e));
/**
* we need to use concurrencyExecuter to reduce the parallel number of the requests
*/
const CONCURRENCY = 17;
const contactIterator = (0, rx_queue_1.concurrencyExecuter)(CONCURRENCY)(idToContact)(contactIdList);
const contactList = [];
for await (const contact of contactIterator) {
if (contact) {
contactList.push(contact);
}
}
return contactList;
}
catch (e) {
this.wechaty.emitError(e);
wechaty_puppet_1.log.error('Moment', 'this.wechaty.puppet.momentVisibleList() rejected: %s', e.message);
return [];
}
}
/*
* @hideconstructor
*/
constructor() {
super();
wechaty_puppet_1.log.verbose('Moment', 'constructor()');
}
}
class MomentImpl extends (0, validation_js_1.validationMixin)(MomentMixin)() {
}
exports.MomentImpl = MomentImpl;
//# sourceMappingURL=moment.js.map