Asynchronous framework for MAX.ru bots
Project description
maxo
Асинхронный фреймворк для разработки ботов из max.ru
Документация
Оригинальный репозиторий
maxo/dialogs переделаны из aiogram_dialog
Установка
Через pip:
pip install maxo==0.4.0
В pyproject.toml:
[project]
dependencies = [
"maxo==0.4.0",
]
Быстрый старт
Больше примеров в примерах
Эхо-бот
import logging
import os
from maxo import Bot, Dispatcher
from maxo.routing.updates.message_created import MessageCreated
from maxo.utils.facades.updates.message_created import MessageCreatedFacade
from maxo.utils.long_polling import LongPolling
bot = Bot(os.environ["TOKEN"])
dispatcher = Dispatcher()
@dispatcher.message_created()
async def echo_handler(update: MessageCreated, facade: MessageCreatedFacade) -> None:
text = update.message.body.text or "Текста нет"
await facade.answer_text(text)
logging.basicConfig(level=logging.INFO)
LongPolling(dispatcher).run(bot)
Команды
import logging
import os
from maxo import Bot, Dispatcher, Router
from maxo.routing.filters import CommandStart
from maxo.routing.updates.message_created import MessageCreated
from maxo.utils.facades import MessageCreatedFacade
from maxo.utils.long_polling import LongPolling
bot = Bot(os.environ["TOKEN"])
router = Router()
@router.message_created(CommandStart())
# или @router.message_created(Command("start"))
async def start_handler(update: MessageCreated, facade: MessageCreatedFacade) -> None:
await facade.answer_text("Привет! Я бот")
def main():
logging.basicConfig(level=logging.INFO)
dispatcher = Dispatcher()
dispatcher.include(router)
LongPolling(dispatcher).run(bot)
if __name__ == "__main__":
main()
Клавиатура
import logging
import os
from magic_filter import F
from maxo import Bot, Dispatcher, Router
from maxo.integrations.magic_filter import MagicFilter
from maxo.routing.filters import CommandStart
from maxo.routing.updates import MessageCreated, MessageCallback
from maxo.utils.builders import KeyboardBuilder
from maxo.utils.facades import MessageCallbackFacade, MessageCreatedFacade
from maxo.utils.long_polling import LongPolling
bot = Bot(os.environ["TOKEN"])
router = Router()
@router.message_created(CommandStart())
async def start_handler(
update: MessageCreated,
facade: MessageCreatedFacade,
) -> None:
keyboard = (
KeyboardBuilder()
.add_callback(
text="Нажми меня",
payload="my_callback",
)
.build()
)
await facade.answer_text(
"Это сообщение с клавиатурой:",
keyboard=keyboard,
)
@router.message_callback(MagicFilter(F.payload == "my_callback"))
async def button_handler(
update: MessageCallback,
facade: MessageCallbackFacade,
bot: Bot,
) -> None:
await facade.callback_answer("Вы нажали на кнопку!")
await bot.send_message(
user_id=update.user.user_id,
text="Вы нажали на кнопку!",
)
def main():
logging.basicConfig(level=logging.INFO)
dispatcher = Dispatcher()
dispatcher.include(router)
LongPolling(dispatcher).run(bot)
if __name__ == "__main__":
main()
Связь
Если у вас есть вопросы, вы можете задать их в Телеграме @maxo_py или Максе
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file maxo-0.4.0.tar.gz.
File metadata
- Download URL: maxo-0.4.0.tar.gz
- Upload date:
- Size: 146.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89de7c5426189fb2fbbca435f5fecc102b1e322003561365c2f1afbed61f6f09
|
|
| MD5 |
e35d71e85d73669bbe60b19e46c7f876
|
|
| BLAKE2b-256 |
f36d6985d77b8ade2a4b1291605f4909f8c256c4d9f2e2ca5e889525fd649aa0
|
File details
Details for the file maxo-0.4.0-py3-none-any.whl.
File metadata
- Download URL: maxo-0.4.0-py3-none-any.whl
- Upload date:
- Size: 298.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd990784f863bd7e31c51d9177b991a44af53c5cddc20daf18f15981ec3ecfbd
|
|
| MD5 |
c7b897607b80c6a4024930458900703c
|
|
| BLAKE2b-256 |
e0941b5996361dc0482f04e911791ce0f4785c53bc3d2cb9bcf2142aff58a19a
|