UNPKG

umbot

Version:

Universal bot(vk, telegram, viber) or skills for Yandex.Alisa, Маруся and sber

94 lines (93 loc) 3.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MarusiaCard = void 0; const TemplateCardTypes_1 = require("./TemplateCardTypes"); const button_1 = require("../../button"); const ImageTokens_1 = require("../../../models/ImageTokens"); const Text_1 = require("../../../utils/standard/Text"); class MarusiaCard extends TemplateCardTypes_1.TemplateCardTypes { static MARUSIA_CARD_BIG_IMAGE = 'BigImage'; static MARUSIA_CARD_ITEMS_LIST = 'ItemsList'; static MARUSIA_MAX_IMAGES = 5; async _getItem() { const items = []; const images = this.images.slice(0, MarusiaCard.MARUSIA_MAX_IMAGES); for (const image of images) { let button = image.button.getButtons(button_1.Buttons.T_ALISA_CARD_BUTTON); if (!button?.text) { button = null; } if (!image.imageToken) { if (image.imageDir) { const mImage = new ImageTokens_1.ImageTokens(); mImage.type = ImageTokens_1.ImageTokens.T_MARUSIA; mImage.path = image.imageDir; image.imageToken = await mImage.getToken(); } } const item = { title: Text_1.Text.resize(image.title, 128), }; item.description = Text_1.Text.resize(image.desc, 256); if (image.imageToken) { item.image_id = image.imageToken; } if (button && !this.isUsedGallery) { item.button = button; } items.push(item); } return items; } async getCard(isOne) { this.button.type = button_1.Buttons.T_ALISA_CARD_BUTTON; const countImage = this.images.length; if (countImage) { if (isOne) { if (!this.images[0].imageToken) { if (this.images[0].imageDir) { const mImage = new ImageTokens_1.ImageTokens(); mImage.type = ImageTokens_1.ImageTokens.T_MARUSIA; mImage.path = this.images[0].imageDir; this.images[0].imageToken = await mImage.getToken(); } } if (this.images[0].imageToken) { let button = this.images[0].button.getButtons(button_1.Buttons.T_ALISA_CARD_BUTTON); if (!button?.text) { button = this.button.getButtons(); } const object = { type: MarusiaCard.MARUSIA_CARD_BIG_IMAGE, image_id: this.images[0].imageToken, title: Text_1.Text.resize(this.images[0].title, 128), description: Text_1.Text.resize(this.images[0].desc, 256), }; if (button?.text) { object.button = button; } return object; } } else { const object = { type: MarusiaCard.MARUSIA_CARD_ITEMS_LIST, header: { text: Text_1.Text.resize(this.title || '', 64), }, }; object.items = await this._getItem(); const btn = this.button.getButtons(button_1.Buttons.T_ALISA_CARD_BUTTON); if (btn?.text) { object.footer = { text: btn.text, button: btn, }; } return object; } } return null; } } exports.MarusiaCard = MarusiaCard;