discordBot/ISSUES.md

3.4 KiB
Raw Blame History

Tasks — список задач проекта

Состояние на: 2026-05-26


🔴 Критические

1. Фикс posts is NoneTypeError в !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 блок