Files
2026-04-01 21:14:21 +03:00

54 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` — зависимости.
## Быстрый старт (локально)
1. Установите зависимости (рекомендуется виртуальное окружение):
```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
2. Создайте `.env` (или экспортируйте переменные окружения):
- `TELEGRAM_BOT_TOKEN` — токен бота
- (опционально) `DEEPGRAM_API_KEY`, `ACCESS_TOKEN` — если используются аддоны
Создайте файл `.env` рядом с `config.py`:
```env
TELEGRAM_BOT_TOKEN=your_bot_token_here
#DEEPGRAM_API_KEY=...
#ACCESS_TOKEN=...
```
3. Запустите бота (пример):
```bash
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`.)