Gestion refresh session_id au serveur

This commit is contained in:
2026-03-24 12:36:50 +01:00
parent 6eccea5b9d
commit e50b24dfec
3 changed files with 76 additions and 16 deletions

View File

@@ -36,6 +36,7 @@ class MainWindow(QMainWindow):
self.config = config_manager
self.stored_user_id = self.config.get_discord_user()
self.queue_thread = None
self.queue_position_value = None
# UI
self.ui = QUiLoader().load(f"{bundle_dir}/ui/mainwindow_vertical_pager.ui", self)
@@ -149,9 +150,39 @@ class MainWindow(QMainWindow):
def _on_connexion(self) -> None:
try:
session_id = GetServerTokenForDiscord.authenticate(Urls.API_URL.value)
GetServerTokenForDiscord.register_discord_user(self.stored_user_id, session_id)
if not self.stored_user_id or self.stored_user_id.isspace():
show_qt_error(
self,
"Connexion impossible",
"Aucun identifiant Discord n'est disponible. Merci de passer par la connexion Discord."
)
return
if not PlayerServerInfo.session_id:
PlayerServerInfo.session_id = GetServerTokenForDiscord.authenticate(Urls.API_URL.value)
GetServerTokenForDiscord.register_discord_user(
self.stored_user_id,
PlayerServerInfo.session_id,
)
if self.queue_position_value is None:
show_qt_error(
self,
"Connexion en attente",
"La position dans la file d'attente n'est pas encore connue."
)
return
if self.queue_position_value != 0:
show_qt_error(
self,
"Connexion en attente",
f"Tu dois attendre ton tour.\n\nPosition actuelle : {self.queue_position_value}"
)
return
FiveMLauncher.launch()
except ApiError as exc:
show_qt_error(self, "Connexion impossible", f"Erreur lors de la connexion.\n\n{exc}")
@@ -218,28 +249,26 @@ class MainWindow(QMainWindow):
self.queue_thread.start()
# 🧪 TEMP - Simule une position en queue pour tester l'UI
self.handle_update("position:3:10")
# self.handle_update("position:3:10")
def handle_update(self, message: str):
# print(f"[handle_update] reçu: {message}") # ← Debug
if message == "ok":
self.ui.queue_lbl.setVisible(False)
self.ui.queue_lbl.setVisible(True)
self.ui.queue_position.setVisible(False)
#self.ui.connexion_btn.setEnabled(True)
#self.ui.connexion_btn.setText("Lancer FiveM")
#self.launch_fivem()
self.ui.queue_lbl.setText("🚀 C'est votre tour !")
self.queue_position_value = 0
elif message == "ready":
self.ui.queue_lbl.setVisible(True)
self.ui.queue_position.setVisible(False)
self.ui.queue_lbl.setText("🚀 C'est votre tour !")
self.launch_fivem()
self.queue_position_value = 0
elif message.startswith("position:"):
_, pos, total = message.split(":")
self.queue_position_value = int(pos)
self.ui.queue_lbl.setVisible(True)
self.ui.queue_position.setVisible(True)
#self.ui.queue_position.setText(f"{pos} / {total}") <- si on veux le total de slots
self.ui.queue_position.setText(f"{pos}")
def launch_fivem(self):