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.1.tar.gz (7.7 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.1-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for yophonepy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ad740efd69546f250f995d9dfb6a8ade825c83adbbdfe5ed9502848adcc79c84
MD5 1db052c07dde0cc66fc9de3178c9cfc8
BLAKE2b-256 7f77dd5c23edff585c46136285ece6b977e5d49bef133eea1af07a6caf1c0e76

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for yophonepy-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 47c0c122a962b8fc8bd9798e22872b5d7c277a736560d16721956c0a21a895c3
MD5 76995922cce4ffbd11ecc957b884aa25
BLAKE2b-256 0436f27b87842aea9489473d6ba653cd6c45384453e6056ae8cdf2ed480e826f

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