Уведомления

Группа в Telegram: @pythonsu

#1 Май 13, 2024 11:36:55

ZloyKotya
Зарегистрирован: 2024-05-13
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

aiogram + pyrogram

Ребят вопросик есть, не пинайте только я только учусь, пытаюсь запустить двух ботов в одном коде, один на aiogram обычный бот, второй на pyrogram юзер бот, с запуском проблем вроде нет через asyncio.gather. А вот с закрытием есть проблема, по ctrl+c пирограмовский закрывается, а вот aiogram не хочет прекращать работу. Сделал костыль через sys.exit и то он заработал когда я его в хэндлеры запихал, из main файла не хотел работать, работает оп команде aiogram боту, не нравиться. Кто может помочь?

Офлайн

#2 Май 15, 2024 11:32:35

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

aiogram + pyrogram

Для примера

 import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
API_TOKEN = 'your_api_token'
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    await message.reply("Hello! I'm a bot!")
@dp.message_handler(commands=['stop'])
async def stop(message: types.Message):
    await message.reply("Stopping the bot...")
    await dp.bot.close()  # Close the bot
async def shutdown(dispatcher: Dispatcher):
    await dispatcher.bot.close()
    await dispatcher.storage.close()
    await dispatcher.storage.wait_closed()
if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    try:
        loop.create_task(executor.start_polling(dp, skip_updates=True))
        loop.run_forever()
    except KeyboardInterrupt:
        loop.run_until_complete(shutdown(dp))
        print("Bot stopped gracefully.")



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version