UNPKG

umbot

Version:

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

117 lines (116 loc) 6.34 kB
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;