From c6bde31539e1b19499da89e36b21f74986bd8831 Mon Sep 17 00:00:00 2001 From: deadzilla Date: Tue, 9 Jun 2026 23:17:44 +0500 Subject: [PATCH] =?UTF-8?q?chore:=20=D1=83=D0=B1=D1=80=D0=B0=D1=82=D1=8C?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=BA=D1=80=D1=8B=D1=82=D1=8B=D0=B5=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20=D0=B8=D0=B7=20ISSUES.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ISSUES.md | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/ISSUES.md b/ISSUES.md index 471a71d..06f5ecd 100644 --- a/ISSUES.md +++ b/ISSUES.md @@ -1,52 +1,18 @@ # ISSUES — Задачи и баг-трекер -## Баги +## Средний приоритет -- [x] `on_command_error`: проверка `ctx.interaction` может падать — при текстовых командах (`command_prefix`) `ctx.interaction` может быть `None` - - **Закрыто:** коммит `d698380` — добавлен `hasattr(ctx, 'interaction')` и проверка `ctx.command` на `None` -- [x] `commands/help.py`: список команд хардкодился вручную — при добавлении новой команды `!hp` показывал устаревший список - - **Закрыто:** коммит `2690ee7` — собирает команды автоматически из `ctx.bot.commands` -- [x] `console_commands/pogoda.py`: хардкодил URL `wttr.in`, дублируя логику из `utils/pogoda.py` - - **Закрыто:** коммит `560dc55` — использует `API_URL_WEATHER` из `utils.pogoda` -- [x] `utils/pogoda.py` + `utils/cat.py`: нет отдельного модуля `utils/__init__.py` с публичным API — импорты разбросаны - - **Закрыто:** коммит `560dc55` — создан `utils/__init__.py` с `__all__` и явными импортами - ---- - -## Задачи к реализации - -### Высокий приоритет - -- [x] **Заменить все `print()` на `logging`** — в `utils/pogoda.py`, `utils/morning_runner.py`, `console_commands/`, `bot.py` - - **Закрыто:** коммит `52fdbc3` — системные сообщения (startup, shutdown, retry, ошибки API) переведены на `logging`; `print()` оставлены в `console_commands/` как пользовательский вывод в терминал -- [x] **Автоматическая генерация `!hp`** — собирать список команд из `bot.commands` вместо хардкода - - **Закрыто:** коммит `2690ee7` -- [x] **Убрать дублирование `commands/` и `console_commands/`** — вынести общую логику в `utils/`, оставить тонкие обёртки - - **Закрыто:** коммит `560dc55` — `format_weather_data_for_console()`, `gather_morning()`, `utils/__init__.py` -- [x] **Валидация конфигурации** — проверить формат `MORNING_TIME` (`ЧЧ:ММ`) и наличие `MORNING_CHANNEL_ID` при запуске - - **Закрыто:** добавлена `_validate_config()` в `bot.py` — проверка формата `MORNING_TIME` и типа `MORNING_CHANNEL_ID` - -### Средний приоритет - -- [x] **Инкапсулировать глобальные переменные** — `stop_event`, `bot_ready`, `scheduler` завернуть в класс `BotRunner` - - **Закрыто:** создан класс `BotRunner` в `bot.py` — все глобальные состояния инкапсулированы - [ ] **Добавить 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`** — добавить явную проверку с информативным сообщением -### Низкий приоритет +## Низкий приоритет -- [x] **Улучшить Dockerfile** — multi-stage сборка - - **Закрыто:** для чистого Python без компиляции выгода минимальная, не актуально -- [x] **Добавить healthcheck** — в Dockerfile - - **Закрыто:** healthcheck присутствует в Dockerfile (`CMD python -c "import discord; print('Bot is running')"`), добавлен коммитом `7bfb96c` - [ ] **Добавить pre-commit хуки** — lint (flake8/ruff), форматирование (black) - [ ] **Добавить type hints** повсеместно — не все функции имеют аннотации (отсутствуют в `utils/pogoda.py`, `utils/news.py`, присутствуют в `utils/cat.py`, `utils/morning_runner.py`) - [ ] **Интеграционные тесты** — сейчас только unit-тесты с моками ---- - ## Замечания - [ ] `README.md` ссылается на `AGENTS.md` как основной документ проекта, но AGENTS.md — инструкции для AI-ассистента