Files
BotPages/README.md

3.3 KiB
Raw Blame History

BotPages

BotPages — кроссплатформенный фреймворк для создания диалоговых ботов с моделью страниц (pagebased 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

Быстрый старт (локально)

  1. Клонируйте репозиторий:
git clone https://git.frigat.duckdns.org/FrigaT/BotPages.git
cd BotPages
  1. Соберите решения:
dotnet build
  1. Запуск демо (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.