deadzilla 2690ee72e3 refactor: !hp собирает список команд из bot.commands вместо хардкода
- commands/help.py: список команд генерируется автоматически из
  ctx.bot.commands с описаниями из docstring
- tests/test_help_discord.py: добавлен _make_mock_command() и мок
  ctx.bot.commands для тестов
2026-06-09 20:39:43 +05:00

35 lines
1.2 KiB
Python

import discord
from discord.ext import commands
class Help(commands.Cog):
"""Команда !hp — список всех команд бота"""
@commands.command(name="hp")
async def hp(self, ctx):
"""Показать список доступных команд"""
await self._show_help(ctx)
async def _show_help(self, ctx: commands.Context):
"""Вывести список команд в простом текстовом формате."""
# Собираем команды автоматически из bot.commands
commands_list = []
for cmd in ctx.bot.commands:
name = cmd.name
# Описание из docstring первой команды (если есть дубликаты)
desc = (cmd.__doc__ or "".strip()).split("\n")[0].strip()
commands_list.append(f"!{name}{desc}")
commands_list.sort()
message = "Discord Bot — Доступные команды\n"
message += "=" * 40 + "\n\n"
message += "\n".join(commands_list)
message += "\n\n" + "=" * 40
await ctx.send(message)
if __name__ == "__main__":
print("Cog loaded!")