Создает новый экземпляр бота
Optionaltype: TAppTypeТип платформы (по умолчанию Алиса)
OptionalbotController: BotController<TUserData>Контроллер с логикой
OptionaluseGlobalState: boolean = falseОпределяет нужно ли использовать глобальное состояние(mmApp). Не рекомендуется использовать.
Protected_Контекст приложения
Protected_Авторизационный токен пользователя. Используется для авторизованных запросов (например, в Алисе)
Protected_Контроллер с бизнес-логикой приложения. Обрабатывает команды и формирует ответы
Protected_Полученный запрос от пользователя. Может быть JSON-строкой, текстом или null
Protected_Экземпляр HTTP-сервера
Возвращает тип платформы
Protected_ProtectedОпределяет тип платформы и возвращает соответствующий класс для обработки
OptionaluserBotClass: TemplateTypeModel | null = nullПользовательский класс бота
Объект с типом платформы и классом обработчика
Добавляет команду для обработки пользовательских запросов
Уникальный идентификатор команды
Триггеры для активации команды
text.includes(...))..test(text)).isPattern учитывается только если в slots нет RegExp.RegExp, isPattern = false игнорируется, и каждый элемент
обрабатывается согласно своему типу.Optionalcb: (userCommand: string, botController: TBotController) => string | voidФункция-обработчик команды
Использовать регулярные выражения (по умолчанию false)
Простая команда со словами:
appContext.addCommand(
  'greeting',
  ['привет', 'здравствуй'],
  (cmd, ctrl) => {
    if (ctrl) ctrl.text = 'Здравствуйте!';
  }
);
Команда с регулярными выражениями:
// Обработка чисел от 1 до 999
bot.addCommand(
  'number',
  ['\\b([1-9]|[1-9][0-9]|[1-9][0-9][0-9])\\b'],
  (cmd, ctrl) => {
    if (ctrl) ctrl.text = `Вы ввели число: ${cmd}`;
  },
  true  // включаем поддержку регулярных выражений
);
Команда с доступом к состоянию:
bot.addCommand(
  'stats',
  ['статистика'],
  async (cmd, ctrl) => {
    if (ctrl) {
      // Доступ к пользовательским данным
      const visits = ctrl.userData?.visits || 0;
      ctrl.text = `Вы использовали бота ${visits} раз`;
      // Доступ к кнопкам и другим UI элементам
      ctrl.buttons
        .addBtn('Сбросить статистику')
        .addBtn('Закрыть');
    }
  }
);
Удаляет все команды
Возвращает контекст приложения
Инициализирует контроллер с бизнес-логикой бота Устанавливает контроллер, который будет обрабатывать команды и формировать ответы
Контроллер бота
Инициализирует конфигурацию приложения
Конфигурация приложения
Инициализирует тип бота через GET-параметры Если в URL присутствует параметр type с корректным значением, устанавливает соответствующий тип платформы
true если инициализация прошла успешно
Запускает обработку запроса Выполняет основную логику бота и возвращает результат
OptionaluserBotClass: TemplateTypeModel | null = nullПользовательский класс бота
Результат выполнения бота
Задает конфигурацию приложения Устанавливает настройки бота, включая интенты, базу данных и другие параметры
Конфигурация приложения
Устанавливает контент запроса Используется для передачи данных от пользователя в бота
Контент запроса
Устанавливает режим разработки
Флаг включения режима разработки
Устанавливает контроллер с базой данных
Запускает HTTP-сервер для обработки запросов. Создает сервер на указанном хосте и порту
Имя хоста
Порт
OptionaluserBotClass: TemplateTypeModel | null = nullПользовательский класс бота
Основной класс для работы с ботом Отвечает за инициализацию, конфигурацию и запуск бота Поддерживает различные платформы: Алиса, Маруся, Telegram, VK, Viber и др.
Bot
Example
Создание простого бота:
Example
Использование с базой данных:
Example
Создание бота для Telegram: