2025-10-19 14:28:41 +03:00
2025-11-23 23:17:00 +03:00
2025-10-29 21:46:06 +03:00
2025-10-19 14:28:41 +03:00
2026-03-15 20:36:16 +03:00
2026-04-01 21:14:21 +03:00

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. Установите зависимости (рекомендуется виртуальное окружение):
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  1. Создайте .env (или экспортируйте переменные окружения):
  • TELEGRAM_BOT_TOKEN — токен бота
  • (опционально) DEEPGRAM_API_KEY, ACCESS_TOKEN — если используются аддоны

Создайте файл .env рядом с config.py:

TELEGRAM_BOT_TOKEN=your_bot_token_here
#DEEPGRAM_API_KEY=...
#ACCESS_TOKEN=...
  1. Запустите бота (пример):
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.)

S
Description
No description provided
Readme 157 KiB
Languages
Python 99.1%
Roff 0.9%