From 8b6643778e1dbb213968aca1bba09cbdafef00e6 Mon Sep 17 00:00:00 2001 From: Egor Deev Date: Mon, 30 Jun 2025 02:17:25 +0300 Subject: [PATCH] README.md --- README.md | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1dec0c9 --- /dev/null +++ b/README.md @@ -0,0 +1,138 @@ +# NPR MeteoBot + +Автоматизированная система мониторинга метеорологических условий и уведомлений об актировках учебных занятий для Норильского промышленного района (НПР). + +## 📋 Описание проекта + +NPR MeteoBot представляет собой интеллектуальную систему на базе Telegram-бота, предназначенную для: +- Мониторинга погодных условий в четырех районах НПР +- Автоматического отслеживания актировок учебных занятий +- Персонализированных уведомлений пользователей +- Предоставления детализированных метеорологических данных + +### Основные возможности: +- **Персонализация**: Настройка по смене обучения и району проживания +- **Автоматизация**: Регулярный мониторинг официальных источников +- **Уведомления**: Система подписок с гибкими настройками +- **Актуальность**: Интеграция с Gismeteo и официальным сайтом города + +## 🏗️ Архитектура системы + +### Компоненты: +- `bot.py` - Основной модуль Telegram-бота с обработкой команд +- `sql.py` - Модуль работы с базой данных SQLite +- `info.py` - Парсинг данных с внешних источников +- `config.py` - Конфигурационные параметры системы + +### Структура базы данных: +- **users**: Профили пользователей с настройками +- **weather**: Кэш метеорологических данных +- **parts**: Данные об актировках по сменам +- **data**: Системная информация + +## 🛠️ Технологический стек + +### Backend: +- **Python 3.7+** - Основной язык разработки +- **aiogram 2.x** - Фреймворк для Telegram Bot API +- **SQLite** - Локальная база данных +- **asyncio** - Асинхронное программирование + +### Парсинг данных: +- **Selenium WebDriver** - Автоматизация браузера +- **BeautifulSoup4** - HTML-парсинг +- **requests** - HTTP-запросы + +### Обработка данных: +- **pymorphy2** - Морфологический анализ русского языка + +## 🚀 Установка и настройка + +### Предварительные требования: +```python +# Установка ChromeDriver для Selenium +# Ubuntu/Debian: +sudo apt-get install chromium-chromedriver + +# Windows: загрузить с https://chromedriver.chromium.org/ +``` + +### Установка зависимостей: +```python +pip install -r requirements.txt +``` + +### Конфигурация: +1. Получите токен бота в [@BotFather](https://t.me/BotFather) +2. Обновите `API_TOKEN` в `config.py` +3. Создайте структуру базы данных SQLite + +### Запуск: +```python +python bot.py +``` + +## 📊 Функциональные возможности + +### Команды бота: +- `/start` - Инициализация и настройка профиля +- `/town` - Изменение города и смены обучения +- `/acta` - Просмотр текущих актировок +- `/weather` - Детализированный прогноз погоды +- `/storm` - Штормовые предупреждения +- `/letter` - Управление подпиской на уведомления +- `/notice` - Настройка типа уведомлений + +### Автоматические процессы: +- **timer()** - Мониторинг актировок (каждую минуту) +- **wind()** - Обновление погодных данных (каждые 20 минут) +- **clear()** - Очистка устаревших данных (каждые 5 минут) + +## 🎯 Целевые районы + +Система обслуживает четыре района НПР: +- **Центральный район** (Норильск) +- **Район Талнах** +- **Район Оганер** +- **Район Кайеркан** + +## 🔧 Конфигурационные параметры + +### Временные интервалы мониторинга: +- Прогноз погоды: 1, 4, 7, 10, 13, 16, 19, 22 часа +- Проверка актировок: ежеминутно +- Обновление погоды: каждые 20 минут + +### Источники данных: +- **Актировки**: [norilsk-city.ru/meteo](https://www.norilsk-city.ru/meteo/) +- **Погода**: [gismeteo.ru](https://www.gismeteo.ru/) + +## 📈 Масштабируемость + +Система спроектирована для: +- Обработки 17,000+ активных пользователей +- Асинхронной обработки запросов +- Отказоустойчивой работы с внешними API + +## ⚠️ Ограничения + +- Зависимость от доступности внешних источников данных +- Требует настройки ChromeDriver для корректного парсинга +- Локальная SQLite база данных (не подходит для кластерного развертывания) + +## 📝 Лицензия + +Проект разработан для образовательных и некоммерческих целей. + +## 👤 Автор + +**Деев Егор Викторович** +- GitHub: [@DeevEV](https://github.com/DeevEV) +- Email: egor@deev.space +- Telegram: [@Egor_Deev](https://t.me/Egor_Deev) + +--- + +
+ Создано с ❤️ от вашего дорогого - deev.space © +