Быстрый старт¶
Требования и установка¶
Для 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)
У одного роутера может быть только один родитель. Ссылки на самого себя и циклические графы запрещены.
Что дальше¶
- Выберите способ авторизации.
- Разберитесь с роутингом и DI.
- Добавьте фильтры, middleware или FSM.