3.4 KiB
3.4 KiB
Tasks — список задач проекта
Состояние на: 2026-05-26
🔴 Критические
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("Заглушка: тут должен быть котик")
🟡 Средние
3. Убрать пустой 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с регулярным выражением
6. Вынести self.api_url в константу класса
commands/pogoda.py: заменитьself.api_url = ...наAPI_URL = "..."на уровне классаcommands/morning.py: аналогичноconsole_commands/pogoda.py: вынести URL вutils/pogoda.pyкак константу
🟢 Малые улучшения
7. Добавить __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()
bot.py: добавитьraise_exception=Trueдля видимого падения при ошибках токена/сети- Добавить логирование в
KeyboardInterruptблок