Skip to content

📃 Help Страница

Предоставление понятной справочной информации очень важно для пользователей. PBModular предлагает два способа определения содержания помощи для модулей, которая обычно отображается командой ядра, например /mhelp YourModuleName.

1. Автоматическая генерация (по умолчанию)

Если вы явно не определили страницу помощи, фреймворк попытается сгенерировать ее автоматически при вызове /help YourModuleName.

  • Она перечисляет все команды, зарегистрированные модулем, используя декоратор @command.
  • Для каждой команды используется docstring.
  • Формат вывода обычно следующий: /имя_команды - описание из docstring.

Чтобы эффективно использовать автоматическую страницу помощи:.

  • Убедитесь, что все ваши методы, декорированные @command, имеют четкие и краткие документальные описания, объясняющие их назначение и использование.

2. Пользовательская страница помощи (свойство help_page)

Для большего контроля над содержимым помощи, включая пользовательское форматирование, пояснения к спискам команд или добавление встроенных кнопок, вы можете переопределить свойство help_page в вашем основном классе BaseModule.

Это свойство должно возвращать либо:

  • Объект base.module.HelpPage: Этот класс данных позволяет указывать как текст, так и дополнительные кнопки встроенной клавиатуры.
  • Простой str: Для обратной совместимости вы можете вернуть просто строку, которая будет использоваться в качестве текста сообщения. Использование HelpPage предпочтительно для новых разработок.

Использование класса данных HelpPage:.

python
# main.py (внутри вашего класса BaseModule)
from base.module import HelpPage # Импорт класса данных
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup

# ... прочий импорт ...

    @property
    def help_page(self) -> HelpPage:
        """Предоставляет пользовательскую страницу помощи для этого модуля."""
        text = (
            f"**{self.module_info.name} v{self.module_info.version} Help**\n\n"
            f"{self.module_info.description}\n\n"
            "**Доступные команды:**\n"
            f"`/command1` - {self.S['help']['command1_desc']}\n" # Используйте переводы!
            f"`/command2 [option]` - {self.S['help']['command2_desc']}\n\n"
            "Используйте кнопки ниже для получения дополнительных опций."
        )
        buttons = [
            [ # Ряд 1
                InlineKeyboardButton("Подробный Гайд", url=self.module_info.src_url or "https://example.com/docs"),
                InlineKeyboardButton("Обратный вызов настроек", callback_data=f"{self.module_info.name}:settings")
            ],
            [ # Ряд 2
                InlineKeyboardButton("Закрыть Помощь", callback_data="close_help")
            ]
        ]
        return HelpPage(text=text, buttons=buttons)