49 lines
1.9 KiB
Python
49 lines
1.9 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):
|
||
"""Вывести список команд в формате Embed."""
|
||
embed = discord.Embed(
|
||
title="Discord Bot Help",
|
||
description="Доступные команды бота для Магнитогорска",
|
||
colour=discord.Color.blue(),
|
||
timestamp=ctx.message.timestamp,
|
||
)
|
||
|
||
# Список команд с описанием
|
||
commands_list = [
|
||
("!pg", "Прогноз погоды в Магнитогорске"),
|
||
("!nw", "Топ-5 статей и топ-5 новостей AI с Habr"),
|
||
("!morning", "Утренний дайджест: погода + новости + котик"),
|
||
("!cat", "Случайный котик"),
|
||
("!msg <текст>", "Повторить текст в чате"),
|
||
]
|
||
|
||
# Формирование текстового блока команд
|
||
value_lines = ["**Доступные команды:**"]
|
||
for cmd_name, description in commands_list:
|
||
value_lines.append(f"• `{cmd_name}` — {description}")
|
||
|
||
full_text = "\n".join(value_lines)
|
||
|
||
# Проверка длины текста (макс 1024 символа для поля embed)
|
||
if len(full_text) > 1024:
|
||
full_text = full_text[:1021] + "..."
|
||
|
||
embed.add_field(
|
||
name="Описание",
|
||
value=full_text,
|
||
inline=False,
|
||
)
|
||
|
||
await ctx.send(embed=embed)
|