Skip to content

🧰 Helper

⬅️ Back | 🏠 Docs Root

Модуль helper предоставляет вспомогательные утилиты для извлечения контекста и нормализации данных из событий Telegram в фреймворке codex-bot.


🧠 Почему так?

Нормализация контекста

В aiogram разные типы событий (например, Message, CallbackQuery) имеют разную структуру для доступа к ID пользователя, чата и сообщения. ContextHelper предоставляет унифицированный способ извлечения этих данных в иммутабельный BaseBotContext. Это гарантирует, что ваша бизнес-логика не зависит от конкретного типа события.

Поддержка каналов и групп

В некоторых случаях (например, посты в канале) поле from_user может отсутствовать. ContextHelper обрабатывает такие ситуации, предоставляя фолбэк (например, используя chat_id как user_id), гарантируя консистентность управления сессиями бота во всех типах чатов.


🔄 Поток данных (The Flow)

  1. Извлечение: Хендлер получает Message или CallbackQuery и вызывает ContextHelper.extract_base_context(event).
  2. Нормализация: Хелпер определяет тип события и извлекает user_id, chat_id, message_id и thread_id.
  3. Фолбэк: Если from_user отсутствует, chat_id используется как user_id для уникальности сессии.
  4. Создание: Возвращается иммутабельный BaseBotContext, готовый к использованию в Director или оркестраторе.

🗺️ Карта модуля

Компонент Описание
📄 API Reference Технические детали ContextHelper.
📄 Context Helper Извлечение BaseBotContext из событий Telegram.

Последнее обновление: 2025-02-07