Pytdbot (Python TDLib) is an asynchronous TDLib wrapper for Telegram users/bots written in Python.
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
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
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.
-
You for viewing or using this project.
-
@levlam for maintaining TDLib and for the help to create Pytdbot.
MIT License