UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

135 lines (134 loc) 4.62 kB
"use strict"; 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;