Поиск
Написать публикацию
Обновить

Моя лента

Тип публикации
Порог рейтинга
Уровень сложности
Предупреждение
Войдите или зарегистрируйтесь, чтобы настроить фильтры

Новости

Истории

Ближайшие события

Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область
Пост

Корректно пишем главный файл телеграмм бота на Aiogram 3.x

Друзья, если вы читали серию моих статей про разработку ботов через aiogram 3, то видели что я там делился структурой своего бота, в частности главным файлом. Внес в него некоторые корректировки:

async def set_commands(commands):
    await bot.set_my_commands(commands, BotCommandScopeDefault())


async def start_bot():
    await set_commands()
    await bot.send_message(amin.id, 'я запущен и готов к работе')


async def stop_bot():
    await bot.send_message(amin.id, 'бот остановлен')


async def main():
    # регистрация роутера
    dp.include_router(start_router)

    # регистрация функций
    dp.startup.register(start_bot)
    dp.shutdown.register(stop_bot)

    try:
        await bot.delete_webhook(drop_pending_updates=True)
        await dp.start_polling(bot, allowed_updates=dp.resolve_used_update_types())
    finally:
        await bot.session.close()
      

Функция, которая запускается при старте бота:

async def start_bot():
    # регистрация командного меню
    await set_commands()
    await bot.send_message(amin.id, 'я запущен и готов к работе')

Функция, которая запускается при завершении сессии:

async def stop_bot():
    await bot.send_message(amin.id, 'бот остановлен')

После функции нужно зарегистрировать:

dp.startup.register(start_bot)
dp.shutdown.register(stop_bot)

И затем корректно закрыть сессию с ботом.

Благодарю за внимание. Подписывайтесь и ставьте лайки, если инфорамция была для вас полезной.

0
Комментарии2
1
2 ...