mirror of
https://github.com/EDeev/dorm_alarm.git
synced 2026-06-19 14:41:08 +03:00
README
This commit is contained in:
parent
b7403299d2
commit
ede9548514
1 changed files with 104 additions and 1 deletions
105
README.md
105
README.md
|
|
@ -1 +1,104 @@
|
||||||
# dorm_alarm
|
# 🔔 Dorm Alarm Bot
|
||||||
|
|
||||||
|
Telegram-бот для мониторинга работоспособности систем с настраиваемыми интервалами уведомлений и персонализированным управлением.
|
||||||
|
|
||||||
|
## 📋 Описание
|
||||||
|
|
||||||
|
Асинхронный Telegram-бот, реализующий систему периодических уведомлений с гибкой настройкой интервалов. Предназначен для мониторинга доступности сервисов и отправки регулярных статусных сообщений пользователям.
|
||||||
|
|
||||||
|
## 🛠 Технологический стек
|
||||||
|
|
||||||
|
- **Python 3.8+**
|
||||||
|
- **aiogram 3.x** - асинхронный фреймворк для Telegram Bot API
|
||||||
|
- **SQLite3** - встроенная реляционная база данных
|
||||||
|
- **asyncio** - асинхронное программирование
|
||||||
|
|
||||||
|
## ⚙️ Функциональные возможности
|
||||||
|
|
||||||
|
- ✅ Регистрация пользователей с автоматической инициализацией
|
||||||
|
- ⏰ Настройка интервалов уведомлений (5 минут - 24 часа)
|
||||||
|
- 🔄 Динамическое управление статусом уведомлений
|
||||||
|
- 📊 Мониторинг активных пользователей и логирование
|
||||||
|
- 🔐 Graceful shutdown с корректным завершением задач
|
||||||
|
- 💾 Персистентное хранение настроек в SQLite
|
||||||
|
|
||||||
|
## 📦 Установка
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Клонирование репозитория
|
||||||
|
git clone https://github.com/EDeev/dorm_alarm.git
|
||||||
|
cd dorm_alarm
|
||||||
|
|
||||||
|
# Установка зависимостей
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔧 Конфигурация
|
||||||
|
|
||||||
|
Создайте файл `init.py` и укажите токен бота:
|
||||||
|
|
||||||
|
```python
|
||||||
|
BOT_TOKEN = "your_bot_token_here"
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 Запуск
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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](https://github.com/EDeev)
|
||||||
|
- Email: egor@deev.space
|
||||||
|
- Telegram: [@Egor_Deev](https://t.me/Egor_Deev)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<sub>⭐ Если проект оказался полезным, поставьте звездочку на GitHub!</sub>
|
||||||
|
<p><sub>Создано с ❤️ от вашего дорогого - deev.space ©</sub></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
⭐ Если проект оказался полезным, поставьте звезду!
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue