discordBot/ISSUES.md

3.1 KiB
Raw Blame History

ISSUES — Задачи и баг-трекер

Баги

  • on_command_error: проверка ctx.interaction может падать — при текстовых командах (command_prefix) ctx.interaction может быть None
  • commands/help.py: список команд хардкодится вручную — при добавлении новой команды !hp покажет устаревший список
  • console_commands/pogoda.py: хардкодит URL wttr.in, дублируя логику из utils/pogoda.py
  • utils/pogoda.py + utils/cat.py: нет отдельного модуля utils/__init__.py с публичным API — импорты разбросаны

Задачи к реализации

Высокий приоритет

  • Заменить все print() на logging — в utils/pogoda.py, utils/morning_runner.py, console_commands/, bot.py
  • Автоматическая генерация !hp — собирать список команд из bot.commands вместо хардкода
  • Убрать дублирование commands/ и console_commands/ — вынести общую логику в utils/, оставить тонкие обёртки
  • Валидация конфигурации — проверить формат MORNING_TIME (ЧЧ:ММ) и наличие MORNING_CHANNEL_ID при запуске

Средний приоритет

  • Инкапсулировать глобальные переменныеstop_event, bot_ready, scheduler завернуть в класс BotRunner
  • Добавить rate-limiting для API-вызовов (TheCatAPI, wttr.in, Habr RSS)
  • Настроить логирование — уровни, формат, вывод в файл/консоль
  • Добавить тесты для console_commands/ — есть только test_help_console.py, нужны test_pogoda_console.py, test_news_console.py, test_morning_console.py
  • Проверка наличия .env — добавить явную проверку с информативным сообщением

Низкий приоритет

  • Улучшить Dockerfile — multi-stage сборка, healthcheck
  • Добавить pre-commit хуки — lint (flake8/ruff), форматирование (black)
  • Добавить type hints повсеместно — не все функции имеют аннотации
  • Интеграционные тесты — сейчас только unit-тесты с моками

Замечания

  • README.md ссылается на AGENTS.md как основной документ проекта, но AGENTS.md — инструкции для AI-ассистента
  • В тестовых файлах используется asyncio.run() внутри синхронных тестов — может конфликтовать с event loop