From 88ed1a6aa122c12455c0c8bfa306fa5a1fc20698 Mon Sep 17 00:00:00 2001 From: deadzilla Date: Sun, 12 Jul 2026 00:04:10 +0500 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=91=D0=BD=20ISSUES.md=20=E2=80=94=205=20=D0=B7=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D1=87=20=D1=81=D1=80=D0=B5=D0=B4=D0=BD=D0=B5=D0=B3=D0=BE?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B8=D0=BE=D1=80=D0=B8=D1=82=D0=B5=D1=82=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=B5=D1=81=D0=B5=D0=BD=D1=8B?= =?UTF-8?q?=20=D0=B2=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ISSUES.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/ISSUES.md b/ISSUES.md index 20d49e2..3354525 100644 --- a/ISSUES.md +++ b/ISSUES.md @@ -1,13 +1,5 @@ # ISSUES — Задачи и баг-трекер -## Средний приоритет - -- [ ] **`_parse_date` хрупкий fallback** — `pub_date[:10].replace("-", ".")` для невалидной строки вернёт мусор (например `"invalid.da"`). Добавить валидацию формата (`utils/news.py`) -- [ ] **`wmo_to_russian` создаёт dict на каждый вызов** — mapping из 30+ элементов пересоздаётся. Вынести в модульную константу (`utils/pogoda.py`) -- [ ] **`TextHelpCommand` пропускает команды без cog** — `if cog_or_none is None: continue` скроет standalone-команды из справки (`bot.py`) -- [ ] **`translate_weather(" ")` возвращает пробелы вместо `"—"`** — строка из пробелов не считается пустой, проходит через mapping без совпадений и возвращается как есть (`utils/pogoda.py`) -- [ ] **`pressure_to_mmhg(mb: Any)`** — `Any` скрывает контракт. Заменить на `float | int | str | None` (`utils/pogoda.py`) - ## Низкий приоритет - [ ] **`conftest.py` и `bot.py` дублируют monkey-patch** — идентичный `asyncio.iscoroutinefunction = ...` в двух файлах. Вынести в `compat.py` @@ -45,3 +37,8 @@ - [x] **`run_morning` fallback может отправить дайджест в несколько каналов** — fallback перебирает каналы целевого сервера вместо `bot.get_all_channels()` (`utils/morning_runner.py`) - [x] **`!nw`: последовательные вызовы API вместо параллельных** — заменено на `asyncio.gather()` (`commands/news.py`) - [x] **`format_weather_data_for_console` выводит `None` в текст** — добавлена явная проверка `is None` для всех полей (`utils/pogoda.py`), обновлён тест (`tests/test_commands_pg.py`) +- [x] **`_parse_date` хрупкий fallback** — валидация формата через regex, ISO даты конвертируются в DD.MM.YYYY (`utils/news.py`) +- [x] **`wmo_to_russian` создаёт dict на каждый вызов** — вынесен в константу `_WMO_MAPPING` (`utils/pogoda.py`) +- [x] **`TextHelpCommand` пропускает команды без cog** — standalone-команды показываются если не hidden (`bot.py`) +- [x] **`translate_weather(" ")` возвращает пробелы** — добавлен `.strip()` перед проверкой (`utils/pogoda.py`) +- [x] **`pressure_to_mmhg(mb: Any)`** — заменён на `float | int | str | None` (`utils/pogoda.py`)