• Как остановить работу Телеграмм Бота?

    Vindicar
    @Vindicar
    RTFM!
    Это будет непросто.
    Стандартный input() - строго синхронный, он остановит выполнение программы до своего завершения.
    Можно попробовать что-то в духе:
    import asyncio
    
    loop = asyncio.get_event_loop()
    bot = Bot(token=TOKEN)
    dp = Dispatcher(bot=bot)
    
    async def delay_exit():
        #запускаем input() без параметров в отдельном потоке
        # await не продолжит выполнение, пока поток не отработает
        # но в то же время цикл бота будет работать независимо от этого потока
        await loop.run_in_executor(None, input) 
        dp.stop_polling()
        await dp.wait_closed()
        await bot.close()
    
    if __name__ == '__main__':
        loop.create_task(delay_exit()) # планируем выполнение delay_exit() и продолжаем
        loop.run_until_complete(dp.start_polling()) # работаем, пока dp.start_polling() не выполнится
    Ответ написан
    Комментировать