TGViewer
CodeShadow CodeShadow @codeshadowcources · 77 subscribers
Post #367 65
bot_handlers.py44.2 KB
🚀 Telegram-бот — Часть 3: Обработчики команд (bot_handlers.py)

➡️ПЕРВЫЙ ПОСТ ПО ПРОЕКТУ
➡️ЧАСТЬ 1
➡️ЧАСТЬ 2

Привет, кодеры! Продолжаем разбор Telegram-бота для планирования задач. В первом посте я рассказал о проекте, в Части 1 — про базу данных (config.py, db.py, models.py), в Части 2 — про хелперы и напоминания (utils.py, scheduler.py). Сегодня разберём bot_handlers.py — мозг бота, который обрабатывает команды и диалоги с пользователями.

🗂 bot_handlers.py: Логика взаимодействия

Этот файл содержит обработчики команд (/start, /done) и диалогов (добавление задач/занятий, настройки).

Для управления многошаговыми диалогами (например, ввод названия, даты, времени) используется простая FSM (finite-state machine) через словарь user_states.


Ключевые моменты:

— get_or_create_user: Создаёт или получает пользователя по Telegram ID.
— cmd_start: Запускает бота, показывает главное меню.
— FSM через user_states: Хранит состояние диалога (например, awaiting_task_title) и данные (payload).

Пример: добавление задачи — пользователь вводит название, дату, время напоминания.
Обработчики для диалогов: Проверяют состояние и обрабатывают ввод (например, handle_task_title, handle_task_datetime). 😞

Как работает добавление задачи:

Пользователь нажимает "➕ Добавить задачу" → состояние awaiting_task_title.
Вводит название → сохраняется в payload, состояние меняется на awaiting_task_datetime.
Вводит дату/время → парсится через parse_datetime_user, затем запрашивается время напоминания.

🔧 Советы:

⭐️FSM в памяти (user_states) подходит для MVP. Для продакшена используйте Redis или БД для хранения состояний.

⭐️Логируйте действия пользователей для отладки.

⭐️Добавляйте валидацию ввода, чтобы избежать ошибок (например, некорректные даты).

В следующем посте разберём
main.py (запуск бота) и подведём итоги. Хочешь больше примеров диалогов или деталей? Пиши в комментах!

🧠 Какой функционал для диалогов добавил бы ты? Делись идеями!

#CodeShadow #TelegramBot #Python #Telebot #Планировщик
More from @codeshadowcources
  1. Oct 9, 2026🖥
  2. Oct 8, 2026Наш внутренний проект для преподавателей. Думаю, получилось отлично)
  3. Oct 8, 2026🎮 Как мы внедрили геймификацию в работу преподавателей Геймификация давно вышла за предел…
  4. Oct 6, 2026😎
  5. Oct 3, 2026😐
  6. Sep 27, 2026Пусть Codex или Claude сами напишут MCP Теперь кейс посерьёзнее. Допустим, приходит клиент…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →