Skip to main content

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

  1. Fill in the dispatcher tokens in a convenient way for you in the format dict(int(bot_id), str(token)
  2. Define callback, message, and command handlers
  3. Connect the dispatcher to processing incoming webhooks.
  4. 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)

Source distribution for megabot 0.0.6
File Size Uploaded
megabot-0.0.6.tar.gz 12.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for megabot 0.0.6
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.6 This release

2 release files

0.0.4

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page