umbot
Version:
Universal bot(vk, telegram, viber) or skills for Yandex.Alisa, Маруся and sber
112 lines (111 loc) • 4.43 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AlisaCard = void 0;
const TemplateCardTypes_1 = require("./TemplateCardTypes");
const button_1 = require("../../button");
const Text_1 = require("../../../utils/standard/Text");
const ImageTokens_1 = require("../../../models/ImageTokens");
class AlisaCard extends TemplateCardTypes_1.TemplateCardTypes {
static ALISA_CARD_BIG_IMAGE = 'BigImage';
static ALISA_CARD_ITEMS_LIST = 'ItemsList';
static ALISA_MAX_IMAGES = 5;
static ALISA_MAX_GALLERY_IMAGES = 7;
async _getItem() {
const items = [];
const maxCount = this.isUsedGallery
? AlisaCard.ALISA_MAX_GALLERY_IMAGES
: AlisaCard.ALISA_MAX_IMAGES;
const images = this.images.slice(0, maxCount);
for (const image of images) {
let button = null;
if (!this.isUsedGallery) {
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_ALISA;
mImage.path = image.imageDir;
image.imageToken = await mImage.getToken();
}
}
const item = {
title: Text_1.Text.resize(image.title, 128),
};
if (!this.isUsedGallery) {
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_ALISA;
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: AlisaCard.ALISA_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 {
if (this.isUsedGallery) {
const object = {
type: 'ImageGallery',
};
object.items = await this._getItem();
return object;
}
else {
const object = {
type: AlisaCard.ALISA_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.AlisaCard = AlisaCard;