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

Команды

Обработка текстовых команд с аргументами.

import asyncio
from maxgram import Bot, Dispatcher, Router
from maxgram.filters import Command, CommandObject
from maxgram.types import BotStarted

bot = Bot(token="YOUR_BOT_TOKEN")
dp = Dispatcher()
router = Router()

@router.bot_started()
async def start(event: BotStarted):
    await event.answer(text=f"Welcome, {event.user.first_name}!")

@router.message(Command("help"))
async def help_cmd(message, bot):
    await message.answer(
        text="Available commands:\n"
        "/start - Start bot\n"
        "/help - Show help\n"
        "/echo <text> - Echo text\n"
        "/upper <text> - Uppercase text"
    )

@router.message(Command("echo"))
async def echo_cmd(message, command: CommandObject, bot):
    if command.args:
        await message.answer(text=command.args)
    else:
        await message.answer(text="Usage: /echo <text>")

@router.message(Command("upper"))
async def upper_cmd(message, command: CommandObject, bot):
    if command.args:
        await message.answer(text=command.args.upper())
    else:
        await message.answer(text="Usage: /upper <text>")

@router.message()
async def fallback(message, bot):
    await message.answer(text="Unknown command. Try /help")

dp.include_router(router)
asyncio.run(dp.start_polling(bot))