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

Эхо-бот

Минимальный бот, который повторяет текст каждого сообщения.

import asyncio
from maxgram import Bot, Dispatcher, Router

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

@router.message()
async def echo(message, bot):
    await message.answer(text=message.body.text)

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

С блокирующим запуском

from maxgram import Bot, Dispatcher, Router

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

@router.message()
async def echo(message, bot):
    await message.answer(text=message.body.text)

dp.include_router(router)
dp.run_polling(bot)  # Автоматически использует uvloop если установлен

С логированием

import asyncio
import logging
from maxgram import Bot, Dispatcher, Router

logging.basicConfig(level=logging.INFO)

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

@router.startup()
async def on_startup(bot, dispatcher):
    me = await bot.get_me()
    logging.info("Bot started: %s (@%s)", me.first_name, me.username)

@router.message()
async def echo(message, bot):
    await message.answer(text=message.body.text)

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