🧰 Helper
Модуль helper предоставляет вспомогательные утилиты для извлечения контекста и нормализации данных из событий Telegram в фреймворке codex-bot.
🧠 Почему так?
Нормализация контекста
В aiogram разные типы событий (например, Message, CallbackQuery) имеют разную структуру для доступа к ID пользователя, чата и сообщения. ContextHelper предоставляет унифицированный способ извлечения этих данных в иммутабельный BaseBotContext. Это гарантирует, что ваша бизнес-логика не зависит от конкретного типа события.
Поддержка каналов и групп
В некоторых случаях (например, посты в канале) поле from_user может отсутствовать. ContextHelper обрабатывает такие ситуации, предоставляя фолбэк (например, используя chat_id как user_id), гарантируя консистентность управления сессиями бота во всех типах чатов.
🔄 Поток данных (The Flow)
- Извлечение: Хендлер получает
MessageилиCallbackQueryи вызываетContextHelper.extract_base_context(event). - Нормализация: Хелпер определяет тип события и извлекает
user_id,chat_id,message_idиthread_id. - Фолбэк: Если
from_userотсутствует,chat_idиспользуется какuser_idдля уникальности сессии. - Создание: Возвращается иммутабельный
BaseBotContext, готовый к использованию вDirectorили оркестраторе.
🗺️ Карта модуля
| Компонент | Описание |
|---|---|
| 📄 API Reference | Технические детали ContextHelper. |
| 📄 Context Helper | Извлечение BaseBotContext из событий Telegram. |
Последнее обновление: 2025-02-07