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
orlogin
. - 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
Built Distribution
File details
Details for the file yandexbot-0.2.1.tar.gz
.
File metadata
- Download URL: yandexbot-0.2.1.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Linux/6.10.10-200.fc40.x86_64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dc573bcd72a4b94b2855629133fd3aa2aceca88bb47894abfdf04ee1d6c1522 |
|
MD5 | ce8c34b26fdb1905ebd5199f6d2a17b7 |
|
BLAKE2b-256 | 176680fbdaf537b7e18e24fa1b8f6032ae90c0b69dd11621726745669709e9d4 |
File details
Details for the file yandexbot-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: yandexbot-0.2.1-py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Linux/6.10.10-200.fc40.x86_64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a50835c6af7be004d2fb98ba2973169d637364341cb622c8e34b683841152b40 |
|
MD5 | 78e7ce23567287fe5d41399cbdfc9aa3 |
|
BLAKE2b-256 | 3036e2ca9038bbbfeb36bd5d18a369882872a35fd6bf939f20ea039f7b2f4389 |