54 lines
3.1 KiB
Markdown
54 lines
3.1 KiB
Markdown
# 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`.)
|
||
|