Telegram-бот для мониторинга работоспособности систем с настраиваемыми интервалами уведомлений и персонализированным управлением.
Асинхронный Telegram-бот, реализующий систему периодических уведомлений с гибкой настройкой интервалов. Предназначен для мониторинга доступности сервисов и отправки регулярных статусных сообщений пользователям.
- Python 3.8+
- aiogram 3.x - асинхронный фреймворк для Telegram Bot API
- SQLite3 - встроенная реляционная база данных
- asyncio - асинхронное программирование
- ✅ Регистрация пользователей с автоматической инициализацией
- ⏰ Настройка интервалов уведомлений (5 минут - 24 часа)
- 🔄 Динамическое управление статусом уведомлений
- 📊 Мониторинг активных пользователей и логирование
- 🔐 Graceful shutdown с корректным завершением задач
- 💾 Персистентное хранение настроек в SQLite
# Клонирование репозитория
git clone https://github.com/EDeev/dorm_alarm.git
cd dorm_alarm
# Установка зависимостей
pip install -r requirements.txtСоздайте файл init.py и укажите токен бота:
BOT_TOKEN = "your_bot_token_here"python bot.py| Команда | Описание |
|---|---|
/start |
Регистрация и активация уведомлений |
/status |
Отображение текущих настроек пользователя |
/help |
Справочная информация |
dorm_alarm/
├── bot.py # Точка входа, инициализация и lifecycle management
├── handlers.py # Обработчики команд и callback-запросов
├── init.py # Конфигурация Bot и Dispatcher
├── sql.py # Database manager и ORM-слой
└── requirements.txt
Таблица users:
user_id- уникальный идентификатор пользователяusername- имя пользователяinterval_minutes- интервал уведомлений (по умолчанию 60 мин)is_active- статус активности уведомленийcreated_at- timestamp регистрации
Таблица notifications_log:
id- автоинкрементный идентификаторuser_id- ссылка на пользователяsent_at- timestamp отправкиstatus- статус доставки (sent/failed)
Этот проект является некоммерческим и распространяется под лицензией MIT.
Деев Егор Викторович - Backend Developer
- GitHub: @EDeev
- Email: egor@deev.space
- Telegram: @Egor_Deev
Создано с ❤️ от вашего дорогого - deev.space ©