|
@@ -9,6 +9,8 @@ import json
|
|
|
import urllib3
|
|
import urllib3
|
|
|
import base64
|
|
import base64
|
|
|
import re
|
|
import re
|
|
|
|
|
+import signal
|
|
|
|
|
+import sys
|
|
|
|
|
|
|
|
from dotenv import load_dotenv
|
|
from dotenv import load_dotenv
|
|
|
from openai import AsyncOpenAI, OpenAIError
|
|
from openai import AsyncOpenAI, OpenAIError
|
|
@@ -585,4 +587,28 @@ async def before_update_status():
|
|
|
|
|
|
|
|
|
|
|
|
|
# Démarrer le bot Discord
|
|
# Démarrer le bot Discord
|
|
|
-client_discord.run(DISCORD_TOKEN)
|
|
|
|
|
|
|
+async def exit_app(signum=None):
|
|
|
|
|
+ globals.logger.debug("Received signal {}".format(signum))
|
|
|
|
|
+ globals.logger.info("Closing all tasks...")
|
|
|
|
|
+
|
|
|
|
|
+ # On ferme la connexion à Discord
|
|
|
|
|
+ if client_discord:
|
|
|
|
|
+ await client_discord.close()
|
|
|
|
|
+
|
|
|
|
|
+ globals.logger.critical("Script halted.")
|
|
|
|
|
+
|
|
|
|
|
+def handle_signal(signum, frame):
|
|
|
|
|
+ loop = asyncio.get_event_loop()
|
|
|
|
|
+ loop.create_task(exit_app(signum))
|
|
|
|
|
+
|
|
|
|
|
+# Starting main function
|
|
|
|
|
+if __name__ == "__main__":
|
|
|
|
|
+ # Catch SIGINT signal (Ctrl-C)
|
|
|
|
|
+ signal.signal(signal.SIGINT, handle_signal)
|
|
|
|
|
+ signal.signal(signal.SIGTERM, handle_signal)
|
|
|
|
|
+
|
|
|
|
|
+ try:
|
|
|
|
|
+ # Démarrer le bot Discord
|
|
|
|
|
+ client_discord.run(DISCORD_TOKEN)
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ globals.logger.error("Encountered exception while running the bot: {}".format(e))
|