umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
117 lines (116 loc) • 6.34 kB
TypeScript
import { ImageTokens, SoundTokens } from '../../../models';
import { BotController } from '../../../controller';
import { ISoundInfo } from '../../../core';
import { IButtonType, IEffect, ISound } from '../../../components';
import { IAlisaRequest } from '../Alisa/interfaces/IAlisaPlatform';
/**
* Тип для обработки запроса для загрузки изображения
*/
export type TImageCallback = (model: ImageTokens) => Promise<string | null>;
/**
* Возвращает токен для изображения.
* В случае, если найти токен в базе не удалось, отрабатывает обработчик, который отправляет запрос на получение токена.
* @param path Путь до изображения
* @param platform Платформа для которой нужно получить токен
* @param controller Контроллер приложения
* @param cb Обработчик, который вернет токен.
*/
export declare function getImageToken(path: string, platform: string, controller: BotController, cb: TImageCallback): Promise<string | null>;
/**
* Тип для обработки запроса для загрузки аудио
*/
export type TSoundCallback = (model: SoundTokens) => Promise<string | null>;
/**
* Возвращает токен для аудио.
* В случае, если найти токен в базе не удалось, отрабатывает обработчик, который отправляет запрос на получение токена.
* @param path Путь до аудиофайла
* @param platform Платформа для которой нужно получить токен
* @param controller Контроллер приложения
* @param cb Обработчик, который вернет токен.
*/
export declare function getSoundToken(path: string, platform: string, controller: BotController, cb: TSoundCallback): Promise<string | null>;
/**
* Ищет в запросе команду для паузы, и заменяет ее на корректный вид(sil).
*
* @param {string} text - Текст, который будет озвучен пользователю
* @returns {string} - Строка с паузой в формате sil <[ms]>
*/
export declare function getPause(text: string): string;
/**
* Заменяет звуковой токен в тексте на соответствующий звук
*
* @param {string} key - Ключ звука для замены
* @param {string | string[]} value - Значение или массив значений для замены
* @param {string} text - Исходный текст
* @returns {string} - Текст с замененными звуками
*
* @example
* ```ts
* // Замена одиночного звука
* const text = replaceSound(
* '#game_win#',
* '<speaker audio="alice-sounds-game-win-1.opus">',
* 'Поздравляем #game_win# с победой!'
* );
*
* // Замена на массив звуков
* const text = replaceSound(
* '#nature_rain#',
* [
* '<speaker audio="alice-sounds-nature-rain-1.opus">',
* '<speaker audio="alice-sounds-nature-rain-2.opus">'
* ],
* 'На улице #nature_rain# идет дождь'
* );
* ```
*/
export declare function replaceSound(key: string, value: string | string[], text: string): string;
/**
* Удаляет все звуковые токены из текста
*
* @param {string} text - Исходный текст
* @returns {string} - Текст без звуковых токенов
*
* @example
* ```ts
* // Удаление звуковых токенов
* const text = removeSound('Текст #game_win# без #nature_rain# звуков');
* // Результат: 'Текст без звуков'
* ```
*/
export declare function removeSound(text: string): string;
/**
* Базовый метод для обработки tts.
* Основная задача метода - найти все ключи в запросе, и заменить их на корректные звуки/эффекты.
* По умолчанию используется в Алисе и Марусе.
* @param soundInfo - Информация необходимая для обработки аудио
* @param defaultSounds - Стандартные звуки
* @param defaultEffects - Стандартные эффекты
*/
/**
* Базовый метод для обработки tts.
* Основная задача метода - найти все ключи в запросе, и заменить их на корректные звуки/эффекты.
* По умолчанию используется в Алисе и Марусе.
* @param soundInfo - Информация необходимая для обработки аудио
* @param defaultSounds - Стандартные звуки
* @param defaultEffects - Стандартные эффекты
*/
export declare function defaultSoundProcessing(soundInfo: ISoundInfo, defaultSounds: ISound[], defaultEffects?: IEffect[]): string;
/**
* Базовая функция, которая инициализирует команду пользователя.
* Обрабатывает различные типы запросов и сохраняет команду в контроллере
* @param request Объект запроса от пользователя
* @param controller Контроллер приложения
*/
export declare function initUserCommand(request: IAlisaRequest, controller: BotController): void;
/**
* Возвращает корректный массив кнопок с учетом лимита
* @param buttons
* @param limit
*/
export declare function getCorrectButtons<TButton = IButtonType>(buttons: TButton[], limit?: number): TButton[];
/**
* Утилита для безопасного преобразования строки в объект
* @param data
*/
export declare function tryParse<TResult = Record<string, unknown>>(data: Record<string, unknown> | object | string | null | undefined): TResult | null;