Skip to main content

#maxbot

Асинхронный Python-фреймворк для создания ботов в мессенджере MAX .

🎯 Синтаксис как у aiogram 🚀 Поддержка polling (с очередями и параллелизмом) 💬 Inline-кнопки 📦 Работа с файлами (image / video / audio / file) ⚡ Оптимизирован под нагрузку

⚠️ Важные изменения API (обязательно прочитать) 🔐 Авторизация

❌ access_token в query больше НЕ поддерживается ✅ Используется только заголовок:

Authorization: 📎 Работа с файлами (новая логика)

Теперь ВСЕ типы файлов работают одинаково:

Получаем upload_url через /uploads Загружаем файл Получаем payload (JSON) Передаём весь payload в attachments

❌ Старое:

"payload": { "token": "..." }

✅ Новое:

"payload": { ...весь JSON ответа upload... } 🎬 Видео / аудио

Раньше:

token брался из /uploads

Теперь:

token приходит после загрузки файла используется через payload 💬 Reply (ответ на сообщение)

Добавлено поле link:

"link": { "type": "reply", "mid": "message_id" } Установка pip install umaxbot Пример from maxbot.bot import Bot from maxbot.dispatcher import Dispatcher from maxbot.types import InlineKeyboardMarkup, InlineKeyboardButton, Message

bot = Bot("YourToken") dp = Dispatcher(bot)

@dp.message() async def on_message(message: Message): keyboard = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="👋 Поздороваться", callback_data="hello")] ]) await bot.send_message( chat_id=message.sender.id, text="Привет! Нажми на кнопку ниже:", reply_markup=keyboard )

@dp.callback() async def on_callback(cb): if cb.payload == "hello": await bot.send_message(cb.user.id, "Приятно познакомиться!") 🚀 Новое: reply (ответ на сообщение) await bot.reply( message_id=message.mid, chat_id=message.chat_id, text="Ответ на сообщение" ) 🚀 Производительность (новый Dispatcher)

Теперь Dispatcher поддерживает:

✅ очередь (Queue) ✅ воркеры ✅ параллельную обработку ✅ ограничение нагрузки (Semaphore) ✅ защиту от падений Пример настройки: dp = Dispatcher(bot, workers=10, max_tasks=200) Рекомендации: Нагрузка Настройки Маленькая workers=5, max_tasks=50 Средняя workers=10, max_tasks=200 Высокая workers=20+, max_tasks=500+ Класс Bot: основные методы Метод Описание get_me() Получить информацию о боте send_message(...) Отправить сообщение reply(...) Ответить на сообщение send_file(...) Отправить файл update_message(...) Изменить сообщение delete_message(...) Удалить сообщение answer_callback(...) Ответить на callback download_media(...) Скачать файл

Все методы асинхронные!

📎 Пример отправки файла await bot.send_file( chat_id=message.chat_id, file_path="video.mp4", media_type="video", text="Вот видео" ) 📥 Работа с медиа @dp.message() async def on_message(msg: Message): audio = msg.get_attachment("audio") if audio: await audio.download(bot, "voice.ogg")

for img in msg.get_attachments("image"):
    await img.download(bot)

FSM (Finite State Machine) from maxbot.fsm import State, StatesGroup

class Form(StatesGroup): name = State() age = State()

@dp.message() async def on_message(msg: Message): await msg.set_state(Form.name) await msg.update_data(name="Вова") await msg.reset_state() Роутеры (Router) from maxbot.router import Router

router = Router()

@router.message() async def any_text(message): await message.reply("Любой текст!")

dp.include_router(router) Фильтры from maxbot.filters import F, StateFilter, TextStartsFilter

@dp.message(F.text == "привет") async def on_hello(msg): await msg.reply("И тебе привет!") Inline-клавиатуры kb = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Сайт", url="https://max.ru")], [InlineKeyboardButton(text="Нажми", callback_data="click")] ]) Типы Message Callback Attachment InlineKeyboardMarkup Dispatcher / Router FSM ⚠️ Ограничения API MAX До 30 запросов/сек Файлы до 4 ГБ Видео/аудио требуют времени на обработку 💡 Рекомендации для продакшена

Если планируешь масштаб:

Используй очередь (Redis / RabbitMQ) Выноси тяжёлые задачи (AI, генерация) в отдельные воркеры Кешируй upload payload (не загружай файлы повторно) Делай retry с backoff MAXBot

Быстрый старт, высокая производительность и архитектура, готовая к росту 🚀

Metadata

Release files for umaxbot 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for umaxbot 0.2.0
File Size Uploaded Provenance
umaxbot-0.2.0.tar.gz 12.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for umaxbot 0.2.0
File Interpreter ABI Platform
umaxbot-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.6 kB

Release files / umaxbot-0.2.0.tar.gz

Download URL umaxbot-0.2.0.tar.gz
Size 12.6 kB
Tags Source
SHA-256 checksum
How to use checksums
29d3e678f5e7e19cc3138ec229b8f106bb8f342201e8104cd1223c360ab48241
BLAKE2b-256 checksum
How to use checksums
9f03b9bd13249f5bcc171d5f8799a124e9c00156969209d465d6166a932cb68d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / umaxbot-0.2.0-py3-none-any.whl

Download URL umaxbot-0.2.0-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de930263c692d7b94113a4c782e2722c8d159521fe8b0a014a39e1157bf471f7
BLAKE2b-256 checksum
How to use checksums
45899da82553eba9dd1fae6e19ef7979e6670d1da8c5af7ac36b5685bd4f74e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Security for umaxbot 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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