From bad0cb43bfc2fae4401f2a983293ca270ccddda8 Mon Sep 17 00:00:00 2001 From: Xarkam Date: Mon, 23 Mar 2026 20:55:17 +0100 Subject: [PATCH] Add register user endpoint for connexion --- src/config/constants.py | 2 ++ src/fivemserver/get_server_token.py | 13 ++++++++----- src/ui/main_window.py | 10 +++++++--- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/config/constants.py b/src/config/constants.py index f163ad4..ea1463e 100644 --- a/src/config/constants.py +++ b/src/config/constants.py @@ -38,6 +38,7 @@ class ApiEndPoints(Enum): QUEUE_STATUS = '/queue/status/' QUEUE_LEAVE = '/queue/leave' QUEUE_JOIN = '/queue/join' + REGISTER_USER = '/api_v2/connection/register' class Glow(Enum): COLOR = QColor(255, 140, 0, 255) @@ -52,3 +53,4 @@ class Glow(Enum): class PlayerServerInfo: is_staff: bool = False is_whitelist: bool = False + session_id: str = None diff --git a/src/fivemserver/get_server_token.py b/src/fivemserver/get_server_token.py index b229f39..70ce9f3 100644 --- a/src/fivemserver/get_server_token.py +++ b/src/fivemserver/get_server_token.py @@ -66,11 +66,14 @@ class GetServerTokenForDiscord: return aesgcm.decrypt(nonce, encrypted_data, None) @staticmethod - def register_discord_user(user_id: str, server = Urls.API_URL.value) -> str: + def register_discord_user(discord_user_id: str, session_id: str, server = Urls.API_URL.value) -> bool: if server is None: server = Urls.API_URL.value - registeredId = requests.post(server + "/api_v2/connection/register", verify=False, json={ - "x-session-id": user_id - }).json() + registeredId = requests.post(server + "/api_v2/connection/register", verify=False, headers={ + "x-session-id": session_id, + }, + json={ + "discord_id": discord_user_id + }).json() - return registeredId["discord_id"] + return registeredId["success"] diff --git a/src/ui/main_window.py b/src/ui/main_window.py index 07be6b1..b77d735 100644 --- a/src/ui/main_window.py +++ b/src/ui/main_window.py @@ -18,7 +18,7 @@ from discord import discord_oauth from fivemserver.whitelistmanager import WhiteList from fivemserver.fivemlauncher import FiveMLauncher from fivemserver.queuemanager import QueueManager - +from fivemserver.get_server_token import GetServerTokenForDiscord from fake_patch_notes import patch_note # For Linux Wayland to authorize moving window @@ -137,6 +137,8 @@ class MainWindow(QMainWindow): # ------------------------------------------------------------------ def _on_connexion(self) -> None: + GetServerTokenForDiscord.register_discord_user(self.config.get_discord_user(), + GetServerTokenForDiscord.authenticate(Urls.API_URL.value)) FiveMLauncher.launch() @staticmethod @@ -148,7 +150,9 @@ class MainWindow(QMainWindow): self._glow.start() def _on_discord_auth_btn(self) -> None: - self.config.set_discord_user(discord_oauth.get_discord_user_id()) + test = discord_oauth.get_discord_user_id() + self.config.set_discord_user(test[0]) + PlayerServerInfo.session_id = test[1] self.config.save() self.ui.stackedWidget.setCurrentIndex(0) @@ -199,7 +203,7 @@ 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