Easy-to-use asynchronous TDLib wrapper for Python.
Project description
Pytdbot

Pytdbot (Python TDLib) is an asynchronous TDLib wrapper for Telegram users/bots written in Python.
Features
Pytdbot
offers numerous advantages, including:
- Easy to Use: Designed with simplicity in mind, making it accessible for developers
- Performance: Fast and powerful, making it ready to fight
- Asynchronous: Fully asynchronous that allows for non-blocking requests and improved responsiveness
- Scalable: Easily scalable using TDLib Server
- Well-typed: Provides clear and well-defined methods and types to enhance developer experience
- Decorator-Based Updates: Simplifies the implementation of update handlers through a decorator pattern
- Bound Methods: Features types bound methods for improved usability
- Unlimited Support: Supports Plugins, filters, TDLib types/functions and much more
Requirements
Installation
For better performance, it's recommended to install orjson or ujson.
You can install Pytdbot using pip:
pip install pytdbot
To install the development version from Github, use the following command:
pip install git+https://github.com/pytdbot/client.git
Examples
Basic example:
import asyncio
from pytdbot import Client, types
client = Client(
token="1088394097:AAQX2DnWiw4ihwiJUhIHOGog8gGOI", # Your bot token or phone number if you want to login as user
api_id=0,
api_hash="API_HASH",
lib_path="/path/to/libtdjson.so", # Path to TDjson shared library
files_directory="BotDB", # Path where to store TDLib files
database_encryption_key="1234echobot$",
td_verbosity=2, # TDLib verbosity level
td_log=types.LogStreamFile("tdlib.log", 104857600), # Set TDLib log file path
)
@client.on_updateNewMessage()
async def print_message(c: Client, message: types.UpdateNewMessage):
print(message)
@client.on_message()
async def say_hello(c: Client, message: types.Message):
msg = await message.reply_text(f"Hey {await message.mention(parse_mode='html')}! I'm cooking up a surprise... 🍳👨🍳", parse_mode="html")
async with message.action("choose_sticker"):
await asyncio.sleep(5)
await msg.edit_text("Boo! 👻 Just kidding.")
# Run the client
client.run()
For more examples, check the examples folder.
Thanks to
-
You for viewing or using this project.
-
@levlam for maintaining TDLib and for the help to create Pytdbot.
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Pytdbot-0.9.0.dev4.tar.gz
(421.8 kB
view details)
File details
Details for the file Pytdbot-0.9.0.dev4.tar.gz
.
File metadata
- Download URL: Pytdbot-0.9.0.dev4.tar.gz
- Upload date:
- Size: 421.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
60e26485d3af7f0f3873fc14151e64710315aed4b10d208fe48ed61aec36600e
|
|
MD5 |
6c2f49a3eb6da54c4905fa9fb8a6e1b2
|
|
BLAKE2b-256 |
b502ea0107dc82ce52305a3f98a032ac5f47017b4aa82d034f1a149791c89a34
|