feat: добавить команду help !hp для вывода списка всех команд

This commit is contained in:
deadzilla 2026-06-02 22:45:22 +05:00
parent 55b3a5604e
commit aec4cb5c18
3 changed files with 52 additions and 1 deletions

View File

@ -40,6 +40,7 @@ python bot.py
|---------|----------| |---------|----------|
| `!pg` | Прогноз погоды для Магнитогорска | | `!pg` | Прогноз погоды для Магнитогорска |
| `!nw` | Топ-5 свежих статей по AI с Habr | | `!nw` | Топ-5 свежих статей по AI с Habr |
| `!hp` | Список всех команд бота с описанием |
| `!morning` | Погода + топ-5 статей + топ-5 новостей + котик (утренний дайджест) | | `!morning` | Погода + топ-5 статей + топ-5 новостей + котик (утренний дайджест) |
| `!cat` | Случайный котик | | `!cat` | Случайный котик |
| `!msg <текст>` | Повторить текст в чате | | `!msg <текст>` | Повторить текст в чате |
@ -64,6 +65,7 @@ commands/ # Discord команды (cogs)
news.py # !nw — новости с Habr news.py # !nw — новости с Habr
cat.py # !cat — случайный котик cat.py # !cat — случайный котик
morning.py # !morning — утренний дайджест morning.py # !morning — утренний дайджест
help.py # !hp — список команд
console_commands/ # Консольные команды console_commands/ # Консольные команды
__init__.py # ALL_CONSOLE_COMMANDS — явные импорты __init__.py # ALL_CONSOLE_COMMANDS — явные импорты
stop.py # stop — остановка бота stop.py # stop — остановка бота

View File

@ -2,5 +2,6 @@ from .pg import Pg
from .news import News from .news import News
from .cat import Cat from .cat import Cat
from .morning import Morning from .morning import Morning
from .help import Help
ALL_COMMANDS = [Pg, News, Cat, Morning] ALL_COMMANDS = [Pg, News, Cat, Morning, Help]

48
commands/help.py Normal file
View File

@ -0,0 +1,48 @@
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)