Skip to main content

No project description provided

Project description

BotAPI

Overview

The BotAPI class provides an interface for interacting with the Yandex Bot API. This class allows you to send messages (text, file, image) and manage incoming messages via polling. You can register message handlers using regular expressions and set up custom logic to process incoming messages.

Features

  • Send text messages to users via chat_id or login.
  • Send file messages by specifying a file path.
  • Send image messages with an image file path.
  • Poll for new messages continuously.
  • Decorate message handlers to process specific patterns using regular expressions.

Installation

Ensure you have the necessary dependencies installed:

pip install httpx

Usage

Initialization

To initialize the bot, you need to pass the OAuth token:

from bot_api import BotAPI

bot = BotAPI(token="your-oauth-token")

Sending Messages

You can send different types of messages using the following methods:

  • send_text_message(message: Message, text: str)
  • send_file_message(message: Message, file_path: str)
  • send_image_message(message: Message, image_path: str)

Example to send a text message:

await bot.send_text_message(message, "Hello, World!")

Handling Incoming Messages

You can register handlers for messages using the @message_handler decorator. The handler can process messages matching a specific pattern.

Example:

@bot.message_handler(r'^/start')
async def start_handler(message):
    await bot.send_text_message(message, "Welcome to the bot!")

Polling for Messages

To start polling for new messages, use the start_polling method:

await bot.start_polling()

This will continuously poll for new messages and process them using registered handlers.

Example Bot

Here is a complete example of setting up a simple bot that responds to the /start command:

from bot_api import BotAPI

bot = BotAPI(token="your-oauth-token")

@bot.message_handler(r'^/start')
async def start_handler(message):
    await bot.send_text_message(message, "Welcome to the bot!")

async def main():
    await bot.start_polling()

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

Methods

get_new_messages()

Fetches new messages from the Yandex Bot API.

call_api_for_messages()

Makes a request to the Yandex Bot API to retrieve updates and handles the polling offset.

send_text_message(message: Message, text: str)

Sends a text message to the recipient.

send_file_message(message: Message, file_path: str)

Sends a file message to the recipient.

send_image_message(message: Message, image_path: str)

Sends an image message to the recipient.

get_recipient_info(message: Message)

Determines whether to use the login or chat_id to send the message.

message_handler(pattern)

A decorator to register a message handler for a specific pattern (regex or string).

process_message(message: Message)

Processes an incoming message by matching it with a registered handler.

start_polling()

Begins polling for new messages at the defined interval.

License

This project is licensed under the MIT License.

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

yandexbot-0.2.3.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

yandexbot-0.2.3-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file yandexbot-0.2.3.tar.gz.

File metadata

  • Download URL: yandexbot-0.2.3.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.6 Linux/6.10.12-200.fc40.x86_64

File hashes

Hashes for yandexbot-0.2.3.tar.gz
Algorithm Hash digest
SHA256 83637d5dee1a451d8411ad7bc68177d7134e50031a9ea81d515808384cd4223b
MD5 1f4756b4a2594f626752f29428b77e34
BLAKE2b-256 c0effee863cd17a6fa73cb3349d62287a3941e9898a0c9e40a76625c8e24eeb8

See more details on using hashes here.

File details

Details for the file yandexbot-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: yandexbot-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.6 Linux/6.10.12-200.fc40.x86_64

File hashes

Hashes for yandexbot-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8d129fb70285de77fa6b32a41013d47c09ad755213723ee16c51364d49189c8e
MD5 e9c9b1b0d83f68aa7a331fffe45512d7
BLAKE2b-256 4e91caf67e89e6592b45e536711af043e4f507232738da963d7e948aa7e4b26c

See more details on using hashes here.

Supported by

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