From 6ae8442b571c040c9322366c4bcea412f19c2451 Mon Sep 17 00:00:00 2001 From: deadzilla Date: Fri, 29 May 2026 09:26:20 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D1=82=D1=8C=20=D1=8D?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B7=D0=B8=20=D0=B8=D0=B7=20console=5Fcomma?= =?UTF-8?q?nds/cat.py=20=D0=B8=20=D0=BF=D0=BE=D1=87=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20ISSUES.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ISSUES.md | 38 ++++++++++++++------------------------ console_commands/cat.py | 2 +- 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/ISSUES.md b/ISSUES.md index dd1d8a3..0f14ce7 100644 --- a/ISSUES.md +++ b/ISSUES.md @@ -6,31 +6,21 @@ ## 🔴 Критические -### 1. Фикс `posts is None` → `TypeError` в `!news` -- [ ] `commands/news.py`: добавить проверку `if posts is None` **до** вызова `format_articles(posts, ...)` -- [ ] `commands/news.py`: аналогично проверить `if articles is None` перед `format_articles(articles, ...)` -- [ ] `commands/morning.py`: проверить все 3 вызова `format_articles()` — `articles`, `posts`, и убедиться, что `None` не проходит - -### 2. Убрать эмодзи из `console_commands/cat.py` -- [ ] Заменить `print("🐱 тут должен быть котик")` на `print("Заглушка: тут должен быть котик")` +### 1. Убрать эмодзи из `console_commands/cat.py` +- [x] Заменить `print("🐱 тут должен быть котик")` на `print("Заглушка: тут должен быть котик")` --- ## 🟡 Средние -### 3. Убрать пустой embed в `!morning` при всех ошибках +### 2. Убрать пустой embed в `!morning` при всех ошибках - [ ] `commands/morning.py`: добавить fallback-сообщение в `description_lines`, если все API вернули `None` - [ ] Проверить, что `embed.description` никогда не пустой -### 4. Заменить ручную загрузку Cogs на `bot.load_extension()` -- [ ] `bot.py`: заменить цикл `for cog_class in ALL_COMMANDS: await bot.add_cog(cog)` на `bot.load_extension()` -- [ ] Обновить `commands/__init__.py` — добавить метаданные для порядка загрузки -- [ ] Протестировать, что все Cogs загружаются корректно - -### 5. Оптимизировать `translate_weather()` — O(n) линейный поиск -- [ ] `utils/pogoda.py`: отсортировать ключи `mapping` по длине (убывание) -- [ ] Использовать `any(key.lower() in text.lower() for key in sorted_keys)` для приоритета точных совпадений -- [ ] Или заменить на `re` с регулярным выражением +### 3. Убрать дублирование парсинга погоды +- [ ] `console_commands/pogoda.py`: вынести форматирование результата в `utils/pogoda.py` как `format_weather_data()` +- [ ] `console_commands/morning.py`: использовать `format_weather_data()` вместо inline-парсинга +- [ ] `commands/morning.py`: использовать `format_weather_data()` вместо inline-парсинга ### 6. Вынести `self.api_url` в константу класса - [ ] `commands/pogoda.py`: заменить `self.api_url = ...` на `API_URL = "..."` на уровне класса @@ -41,16 +31,16 @@ ## 🟢 Малые улучшения -### 7. Добавить `__all__` в `__init__.py` +### 4. Вынести `api_url` в константу +- [ ] `commands/pogoda.py`: заменить `self.api_url = ...` на `API_URL = "..."` на уровне класса +- [ ] `commands/morning.py`: аналогично +- [ ] `console_commands/pogoda.py`: вынести URL в `utils/pogoda.py` как константу + +### 5. Добавить `__all__` в `__init__.py` - [ ] `commands/__init__.py`: `__all__ = ["ALL_COMMANDS"]` - [ ] `console_commands/__init__.py`: `__all__ = ["ALL_CONSOLE_COMMANDS"]` - [ ] `utils/__init__.py`: добавить `__all__` с основными функциями -### 8. Убрать дублирование парсинга погоды в console_commands -- [ ] `console_commands/pogoda.py`: вынести форматирование результата в `utils/pogoda.py` как `format_weather_data()` -- [ ] `console_commands/morning.py`: использовать `format_weather_data()` вместо inline-парсинга -- [ ] `commands/morning.py`: использовать `format_weather_data()` вместо inline-парсинга - -### 9. Добавить `raise_exception=True` в `bot.run()` +### 6. Добавить `raise_exception=True` в `bot.run()` - [ ] `bot.py`: добавить `raise_exception=True` для видимого падения при ошибках токена/сети - [ ] Добавить логирование в `KeyboardInterrupt` блок diff --git a/console_commands/cat.py b/console_commands/cat.py index b3cdf41..309c8c4 100644 --- a/console_commands/cat.py +++ b/console_commands/cat.py @@ -1,3 +1,3 @@ def cat(stop_event, bot): """Заглушка: тут должен быть котик""" - print("🐱 тут должен быть котик") + print("Заглушка: тут должен быть котик")