# πŸ”” 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) ---
⭐ Если ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ оказался ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, ΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΡƒ Π½Π° GitHub!

Π‘ΠΎΠ·Π΄Π°Π½ΠΎ с ❀️ ΠΎΡ‚ вашСго Π΄ΠΎΡ€ΠΎΠ³ΠΎΠ³ΠΎ - deev.space Β©