A library for simultaneous operation of a large number of telegram bots with a single code base.
Python - telegram API adapter. Based in Pydantic model libraries
You need to implement a web interface for a webhook yourself. I recommend FastAPI.
pip install megabot
- Fill in the dispatcher tokens in a convenient way for you in the format dict(int(bot_id), str(token)
- Define callback, message, and command handlers
- Connect the dispatcher to processing incoming webhooks.
- Done!
The filtering of the callbacks was taken from aiogram, the syntax is identical
example main.py
from megabot.dispatcher import Dispatcher
from megabot.poster import MessageService
from megabot.utils.callback_data import CallbackData
menu_cat = CallbackData('cat', 'id') # Callback fabric
message_service = MessageService()
async def hello_word(callback: CallbackQuery):
print(callback.data)
await message_service.callback_answer(self.dp.tokens[bot_id], callback.id)
dp = Dispatcher()
bot_id = 9***9
token = '9***9:AA*****AA'
dp.tokens[bot_id] = token
dp.register_handler_callback(hello_word, callback_filter=menu_cat.filter())
webhook router file:
from main import dp
async def data_router(self, bot_id: int, data: dict) -> NoReturn:
if not(dp.tokens.get(bot_id, None)):
dp.tokens[bot_id] = token
await dp.message_router(bot_id, data)
for local testing: NOT FOR PROD!!! add to main.py
from megabot.poster import get_updates
offset = 0
async def check_updates():
global offset
while True:
result, error = await get_updates(token, offset)
if result:
result_list = result['result']
if len(result_list) > 0:
print(result)
offset = result_list[-1]['update_id']+1
await dp.message_router(bot_id, result)
else:
print(error)
await asyncio.sleep(1)
await def start_bot()
asyncio.create_task(check_updates())
add start_bot() to main file web_hooks
Metadata
Release files for megabot 0.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| megabot-0.0.6.tar.gz | 12.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| megabot-0.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.9 kB
Release files / megabot-0.0.6.tar.gz
| Download URL | megabot-0.0.6.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3b975b85d86800f195dc854269687bcbd2b8eb92a1d86c396310067ea562b29f
|
|
BLAKE2b-256 checksum How to use checksums |
e992018a8ecb4813f2a2a2bd46b59de0dc73a0606c86ef495ecc96f06bb3a0d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0
|
Release files / megabot-0.0.6-py3-none-any.whl
| Download URL | megabot-0.0.6-py3-none-any.whl |
|---|---|
| Size | 16.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0efd7b7c7cc7ec46dd6f8a98978e006b712404d976611af9a2415f12528b10d
|
|
BLAKE2b-256 checksum How to use checksums |
3616419fc9fb9225c4fc52209abae73b430095e667f38beb3dfbe9d1ac168b26
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0
|