umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
135 lines (134 loc) • 4.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SoundTokens = void 0;
const Model_1 = require("./db/Model");
const RULES = [
{
name: ['soundToken', 'path'],
type: 'string',
max: 150,
},
{
name: ['platform'],
type: 'string',
},
];
const ATTRS_LABEL = {
soundToken: 'ID',
path: 'Sound path',
platform: 'Platform name',
};
/**
* Модель для управления звуковыми файлами в различных платформах.
* Предоставляет единый интерфейс для работы со звуковыми файлами в Алисе, ВКонтакте, Telegram, Марусе и тд.
*
* @extends Model<ISoundModelState>
*
* @example
* // Создание и загрузка звукового файла для Telegram
* const sound = new SoundTokens(appContext);
* sound.path = '/path/to/audio.mp3';
* sound.platform = T_TELEGRAM;
* const token = await sound.selectOne();
* if (token) {
* console.log('Токен для звукового файла успешно получен, токен:', token);
* } else {
* || Загрузка аудиофайла
* }
*/
class SoundTokens extends Model_1.Model {
/**
* Название таблицы для хранения данных о звуковых файлах.
*/
static TABLE_NAME = 'SoundTokens';
/**
* Флаг, указывающий, что передается содержимое файла.
* Если true, то path содержит содержимое файла, а не путь к нему.
* @defaultValue false
*/
isAttachContent;
/**
* Конструктор класса SoundTokens.
* Предоставляет унифицированный интерфейс для хранения данных о загруженных аудиофайлах.
*/
constructor(appContext) {
super(appContext);
this.soundToken = null;
this.path = null;
this.platform = 'unknown';
this.isAttachContent = false;
}
getId() {
return 'soundToken';
}
/**
* Идентификатор звукового файла.
* Уникальный идентификатор, используемый для ссылки на звуковой файл в API различных платформ.
* @example "doc123456789" для VK, "file_id_123456" для Telegram
*/
get soundToken() {
return this.state.soundToken;
}
/**
* Устанавливает идентификатор звукового файла.
* @param soundToken
*/
set soundToken(soundToken) {
this.state.soundToken = soundToken;
}
/**
* Путь к файлу.
* Может быть URL-адресом звукового файла или путем к локальному файлу.
* @example "/path/to/audio.mp3" или "http://localhost/audio.mp3"
*/
get path() {
return this.state.path;
}
/**
* Устанавливает путь к файлу.
* @param path
*/
set path(path) {
this.state.path = path;
}
/**
* Тип платформы.
* Определяет, для какой платформы предназначен звуковой файл.
*/
get platform() {
return this.state.platform;
}
/**
* Устанавливает тип платформы.
* @param platform
*/
set platform(platform) {
this.state.platform = platform;
}
/**
* Возвращает название таблицы/файла с данными.
*
* @return {string} Название таблицы для хранения данных о звуковых файлах
*/
tableName() {
return SoundTokens.TABLE_NAME;
}
/**
* Определяет правила валидации для полей модели.
*
* @return {IModelRules[]} Массив правил валидации
*/
rules() {
return RULES;
}
/**
* Возвращает метки атрибутов таблицы.
* Используется для отображения понятных названий полей.
*
* @return {ISoundModelState} Объект с метками атрибутов
*/
attributeLabels() {
return ATTRS_LABEL;
}
}
exports.SoundTokens = SoundTokens;