Skip to content

ALEVOLDON/WindyCheck_bot

Repository files navigation

🌬️ WindyCheck Telegram Bot

WindyCheck Bot Cover

Python 3.10+ aiogram 3.x License: MIT

WindyCheck Bot — это современный асинхронный Telegram-бот на Python (aiogram 3 + aiohttp), предназначенный для отслеживания параметров ветра, порывов, прогнозов погоды, визуализации розы ветров и авто-уведомлений при сильном ветре.

Специально адаптирован для виндсёрферов, кайтсёрферов, яхтсменов, парапланеристов и любителей активного отдыха. Включает готовый кастомный раздел спотов Санкт-Петербурга и Ленобласти с оценкой пригодности для катания!


🛠️ Функциональные возможности

  • 🏄‍♂️ Споты Санкт-Петербурга и Ленобласти: Готовые локации (Сестрорецк/Дюны, Кронштадт, Лахта, Зеленогорск, Кокорево/Ладога, Сосновый Бор, Комарово) с оценкой качества ветра для катания.
  • 🌬️ Текущий ветер: Скорость (м/с), порывы, направление (градусы + визуальная стрелка 🧭), температура, ощущаемая температура, влажность и давление (мм рт. ст.).
  • 📅 Прогноз на неделю (5-7 дней): Сводный суточный прогноз с автоматической перепроверкой раз в день и дневным кэшированием.
  • ⏱️ Почасовой прогноз (24 часа): Детальный разбор ветра и порывов на ближайшие сутки.
  • 📊 Подробная Инфографика: Генерация профессиональных двухпанельных PNG-графиков (matplotlib) с динамикой ветра, порывов, пороговых линий, температуры и атмосферного давления.
  • 🧭 Роза ветров: Полярная диаграмма преобладающих направлений ветра.
  • 🗺️ Интерактивные карты: Генерация прямых ссылок на карты погоды Windy.com с координатами локаций.
  • 📍 Избранное (Мои города): Сохранение персонального списка спотов для каждого пользователя в user_data.json.
  • 🔔 Авто-уведомления (Алерты): Фоновый мониторинг каждые 30 минут (asyncio) и отправка push-оповещений при превышении заданного порога скорости ветра с защитой от спама.

📖 Инструкция пользователя

В проекте уже подготовлена подробная полная документация для пользователя:


🚀 Быстрый запуск

1. Клонирование репозитория

git clone https://github.com/your-username/WindyCheck_bot.git
cd WindyCheck_bot

2. Установка зависимостей

pip install -r requirements.txt

3. Настройка переменных окружения

Скопируйте файл .env.example в .env и укажите ваши токены:

cp .env.example .env

Отредактируйте .env:

BOT_TOKEN=your_telegram_bot_token_here
OPENWEATHER_API_KEY=your_openweather_api_key_here

4. Запуск бота

python bot.py

(Или запустите двойным кликом файл run.bat на Windows)


📋 Команды бота

Команда Описание
/start Запуск бота и интерактивное Главное меню
/spb Меню спотов СПб и Ленобласти с оценкой условий катания
/wind [город] Текущий ветер и температура
/week [город] Подробный прогноз на неделю (5-7 дней) с перепроверкой
/forecast [город] Почасовой прогноз ветра на 24 часа
/chart [город] Наглядный двухпанельный инфо-график метео-анализа
/rose [город] Полярная диаграмма «Роза ветров»
/map [город] Ссылка на живую карту Windy.com
/track [город] Добавить город в Избранное
/untrack [город] Удалить город из Избранного
/mywind Ветер по всем избранным городам
/alert [скорость] Оповещение при ветре > X м/с
/alert off Отключить оповещения

📜 Лицензия

Проект распространяется под лицензией MIT.

About

Асинхронный Telegram-бот на Python (aiogram 3) для отслеживания ветра, порывов, прогнозов, розы ветров и авто-уведомлений.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages