- Убран discord.Embed в пользу простого текста без timestamp ошибки - Добавлены разделители = вокруг заголовка - Создан tests/test_help_discord.py с 2 тестами для Discord команды - Создан tests/test_help_console.py с 2 тестами для консольной команды - Закрыто: AttributeError 'Message' object has no attribute 'timestamp'
36 lines
1.3 KiB
Python
36 lines
1.3 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):
|
||
"""Вывести список команд в простом текстовом формате."""
|
||
commands_list = [
|
||
("!pg", "Прогноз погоды в Магнитогорске"),
|
||
("!nw", "Топ-5 статей и топ-5 новостей AI с Habr"),
|
||
("!morning", "Утренний дайджест: погода + новости + котик"),
|
||
("!cat", "Случайный котик"),
|
||
("!msg <текст>", "Повторить текст в чате"),
|
||
]
|
||
|
||
message = "Discord Bot — Доступные команды\n"
|
||
message += "=" * 40 + "\n\n"
|
||
|
||
for cmd_name, description in commands_list:
|
||
message += f"{cmd_name} — {description}\n"
|
||
|
||
message += "\n" + "=" * 40
|
||
|
||
await ctx.send(message)
|
||
|
||
|
||
if __name__ == "__main__":
|
||
print("Cog loaded!")
|