Автоматическая система мониторинга расписания игр на quizplease.ru с отправкой уведомлений в Telegram и полным CI/CD циклом. Работает 24/7 как systemd-сервис.
extract_classic_games.py — Основной модуль парсера с многоуровневой обработкой данныхtelegram_notifier.py — Telegram бот для отправки уведомлений о новых играхget_chat_id.py — Утилита для получения Chat ID Telegram пользователяconfig.py — Конфигурация проекта (токены, настройки)requirements.txt — Зависимости Python (BeautifulSoup4, requests, python-telegram-bot)quizplease-autoreg.service — Конфигурация Systemd сервиса для автозапускаПроблема: Сайт quizplease.ru имеет сложную HTML-структуру, которая может изменяться со временем, что приводит к сбоям парсинга.
Решение:
Проблема: Система должна работать надежно и автоматически восстанавливаться после сбоев сети, сервера или обновлений сайта.
Решение:
Проблема: Ручное обновление кода на сервере было трудоемким, подверженным ошибкам и требовало постоянного внимания.
Решение: CI/CD пайплайн на GitHub Actions
Проблема: Необходимо избегать спама пользователей, но при этом своевременно информировать о важных изменениях.
Решение:
Проблема: Безопасное хранение чувствительных данных (токены бота, Chat ID) и простая настройка проекта.
Решение:
config.example.py для безопасного клонирования репозиторияconfig.py не отслеживается в Git для защиты данныхget_chat_id.py для удобного получения Chat ID пользователяСистема отправляет подробные уведомления при обнаружении новых игр или изменении статуса существующих:
Уведомление о новой игре с полной информацией
Сводка по всем доступным играм
Уведомление о записи в резерв
Язык программирования: Python 3.11
Основные библиотеки: BeautifulSoup4, Requests, python-telegram-bot
Хранение данных: JSON файлы (classic_games.json, games_history.json)
Инфраструктура: Ubuntu Server 20.04+, Systemd, GitHub Actions CI/CD
Статус: Production, работает с 2025 года
Частота проверки: Каждые 15 минут в рабочее время
Уведомления: Telegram бот с форматированными сообщениями