Skip to main content

A synchronous Python library for interacting with the YoPhone API.

Project description

YoPhonePy - Python Client for YoPhone Bot API

YoPhonePy is a Python client library for interacting with the YoPhone Bot API. It provides easy-to-use methods for polling messages, handling commands, sending messages with media or buttons, and configuring webhooks.

Features

  • Poll for new messages and events
  • Register command and message handlers
  • Send messages, media, and buttons
  • Configure webhooks
  • Get bot and webhook information

Installation

Install the library from PyPI:

pip install yophonepy

Getting Started

1. Obtain an API Key

Register on the YoPhone platform to get your API key.

2. Set API Key

You can set your API key as an environment variable:

export YOPHONE_API_KEY="your_api_key_here"

Or pass it directly to the YoPhonePy class:

from yophonepy import YoPhonePy

bot = YoPhonePy(api_key="your_api_key_here")

3. Write Your Bot

from yophonepy import YoPhonePy, Message

bot = YoPhonePy(api_key="your_api_key_here")

@bot.command_handler("start")
def start_handler(msg: Message):
    bot.send_message(msg.chat_id, "Hello! How can I assist you today?")

@bot.message_handler
def echo_handler(raw_data):
    msg = Message.from_dict(raw_data)
    bot.send_message(msg.chat_id, f"You said: {msg.text}")

if __name__ == "__main__":
    bot.start_polling(interval=2)

Alternative Usage Example

You can also register handlers and initialize the bot programmatically:

from yophonepy import YoPhonePy

def start_command(message: Message):
    start_text = f"""
    Welcome to YoPhonePy Bot, {message.sender.first_name}! \n
    """
    bot.send_message(message.chat_id, start_text)


def help_command(message: Message):
    help_text = f"""
    Welcome to YoPhonePy Bot, {message.sender.first_name}! \n
    """
    bot.send_message(message.chat_id, help_text)


if __name__ == "__main__":
    bot = YoPhonePy(
        api_key=your_api_key_here
    )

    bot.command_handler("start")(start_command)
    bot.command_handler("help")(help_command)

    # Start polling for updates
    bot.start_polling(interval=3)

Sending Media and Buttons

Send Files:

bot.send_files(chat_id="123456", file_paths=["/path/to/file1.png"], caption="Here is your file!")

Send Buttons:

bot.send_message_with_buttons(
    chat_id="123456",
    text="Choose an option:",
    options=[{"text": "Option 1", "value": "opt1"}, {"text": "Option 2", "value": "opt2"}]
)

Webhooks

Set a Webhook:

bot.set_webhook("https://yourdomain.com/webhook")

Get Webhook Info:

bot.get_webhook_info()

Remove Webhook:

bot.remove_webhook()

Utilities

  • configure_commands(commands: List[Dict[str, str]]) — Set available slash commands
  • get_bot_info() — Fetch bot metadata
  • get_channel_user_status(channel_id, user_id) — Get user's status in a channel

License

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


For more information, refer to the official YoPhone API Documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yophonepy-0.1.5.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yophonepy-0.1.5-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file yophonepy-0.1.5.tar.gz.

File metadata

  • Download URL: yophonepy-0.1.5.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for yophonepy-0.1.5.tar.gz
Algorithm Hash digest
SHA256 5841d02d4231a14bfbe5d0dd93c85f6c5c5ed7d66255e9e55b1e7718d0f921f0
MD5 c4faebbe4b4335a4cab4791a43f50181
BLAKE2b-256 3e4675ec84577cf83d8465329674fe46c58a3facc0758efc1173f61595d82d66

See more details on using hashes here.

File details

Details for the file yophonepy-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: yophonepy-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for yophonepy-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2f4ce956f848d10c211daa623852467115d039ce48406518fcd320c6cfa50779
MD5 bb2631ab49b6ae5cc6d0ce694ff78d76
BLAKE2b-256 5197431a924afb7ea214f79b1e29f6af29bbf7aca075ceec44b9d4b6d7bd1044

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page