Skip to main content

Helpo 📚

Image

A powerful and flexible pagination library for Pyrogram bots that automatically handles help commands and module organization.

Python Pyrogram License PyPI Downloads

Features ✨

  • 🔄 Automatic module discovery and help text organization
  • 📱 Beautiful paginated help menus with inline buttons
  • 🎯 Support for both command-based and button-based help
  • 🎨 Customizable button layouts and texts
  • 🔌 Easy integration with existing Pyrogram bots
  • 📝 Support for rich media in help messages (photos, videos)
  • 🔗 Deep linking support for direct access to help menus
  • 🌐 Group chat support with private message options
  • 🎭 Flexible parse mode selection
  • 🖼️ Media support with photo and video options

Installation 🚀

pip install pyrohelpo

Usage ⚙️

Basic Setup

from pyrogram import Client
from Helpo import Helpo
from pyrogram.enums import ParseMode

# Initialize your Pyrogram client
app = Client("my_bot")

# Initialize Helpo
helpo = Helpo(
    client=app,
    modules_path="plugins",
    buttons_per_page=6
)

Advanced Configuration

json 
custom_texts = {
    "help_menu_title": "**🛠 Custom Help Menu**",
    "help_menu_intro": "Available modules ({count}):\n{modules}\n\nTap on a module to explore.",
    "module_help_title": "**🔍 Details for {module_name} Module**",
    "module_help_intro": "Description:\n{help_text}",
    "no_modules_loaded": "⚠️ No modules available at the moment.",
    "back_button": "◀️ Go Back",
    "prev_button": "⬅️ Previous Page",
    "next_button": "➡️ Next Page",
    "support_button": "💬 Contact Support",
    "support_url": "https://t.me/YourSupportBot",
    "short_help": True,
    "support_as_callback": True,
    "support_c_back_name": "say_hi"
}

helpo = Helpo(
    client=app,
    modules_path="plugins",
    buttons_per_page=6,
    texts=custom_texts,
    help_var="HELP",
    module_var="MODULE",
    photo="path/to/photo.jpg",  # Optional: Add photo to help messages
    video="path/to/video.mp4",  # Optional: Add video to help messages
    parse_mode=ParseMode.HTML,  # Optional: Change parse mode (default: MARKDOWN)
    disable_web_page_preview=False,  # Optional: Enable web preview (default: True)
    short_help=True  # Optional: Enable short help mode
)

Module Setup

Create Python files in your modules directory with the following structure:

MODULE = "Admin"  # Module name displayed in help menu
HELP = """
**Admin Commands**
/ban - Ban a user
/unban - Unban a user
/mute - Mute a user
/unmute - Unmute a user
"""

Custom Class Implementation

from pyrogram import Client
from Helpo import Helpo

class Bot(Client):
    def __init__(self):
        super().__init__(
            "my_bot",
            api_id=API_ID,
            api_hash=API_HASH,
            bot_token=BOT_TOKEN
        )
        self.helpo = Helpo(
            client=self,
            modules_path="plugins",
            buttons_per_page=6,
            texts=custom_texts
        )

    async def start(self):
        await super().start()
        print("Bot Started")
        print(f"Loaded Modules: {', '.join(self.helpo.modules.keys())}")

    async def stop(self):
        await super().stop()
        print("Bot Stopped")

Group Chat Support

Helpo automatically handles group chats by providing options to:

  • View help menu in private chat
  • View help menu directly in the group
  • Customize group chat behavior through the texts dictionary

Deep Linking Support

@app.on_message(filters.command("start"))
async def start_command(client, message):
    if len(message.text.split()) > 1:
        param = message.text.split(None, 1)[1]
        if param == "help":
            await client.show_help_menu(message.chat.id)
    else:
        await message.reply("Welcome! Use /help to see available commands.")

Monkeypatch Client

To automatically handle the /help command in your bot, you can use the monkeypatch_client method:

from pyrogram import Client
from Helpo import Helpo

app = Client("my_bot")

helpo = Helpo(
    client=app,
    modules_path="plugins",
    buttons_per_page=6,
    texts=custom_texts
)

helpo.monkeypatch_client()

app.run()

Methods and Attributes 📚

Helpo Class

Attributes:

  • client: Pyrogram Client instance
  • modules_path: Path to modules directory
  • buttons_per_page: Number of buttons per page
  • help_var: Variable name for help text (default: "HELP")
  • module_var: Variable name for module name (default: "MODULE")
  • photo: Optional photo URL/path
  • video: Optional video URL/path
  • parse_mode: Message parse mode
  • disable_web_page_preview: Web preview setting
  • texts: Customizable text dictionary
  • short_help: Boolean to enable short help mode

Methods:

  • load_modules(): Loads all modules from the specified path
  • show_help_menu(chat_id: int, page: int = 1, message_id: int = None): Displays the main help menu
  • show_module_help(query_or_message, module_name: str): Shows help for a specific module
  • send_message(chat_id: int, text: str, reply_markup: InlineKeyboardMarkup = None, message_id: int = None): Sends a message with optional media and keyboard
  • monkeypatch_client(): Patches the Pyrogram client to handle the /help command

Error Handling

Helpo includes comprehensive error handling for:

  • Invalid module files
  • Missing required attributes
  • Media loading failures
  • Message sending errors
  • Callback query processing

Contributors 👥

License 📄

This project is licensed under the MIT License - see the LICENSE file for details.

Support 🤝

Need help? Join our support chat or create an issue on our GitHub repository.


Made with ❤️ by the Helpo team

Metadata

Release files for pyrohelpo 4.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyrohelpo 4.1.5
File Size Uploaded
pyrohelpo-4.1.5.tar.gz 10.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyrohelpo 4.1.5
File Interpreter ABI Platform
pyrohelpo-4.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 22.0 kB

Release files / pyrohelpo-4.1.5.tar.gz

Download URL pyrohelpo-4.1.5.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
09ef4ae0be6e12c7a8682877c8568e6d539dcb784613673c8629f2978654ab3c
BLAKE2b-256 checksum
How to use checksums
8a5abd9791ba572333f77fb7ee42050d55857dbc30c0f6c6b79fd971f2eed63d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 30, 2024.

Transparency log

Release files / pyrohelpo-4.1.5-py3-none-any.whl

Download URL pyrohelpo-4.1.5-py3-none-any.whl
Size 11.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
73cbe7ca4125860661ff9b2fe2e3fee0536a214a9e1735b658068c24aef241ec
BLAKE2b-256 checksum
How to use checksums
5c59cbc10e32a460a26eff3721db7ba63ab2f756c19f97364fff2dd0bab3b85e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 30, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

4.1.5 This release

2 release files

4.1.4

2 release files

4.1.2

2 release files

3.1.3

2 release files

3.1.2

2 release files

2.3.4

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page