diff --git a/commands/help.py b/commands/help.py index ff2af43..269d5ab 100644 --- a/commands/help.py +++ b/commands/help.py @@ -4,7 +4,7 @@ from discord.ext import commands class Help(commands.Cog): """Команда !hp — список всех команд бота""" - @commands.command(name="hp") + @commands.command(name="hp", hidden=True) async def hp(self, ctx: commands.Context) -> None: """Показать список доступных команд""" await self._show_help(ctx) @@ -12,11 +12,15 @@ class Help(commands.Cog): async def _show_help(self, ctx: commands.Context): """Вывести список команд в простом текстовом формате.""" # Собираем команды автоматически из bot.commands + # Используем cmd.help — discord.py берёт docstring из callback функции commands_list = [] for cmd in ctx.bot.commands: + if cmd.hidden: + continue name = cmd.name - # Описание из docstring первой команды (если есть дубликаты) - desc = (cmd.__doc__ or "".strip()).split("\n")[0].strip() + desc = cmd.help or "Без описания" + if desc == "Без описания": + continue commands_list.append(f"!{name} — {desc}") commands_list.sort() diff --git a/tests/test_help_discord.py b/tests/test_help_discord.py index ebdabfc..dbbec38 100644 --- a/tests/test_help_discord.py +++ b/tests/test_help_discord.py @@ -10,11 +10,12 @@ class TestHelpCommandDiscord: """Тесты для команды help на Discord.""" @staticmethod - def _make_mock_command(name, doc): - """Создать mock-объект команды с name и docstring.""" + def _make_mock_command(name, doc, hidden=False): + """Создать mock-объект команды с name, help и hidden.""" cmd = MagicMock(spec=[]) cmd.name = name - cmd.__doc__ = doc + cmd.help = doc + cmd.hidden = hidden return cmd async def test_show_help_sends_simple_text(self) -> None: