Telegram-бот на pyTelegramBotAPI, который проводит анкетирование новых игроков, оценивает их уровень и генерирует персональные рекомендации по тренировкам на основе анкеты.
- Анкетирование — последовательно задаёт 10 вопросов (ФИО, возраст, рост, город, опыт игры, позиция, ударная рука, физическая форма, удобное время, телефон) через
/start. - Валидация ответов — регулярными выражениями проверяет формат каждого ответа (возраст 6–60 лет, рост 140–220 см, номер телефона по маске
+7XXXXXXXXXXи т.д.) и просит исправить некорректный ввод. - Оценка уровня игрока — правило-ориентированная логика на основе опыта (лет игры) и физической формы: 5 уровней от «Новичок» до «Профессионал».
- Персональные рекомендации — генерирует индивидуальный план: частота и продолжительность тренировок (в зависимости от возраста и уровня), акценты по позиции на площадке (либеро, доигровщик, центральный, диагональный, связующий, универсал), советы по физической подготовке.
- Уведомление администратора — отправляет тренеру полную анкету и краткие рекомендации, сохраняет каждую заявку в
volleyball_applications.json. - Команда
/myprofile— пользователь может посмотреть свою последнюю поданную анкету.
Python, pyTelegramBotAPI (telebot), регулярные выражения, JSON.
pip install -r requirements.txt
# токен и ID администратора передаются через переменные окружения, не хранятся в коде
export BOT_TOKEN="ваш_токен_от_BotFather"
export ADMIN_ID="ваш_telegram_id"
python bot.pyНа Windows (PowerShell):
$env:BOT_TOKEN = "ваш_токен_от_BotFather"
$env:ADMIN_ID = "ваш_telegram_id"
python bot.pyВ исходной версии скрипта токен бота был захардкожен прямо в коде. В этой версии он вынесен в переменные окружения (BOT_TOKEN, ADMIN_ID) — не коммитьте реальный токен в репозиторий. Если токен когда-либо публиковался или хранился в открытом виде, отзовите его через @BotFather (/revoke) и выпустите новый.