Compare commits
2 Commits
1000f8ea0b
...
aec4cb5c18
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aec4cb5c18 | ||
|
|
55b3a5604e |
@ -23,6 +23,10 @@ model_requirements:
|
|||||||
- **Никогда не используй эмодзи** в тексте или выводах
|
- **Никогда не используй эмодзи** в тексте или выводах
|
||||||
- Будь вежливым и профессиональным
|
- Будь вежливым и профессиональным
|
||||||
|
|
||||||
|
### Документация проекта
|
||||||
|
- В @AGENTS.md держим только договоренности по разработке и взаимодействию
|
||||||
|
- Вся техническая документация проекта ведётся в @README.md — технические детали, API, команды бота, структура проекта
|
||||||
|
|
||||||
### Работа с кодом и файлами
|
### Работа с кодом и файлами
|
||||||
- **До внесения любых изменений в код или файлы предоставь детальное описание всех планируемых изменений**
|
- **До внесения любых изменений в код или файлы предоставь детальное описание всех планируемых изменений**
|
||||||
- **Получи явное согласие пользователя перед внесением изменений**
|
- **Получи явное согласие пользователя перед внесением изменений**
|
||||||
|
|||||||
@ -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 — остановка бота
|
||||||
|
|||||||
@ -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
48
commands/help.py
Normal 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)
|
||||||
Loading…
x
Reference in New Issue
Block a user