Перейти к содержанию

Быстрый старт

Требования и установка

Для Pyromax 0.8 нужен Python 3.11 или новее.

python -m pip install pyromax

Через uv:

uv add pyromax

Создание приложения

import asyncio

from pyromax import Dispatcher, MaxApi
from pyromax.filters import Command
from pyromax.models import Message

dispatcher = Dispatcher()


@dispatcher.message(Command("ping"), from_me=True)
async def ping(message: Message) -> None:
    await message.reply("Pong!")


async def main() -> None:
    api = await MaxApi()
    await dispatcher.start_polling(max_api=api)


asyncio.run(main())

Конструкция await MaxApi(...) используется намеренно: асинхронный конструктор создаёт выбранные транспорт, протокол и маппер, после чего выполняет авторизацию. start_polling() читает и обрабатывает события до отмены задачи.

Использование готового токена

api = await MaxApi(
    token="YOUR_TOKEN",
    transport="websocket",
    device_type="WEB",
)

Не сохраняйте токен в Git. Загружайте его из переменной окружения или хранилища секретов. Токен связан со сценарием авторизации и backend, в котором был получен.

Разделение обработчиков по роутерам

from pyromax import Dispatcher, Router
from pyromax.models import Message

dispatcher = Dispatcher()
messages = Router(name="messages")


@messages.message()
async def handle_message(message: Message) -> None:
    await message.answer("Получено")


dispatcher.include_router(messages)

У одного роутера может быть только один родитель. Ссылки на самого себя и циклические графы запрещены.

Что дальше