Обзор

В этом разделе подробно описано, как maxo обрабатывает входящие события, маршрутизирует их и позволяет вам гибко управлять логикой бота. Архитектура построена на цепочке ответственности: от получения события (Update) до его обработки в конкретной функции (Handler).

Основные компоненты

  • Диспетчер и роутеры - организация структуры бота с помощью роутеров и диспетчера. Узнайте, как масштабировать приложение и разделять логику.

  • Фильтры - инструменты для фильтрации событий. Как использовать встроенные фильтры, писать свои и комбинировать их с помощью логических операторов.

  • Мидлвари - механизм перехвата событий. Различие между внешними (Outer) и внутренними (Inner) мидлварями и как они влияют на поток выполнения.

  • Обработчики и аргументы - всё о функциях-обработчиках: аргументы, контекст выполнения (Ctx) и внедрение зависимостей.

  • Состояния (FSM) - состояния (FSM). Как сохранять состояние диалога и данные между сообщениями.

  • Фасады - объекты для упрощения взаимодействия с API и ответов на события.

  • Обработка ошибок - перехват исключений и обработка ошибок, возникающих в процессе работы бота.

  • Сигналы - сигналы жизненного цикла (startup, shutdown) для инициализации и освобождения ресурсов.

  • Long Polling - механизм получения обновлений через Long Polling.

  • Webhooks - механизм получения обновлений через Webhook.

  • Инъекция бота в типы (BotMixin) - инъекция экземпляра бота в датаклассы MaxoType через BotMixin и реторту.