bbd9c839d5e52459eb545a88ef3cf6e5d71f9eaf
MyFirstProgramm
Лёгкий Telegram-бот на Python (aiogram + Playwright) для автоматической проверки и рассылки расписаний, а также набора аддонов.
Краткое описание
Проект периодически проверяет расписание на сайте (через Playwright), делает скриншоты нужных фрагментов, вычисляет хеш (MD5) и отправляет/закрепляет изображение в целевых чатах Telegram только при изменении (чтобы не флудить чат). Также в addons/ есть дополнительные модули (мини-приложения).
Структура (важные файлы/папки)
main.py— точка входа приложения (запуск бота).config.py— конфигурация (переменные окружения).services/— сервисы:schedule_service.py,watcher_service.py(логика слежки/хэшей).models/state.py— in-memory состояние бота (кэши, last_clip_hash и т.д.).addons/— набор дополнительных модулей (каждый аддон экспортируетregister/unregister).requirements.txt— зависимости.
Быстрый старт (локально)
- Установите зависимости (рекомендуется виртуальное окружение):
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- Создайте
.env(или экспортируйте переменные окружения):
TELEGRAM_BOT_TOKEN— токен бота- (опционально)
DEEPGRAM_API_KEY,ACCESS_TOKEN— если используются аддоны
Создайте файл .env рядом с config.py:
TELEGRAM_BOT_TOKEN=your_bot_token_here
#DEEPGRAM_API_KEY=...
#ACCESS_TOKEN=...
- Запустите бота (пример):
python main.py
(В вашем окружении запуск может быть оформлен скриптом — например ./Desktop/my.sh.)
Конфигурация
Основные настройки находятся в config.py. Обратите внимание, что Config сейчас поднимает исключение, если TELEGRAM_BOT_TOKEN не задан.
Что изменилось (коротко)
- Добавлена проверка MD5-хеша скриншота в
services/watcher_service.py— теперь бот отправляет фото и закрепляет сообщение только при первом обнаружении и при изменениях. - Исправлен импорт в
addons/x_days_to/__init__.py(модуль называлсяx_days_to.py, вместо отсутствующегоhandlers).
(Более полный список изменений — в CHANGELOG.md.)
Description
Languages
Python
99.1%
Roff
0.9%