5 Commits

Author SHA1 Message Date
deadzilla
48e64c2bc8 Replace wttr.in/Open-Meteo with Yandex Weather API
- Switch from wttr.in + Open-Meteo fallback to Yandex Weather API
- Add YANDEX_WEATHER_API_KEY to .env and config validation
- Enrich weather output: wind gusts, wind direction (Russian)
- Pressure now in mmHg directly from Yandex (no conversion needed)
- Update rate limiter: weather_limiter + open_meteo_limiter → yandex_weather_limiter
- Remove dead code: API_URL_WEATHER, fetch_open_meteo, translate_weather
- Update all tests (271 passed)
2026-07-20 23:31:11 +05:00
deadzilla
c5c6a51cd2 fix: добавлено закрытие requests.Session при graceful shutdown бота 2026-07-11 23:30:55 +05:00
deadzilla
cef53197b1 feat: !morning — заменить embed на plain text, кот отдельным сообщением
- Переименован format_weather_for_embed -> format_weather_for_message
- Убран markdown жирный (**text**) из заголовков погоды и статей
- Утренний дайджест отправляется как обычное текстовое сообщение
- Котик отправляется отдельным сообщением перед дайджестом
- Truncation через truncate_message (лимит 2000 символов)
- Обновлены тесты: проверка 2 send() вместо embed
2026-07-09 13:28:39 +05:00
deadzilla
560dc558a9 refactor: убрал дублирование логики получения данных
- utils/pogoda.py: добавлена API_URL_WEATHER, format_weather_for_embed(),
  проверка None в format_weather_data_for_console()
- utils/morning_runner.py: вынесен MorningData (dataclass) и gather_morning();
  run_morning() использует их вместо ручного asyncio.gather
- utils/__init__.py: экспортирован публичный API (__all__)
- commands/pg.py: убран ручной парсинг погоды, используется
  format_weather_data_for_console()
- console_commands/morning.py: дубликат asyncio.gather заменён на gather_morning()
- console_commands/pogoda.py: хардкод URL заменён на API_URL_WEATHER
- console_commands/cat.py: заглушка заменена на рабочий вызов fetch_cat()
- tests/test_commands_pg.py: обновлён тест fetch_returns_none (бот теперь
  отправляет сообщение об ошибке вместо молчаливого возврата)
2026-06-09 17:37:18 +05:00
deadzilla
e1a0f6d2b6 refactor: вынести логику погоды в utils/pogoda.py (проблема 3)
- Создать utils/pogoda.py с общими функциями:
  - fetch_weather, fetch_open_meteo, wmo_to_russian, translate_weather, pressure_to_mmhg
- Обновить commands/pogoda.py: убрать дубликаты, импортировать из utils
- Обновить console_commands/pogoda.py: убрать дубликаты, импортировать из utils
- Сделать console_commands/pogoda.py async (требует fetch_weather)
- Обновить AGENTS.md и ISSUES.md (проблема 7 решена)
2026-05-26 12:32:15 +05:00