diff --git a/src/main.py b/src/main.py index 0163f71..7567ba4 100644 --- a/src/main.py +++ b/src/main.py @@ -60,7 +60,7 @@ if __name__ == "__main__": # 3. Garde-fou Discord if not CheckDiscord.isdiscordrunning(): msg = CustomMessageBox( - title="La Tanière: Discord non détecté", + title="Launcher La Tanière: Discord non détecté", message="Discord ne semble pas lancé.\n\n" "Tu dois avoir démarré Discord et y être connecté pour utiliser l'application.\n\n" "Lorsque cela sera fait, relance le launcher.", @@ -72,17 +72,18 @@ if __name__ == "__main__": # On récupère l'ID stocké (sera "" si absent grâce au schéma) stored_user_id = config.get_discord_user() - if not CheckDiscord.isuserconnected(): - msg = CustomMessageBox( - title="La Tanière: connexion Discord", - message="Tu n'est pas connecté à Discord\n\n" - "Assure-toi que tu es connecté à Discord.\n\n" - "Lorsque cela sera fait, relance le launcher.", - icon_type=CustomMessageBox.WARNING, - buttons=CustomMessageBox.OK - ) - msg.exec() - sys.exit(0) # On quitte proprement sans lancer MainWindow + if stored_user_id != "": # si pas encore d'id dans la config + if not CheckDiscord.isuserconnected(stored_user_id): + msg = CustomMessageBox( + title="Launcher La Tanière: connexion Discord", + message="Tu n'est pas connecté à Discord\n\n" + "Assure-toi que tu es connecté à Discord.\n\n" + "Lorsque cela sera fait, relance le launcher.", + icon_type=CustomMessageBox.WARNING, + buttons=CustomMessageBox.OK + ) + msg.exec() + sys.exit(0) # On quitte proprement sans lancer MainWindow # 4. Lancement de l'application si tout est OK window = MainWindow(bundle_dir, config) diff --git a/src/tools/discord_tools.py b/src/tools/discord_tools.py index 7fa6288..b0eff43 100644 --- a/src/tools/discord_tools.py +++ b/src/tools/discord_tools.py @@ -15,7 +15,10 @@ class CheckDiscord: @staticmethod def isdiscordrunning() -> bool: for process in psutil.process_iter(["name"]): - if process.info["name"].lower() == "discord.exe": + if (process.info["name"].lower() == "discord.exe" or + process.info["name"].lower() == "discordcanary.exe" or + process.info["name"].lower() == "discord" or + process.info["name"].lower() == "discord canary"): return True return False @@ -23,6 +26,7 @@ class CheckDiscord: def isuserconnected(clientid: str) -> bool: rpc = Presence(clientid) try: + rpc.connect() return True except Exception: return False