✨ Animation
Модуль animation предоставляет сервис анимации ожидания для Telegram UI в фреймворке codex-bot.
🧠 Почему так?
Пользовательский опыт (UX)
В боте некоторые действия (например, поиск, сканирование, перемещение) могут занимать несколько секунд. Без обратной связи пользователи могут подумать, что бот сломался. UIAnimationService предоставляет визуальную обратную связь (Progress Bars, Infinite Indicators), чтобы удерживать внимание пользователя во время длительных операций.
Динамическая инъекция
Сервис анимации спроектирован как неинвазивный. Он может инжектировать строку анимации в существующий UnifiedViewDTO, используя плейсхолдер ({ANIMATION}). Это позволяет добавлять анимации в любую фичу без изменения ее основной логики рендеринга.
🔄 Поток данных (The Flow)
- Выбор сценария: Разработчик выбирает сценарий анимации:
run_delayed_fetch,run_polling_loopилиrun_timed_polling. - Опрос (Polling): Сервис вызывает
PollerFuncдля проверки текущего статуса фоновой операции. - Генерация: На основе текущего прогресса генерируется ASCII-кадр анимации (например,
[■■□□□] 40%). - Инъекция: Строка анимации вставляется в текст
UnifiedViewDTO. - Обновление:
ViewSenderредактирует постоянное UI-сообщение новым кадром. - Завершение: После завершения операции отображается финальный результат, и анимация прекращается.
🗺️ Карта модуля
| Компонент | Описание |
|---|---|
| 📄 API Reference | Технические детали UIAnimationService. |
| 📄 Animation Type | PROGRESS_BAR, INFINITE и NONE. |
Последнее обновление: 2025-02-07