Пользовательский контроллер базы данных
Флаг сохранения данных в базу данных
Тип платформы приложения
Конфигурация приложения
Параметры приложения
Кастомный HTTP-клиент для выполнения всех исходящих запросов библиотеки.
По умолчанию используется глобальный fetch
.
Вы можете заменить его на любой совместимый клиент (например, axios, undici, got),
реализующий интерфейс:
(input: RequestInfo, init?: RequestInit) => Promise<Response>
* Это позволяет:
const bot = new Bot();
const ctx = bot.getAppContext();
ctx.httpClient = async (url, options) => {
// добавляем таймаут 5 сек
const controller = new AbortController();
const id = setTimeout(() => controller.abort(), 5000);
try {
const res = await fetch(url, { ...options, signal: controller.signal });
clearTimeout(id);
return res;
} catch (e) {
clearTimeout(id);
throw e;
}
};
Добавленные команды для обработки
Получить текущее подключение к базе данных
Возвращает текущий режим работы приложения
true, если включен режим разработки
Закрыть подключение к базе данных
Устанавливает конфигурацию приложения
Пользовательская конфигурация
Устанавливает параметры приложения
Пользовательские параметры
Добавляет команду для обработки пользовательских запросов
Уникальный идентификатор команды
Триггеры для активации команды
Optional
cb: (userCommand: string, botController: TBotController) => string | voidФункция-обработчик команды
Использовать регулярные выражения (по умолчанию false)
Простая команда со словами:
appContext.addCommand(
'greeting',
['привет', 'здравствуй'],
(cmd, ctrl) => {
if (ctrl) ctrl.text = 'Здравствуйте!';
}
);
Команда с регулярными выражениями:
// Обработка чисел от 1 до 999
appContext.addCommand(
'number',
['\\b([1-9]|[1-9][0-9]|[1-9][0-9][0-9])\\b'],
(cmd, ctrl) => {
if (ctrl) ctrl.text = `Вы ввели число: ${cmd}`;
},
true // включаем поддержку регулярных выражений
);
Команда с доступом к состоянию:
appContext.addCommand(
'stats',
['статистика'],
async (cmd, ctrl) => {
if (ctrl) {
// Доступ к пользовательским данным
const visits = ctrl.userData?.visits || 0;
ctrl.text = `Вы использовали бота ${visits} раз`;
// Доступ к кнопкам и другим UI элементам
ctrl.buttons
.addBtn('Сбросить статистику')
.addBtn('Закрыть');
}
}
);
Удаляет команду
Имя команды
Удаляет все команды
Логирование ошибки
Optional
meta: Record<string, unknown>Логирование предупреждения
Optional
meta: Record<string, unknown>Устанавливает способ хранения пользовательских данных
true для сохранения в БД, false для сохранения в файл
Сохраняет данные в JSON файл
Имя файла
Данные для сохранения
true в случае успешного сохранения
Сохраняет лог ошибки
Имя файла лога
Текст ошибки
true в случае успешного сохранения
AppContext Основной класс приложения
Предоставляет статические методы и свойства для управления конфигурацией, командами и состоянием приложения.
Example