Python module based on https://core.telegram.org/bots/api
Project description
Install :
pip install -U zdgram
How to use?
- Config your bot :
from zdgram import Bot, types
API_TOKEN = "API_TOKEN_HERE"
bot = Bot(API_TOKEN, allowed_updates=["message"])
- Add handlers to recive updates from telegram:
- Any update from telegram:
@bot.onUpdate
async def on_updates(bot: Bot, update: types.Update):
print(update)
- message and edited_message:
@bot.onMessage()
async def on_message(bot: Bot, message: types.Message):
print(message)
@bot.onEditedMessage()
async def on_edited_message(bot: Bot, message: types.Message):
print(message)
# Custom filter
def filter_admin(message: types.Message):
admins = [123456789, 987654321]
return bool(message.from_user.id in admins)
@bot.onMessage(func=filter_admin)
@bot.onEditedMessage(func=filter_admin)
async def on_custom_filter(bot: Bot, message: types.Message):
print(message)
# Echo Bot
@bot.onMessage(func=lambda m: m.text)
async def echo(bot: Bot, message: types.Message):
return await bot.sendMessage(
message.chat.id,
message.text,
entities=message.entities
)
- Callback Queries .
@bot.onCallbackQuery()
async def on_callback_query(bot: Bot, callback_query: types.CallbackQuery):
return await bot.sendMessage(
callback_query.message.chat.id,
callback_query.data
)
- Inline Queries .
@bot.onInlineQuery()
async def on_inline_query(bot: Bot, inline_query: types.InlineQuery):
print(inline_query)
- Start the bot:
import logging
logging.basicConfig(level=logging.INFO)
bot.run()
- Start multiple bots:
import logging
from zdgram import run_multiple_bots, Bot, types, enums
logging.basicConfig(level=logging.INFO)
bot_1 = Bot("API_TOKEN_1")
bot_2 = Bot("API_TOKEN_2")
@bot_1.onMessage()
@bot_2.onMessage()
async def on_message(bot: Bot, message: types.Message):
return await bot.sendMessage(
message.chat.id,
(await bot.getMe()).mention.markdown,
parse_mode=enums.ParseMode.MARKDOWN
)
bot_1.run(run_multiple_bots([bot_1, bot_2]))
- Create Listener ( Conversation ):
from zdgram import types, enums, Bot
bot = Bot(bot_token="")
def filter_text_and_private(m: types.Message):
return bool(m.text and m.chat.type == enums.ChatType.PRIVATE)
@bot.onMessage(func=filter_text_and_private)
async def on_message(bot: Bot, message: types.Message):
await bot.sendMessage(
message.chat.id,
"Send your name",
reply_to_message_id=message.id
)
msg = await bot.listen(filter_text_and_private)
return await bot.sendMessage(
message.chat.id,
"Your name is : " + msg.text
)
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
zdgram-0.1.dev7.tar.gz
(35.3 kB
view details)
Built Distribution
zdgram-0.1.dev7-py3-none-any.whl
(73.9 kB
view details)
File details
Details for the file zdgram-0.1.dev7.tar.gz
.
File metadata
- Download URL: zdgram-0.1.dev7.tar.gz
- Upload date:
- Size: 35.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3daecb90023db119ac25e4bf0e6fd833ec9642a1c91b6ccd66a915f7b29bc9a |
|
MD5 | 9af427e1c336b18145f8ef7fe2fdb938 |
|
BLAKE2b-256 | 89842e2bd66827fe736dffdd1b1d1d2c986763f6fe036c316f89f40f9bc50eb6 |
File details
Details for the file zdgram-0.1.dev7-py3-none-any.whl
.
File metadata
- Download URL: zdgram-0.1.dev7-py3-none-any.whl
- Upload date:
- Size: 73.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0d0e5da988feb93bb49c2e2cddb1f54c42f109678fa89b2c273a4def599bd1d |
|
MD5 | 7469528104f5aa3203e6366722d4819b |
|
BLAKE2b-256 | 14d3b6feee0ab690fe7e9d4b4c255930c1981de9f79c687e35508dab15d1dded |