69ff3cf7d41d06c476aafd2bbafc2ccf9f1e7840
BotPages
BotPages — кроссплатформенный фреймворк для создания диалоговых ботов с моделью страниц (page‑based conversational framework).
Цели проекта:
- Простая модель страниц и навигации.
- Портируемость между мессенджерами через адаптеры.
- Поддержка middleware и декларативной системы команд.
- Минимум boilerplate и удобный developer experience.
Структура репозитория
BotPages.Core— ядро фреймворка: навигация, страницы, маршрутизация, реестр команд, middleware, абстракции адаптеров и хранилища состояния.BotPages.Telegram— адаптер для Telegram Bot API (реализацияIMessengerAdapter).Demo— пример приложения с несколькими страницами и конфигурацией адаптера.BotPages— мета‑проект для упаковки библиотек.docs/— внутренняя документация проекта (Quickstart, API reference и т.д.).
Требования
- .NET 8 SDK
- C# 12
Быстрый старт (локально)
- Клонируйте репозиторий:
git clone https://git.frigat.duckdns.org/FrigaT/BotPages.git
cd BotPages
- Соберите решения:
dotnet build
- Запуск демо (Telegram):
- Установите переменную окружения
TELEGRAM_TOKENс токеном бота.
setx TELEGRAM_TOKEN "<token>" # Windows
export TELEGRAM_TOKEN="<token>" # Linux/macOS
- Запустите demo:
dotnet run --project Demo
Простой пример конфигурации
var app = new BotPagesApp(stateStorage, logger)
.AddTelegramAdapter(token)
.AddDefaultPage<WelcomePage>()
.MapCommand<WelcomePage>('/start')
.AddMiddleware(new LoggingMiddleware(logger));
await app.Build(CancellationToken.None);
Ключевые концепции
SendRequest— единый формат запроса на отправку (текст, файлы, кнопки, опции). Адаптеры реализуютIMessengerAdapter.SendAsync(SendRequest).Page,StatefulPage,SingletonPage— модели страниц с жизненным циклом (OnEnter,OnUpdate,OnText,OnButton,OnFile,OnError).NavigationService— управление переходами между страницами.IPageMiddleware— middleware-конвейер, выполняющийся для каждого апдейта.
Документация
Полная внутренняя документация находится в docs/:
docs/GETTING_STARTED.md— быстрый старт и примеры конфигурации.docs/API_REFERENCE.md— краткий reference публичных API.docs/PROJECT_DOCUMENTATION.md— обзор архитектуры и компонентов.
Лицензия
Проект распространяется под лицензией MIT. Смотрите файл LICENSE.
Releases
25
BotPages_v0.6.1
Latest
Languages
C#
99.3%
PowerShell
0.4%
Shell
0.3%