UNPKG

wechaty-puppet

Version:

Abstract Puppet for Wechaty

56 lines 2.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sayableMixin = void 0; const config_js_1 = require("../config.js"); const message_js_1 = require("../schemas/message.js"); const sayable_js_1 = require("../schemas/sayable.js"); const sayableMixin = (mixinBase) => { class SayableMixin extends mixinBase { constructor(...args) { super(...args); config_js_1.log.verbose('PuppetSayableMixin', 'constructor()'); } async sayablePayload(sayableId) { config_js_1.log.verbose('PuppetMessageMixin', 'sayablePayload(%s)', sayableId); const payload = await this.messagePayload(sayableId); switch (payload.type) { case message_js_1.MessageType.Text: return sayable_js_1.sayablePayloads.text(payload.text || ''); case message_js_1.MessageType.Image: case message_js_1.MessageType.Attachment: case message_js_1.MessageType.Audio: case message_js_1.MessageType.Video: case message_js_1.MessageType.Emoticon: { const fileBox = await this.messageFile(sayableId); return sayable_js_1.sayablePayloads.attatchment(fileBox); } case message_js_1.MessageType.Contact: { const contactId = await this.messageContact(sayableId); return sayable_js_1.sayablePayloads.contact(contactId); } case message_js_1.MessageType.Url: { const urlLinkPayload = await this.messageUrl(sayableId); return sayable_js_1.sayablePayloads.url(urlLinkPayload); } case message_js_1.MessageType.MiniProgram: { const miniProgramPayload = await this.messageMiniProgram(sayableId); return sayable_js_1.sayablePayloads.miniProgram(miniProgramPayload); } case message_js_1.MessageType.Location: { const locationPayload = await this.messageLocation(sayableId); return sayable_js_1.sayablePayloads.location(locationPayload); } case message_js_1.MessageType.Post: { const postPayload = await this.postPayload(sayableId); return sayable_js_1.sayablePayloads.post(postPayload); } default: config_js_1.log.warn('PuppetSayableMixin', 'sayablePayload() can not convert not re-sayable type: %s(%s) for %s\n%s', message_js_1.MessageType[payload.type], payload.type, sayableId, new Error().stack); return undefined; } } } return SayableMixin; }; exports.sayableMixin = sayableMixin; //# sourceMappingURL=sayable-mixin.js.map