diff --git a/misskaty/__main__.py b/misskaty/__main__.py index 7d9e4b82..2ad4c32b 100644 --- a/misskaty/__main__.py +++ b/misskaty/__main__.py @@ -62,10 +62,6 @@ async def start_bot(): pass asyncio.create_task(auto_clean()) await idle() - await app.stop() - await user.stop() - loop.close() - LOGGER.info("[INFO]: Bye!") home_keyboard_pm = InlineKeyboardMarkup( @@ -337,5 +333,19 @@ General command are: return await client.answer_callback_query(query.id) +async def cleanup(): + await user.stop() + await app.stop() + + if __name__ == "__main__": - loop.run_until_complete(start_bot()) + try: + loop.run_until_complete(start_bot()) + except KeyboardInterrupt: + pass + except Exception as err: + logging.error(err.with_traceback(None)) + finally: + loop.run_until_complete(cleanup()) + loop.stop() + print("------------------------ Stopped Services ------------------------")