@juzi/wechaty
Version:
Wechaty is a RPA SDK for Chatbot Makers.
40 lines • 1.78 kB
JavaScript
import { log } from '@juzi/wechaty-puppet';
import { validationMixin } from '../user-mixins/validation.js';
import { wechatifyMixinBase, } from '../user-mixins/wechatify.js';
class WecomMixin extends wechatifyMixinBase() {
static async getExternalUserId(contactIds, serviceProviderId) {
return this.wechaty.puppet.getContactExternalUserId(contactIds, serviceProviderId);
}
static async getRoomAntiSpamStrategyList() {
return this.wechaty.puppet.getRoomAntiSpamStrategyList();
}
static async getRoomAntiSpamStrategyEffectRoomList(strategyId) {
return this.wechaty.puppet.getRoomAntiSpamStrategyEffectRoomList(strategyId);
}
static async applyRoomAntiSpamStrategy(strategyId, roomIds, active) {
const rawRoomIdSet = new Set(roomIds);
const rooms = (await this.wechaty.Room.batchLoadRooms(Array.from(rawRoomIdSet))).filter(room => room.owner()?.self());
const actualRoomIdSet = new Set(rooms.map(room => room.id));
const filteredRoomIds = Array.from(rawRoomIdSet).filter(id => !actualRoomIdSet.has(id));
if (filteredRoomIds.length) {
log.warn(`these rooms cannot be applied with anti-spam strategy: ${filteredRoomIds}`);
}
if (actualRoomIdSet.size) {
return this.wechaty.puppet.applyRoomAntiSpamStrategy(strategyId, Array.from(actualRoomIdSet), active);
}
}
static async getCorpMessageInterceptionStrategies() {
return this.wechaty.puppet.getCorpMessageInterceptionStrategies();
}
/*
* @hideconstructor
*/
constructor() {
super();
log.verbose('Wecom', 'constructor()');
}
}
class WecomImpl extends validationMixin(WecomMixin)() {
}
export { WecomImpl, };
//# sourceMappingURL=wecom.js.map