Бот для поиска и мониторинга свободных мест на поездах РЖД с удобным интерфейсом и автоматическими уведомлениями.
- 🔍 Поиск поездов по маршруту и дате
- 🛏️ Выбор типа места (плацкарт, купе, СВ)
- ⬆️⬇️ Выбор полки для купе (верхняя/нижняя)
- 🔔 Автоматические уведомления о найденных местах
- 📊 История мониторинга и статистика
- 💾 База данных для хранения подписок
- 🎯 Удобный интерфейс с inline-кнопками
git clone <repository-url>
cd rzdcp env.example .env
nano .env # Отредактируйте файл и установите токен бота- Найдите @BotFather в Telegram
- Отправьте команду
/newbot - Следуйте инструкциям для создания бота
- Скопируйте полученный токен в файл
.env
docker-compose up -ddocker-compose stopgit clone <repository-url>
cd rzdpip install -r requirements.txtexport TELEGRAM_BOT_TOKEN="your_bot_token_here"- Найдите @BotFather в Telegram
- Отправьте команду
/newbot - Следуйте инструкциям для создания бота
- Скопируйте полученный токен
python run_bot.py/start- начать работу с ботом/help- справка по использованию/my_subscriptions- просмотр активных подписок
- Ввод маршрута: Укажите станцию отправления и прибытия
- Выбор даты: Введите дату поездки в формате ДД.ММ.ГГГГ
- Выбор поезда: Выберите поезд из найденных вариантов
- Настройка мониторинга: Выберите тип места и полку (для купе)
- Получение уведомлений: Бот автоматически уведомит о найденных местах
rzd/
├── main.py # Основной файл бота
├── rzd_parser.py # Парсер данных с сайта РЖД
├── database.py # Работа с базой данных
├── monitoring.py # Сервис мониторинга
├── run_bot.py # Скрипт запуска
├── requirements.txt # Зависимости Python
├── Dockerfile # Docker образ
├── docker-compose.yml # Docker Compose конфигурация
├── env.example # Пример переменных окружения
├── .dockerignore # Исключения для Docker
├── README.md # Документация
├── QUICK_START.md # Быстрый старт
└── data/ # Данные (создается автоматически)
└── rzd_bot.db # База данных SQLite
Все настройки можно изменить в файле .env:
# Основные настройки
TELEGRAM_BOT_TOKEN=your_bot_token_here
MONITORING_INTERVAL=300 # Интервал проверки в секундах
LOG_LEVEL=INFO # Уровень логирования
# Дополнительные настройки
MAX_RETRIES=3 # Количество попыток при ошибке
RETRY_DELAY=60 # Задержка между попыткамиПо умолчанию бот проверяет доступность мест каждые 5 минут. Для изменения интервала отредактируйте MONITORING_INTERVAL в файле .env.
Бот использует SQLite для хранения данных. База данных создается автоматически при первом запуске и сохраняется в папке data/.
Логи сохраняются в папку logs/ и выводятся в консоль. Для изменения уровня логирования отредактируйте LOG_LEVEL в файле .env.
# Просмотр логов
docker-compose logs -f rzd-bot
# Перезапуск бота
docker-compose restart rzd-bot
# Обновление образа
docker-compose pull && docker-compose up -d
# Полная остановка с удалением данных
docker-compose down -v- users - информация о пользователях
- subscriptions - подписки на мониторинг
- notifications - история уведомлений
- check_history - история проверок доступности
- Создайте новый модуль или расширьте существующий
- Добавьте обработчики в
main.py - Обновите базу данных при необходимости
- Протестируйте функциональность
Для отладки включите подробное логирование:
logging.basicConfig(level=logging.DEBUG)- Парсинг данных зависит от структуры сайта РЖД
- При изменении сайта может потребоваться обновление парсера
- Интервал проверки ограничен для избежания блокировки
- Требуется стабильное интернет-соединение
- Токен бота хранится в переменных окружения
- Данные пользователей шифруются в базе данных
- Ограничена частота запросов к сайту РЖД
Этот проект создан в образовательных целях. Используйте ответственно и в соответствии с правилами сайта РЖД.
При возникновении проблем:
- Проверьте логи бота
- Убедитесь в правильности токена
- Проверьте подключение к интернету
- Создайте issue в репозитории
Для обновления бота:
- Остановите текущий процесс
- Обновите код
- Установите новые зависимости (если есть)
- Перезапустите бота
Удачного использования! 🚂✨