From 720b004eca6d1b9242507897a15a1712432e8386 Mon Sep 17 00:00:00 2001 From: Xarkam Date: Thu, 19 Mar 2026 13:39:08 +0100 Subject: [PATCH] Refacto --- src/{tools => discord}/discord_oauth.py | 2 +- src/{tools => discord}/discord_tools.py | 4 ++-- .../get_server_token.py | 18 +++++++-------- src/fivemserver/whitelistmanager.py | 23 +++++++++++++++++++ src/main.py | 4 ++-- src/{tools => ui}/custom_message_box.py | 0 src/ui/main_window.py | 2 +- 7 files changed, 38 insertions(+), 15 deletions(-) rename src/{tools => discord}/discord_oauth.py (97%) rename src/{tools => discord}/discord_tools.py (92%) rename src/{tools => fivemserver}/get_server_token.py (86%) create mode 100644 src/fivemserver/whitelistmanager.py rename src/{tools => ui}/custom_message_box.py (100%) diff --git a/src/tools/discord_oauth.py b/src/discord/discord_oauth.py similarity index 97% rename from src/tools/discord_oauth.py rename to src/discord/discord_oauth.py index 4383907..4e78cb1 100644 --- a/src/tools/discord_oauth.py +++ b/src/discord/discord_oauth.py @@ -3,7 +3,7 @@ import webbrowser import os from urllib.parse import urlencode from http.server import HTTPServer, BaseHTTPRequestHandler -from tools.get_server_token import GetServerTokenForDiscord +from fivemserver.get_server_token import GetServerTokenForDiscord from config.constants import CLIENT_ID, REDIRECT_URI, SCOPES, AUTENTICATION_SUCCESS_MESSAGE # Disable stderr output diff --git a/src/tools/discord_tools.py b/src/discord/discord_tools.py similarity index 92% rename from src/tools/discord_tools.py rename to src/discord/discord_tools.py index 1a570b4..26f76b4 100644 --- a/src/tools/discord_tools.py +++ b/src/discord/discord_tools.py @@ -1,9 +1,9 @@ import psutil from pypresence.presence import Presence -from tools.get_server_token import GetServerTokenForDiscord +from fivemserver.get_server_token import GetServerTokenForDiscord from config.constants import Urls -from tools.discord_oauth import CLIENT_ID +from discord.discord_oauth import CLIENT_ID class DiscordToken: diff --git a/src/tools/get_server_token.py b/src/fivemserver/get_server_token.py similarity index 86% rename from src/tools/get_server_token.py rename to src/fivemserver/get_server_token.py index 4a909f5..b229f39 100644 --- a/src/tools/get_server_token.py +++ b/src/fivemserver/get_server_token.py @@ -65,12 +65,12 @@ class GetServerTokenForDiscord: aesgcm = AESGCM(GetServerTokenForDiscord.derived_key) # type: ignore[arg-type] return aesgcm.decrypt(nonce, encrypted_data, None) - # @staticmethod - # def register_discord_user(user_id: str, server = API_URL) -> str: - # if server is None: - # server = API_URL - # registeredId = requests.post(server + "/api_v2/connection/register", verify=False, json={ - # "x-session-id": user_id - # }).json() - # - # return registeredId["discord_id"] + @staticmethod + def register_discord_user(user_id: str, server = Urls.API_URL.value) -> str: + 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() + + return registeredId["discord_id"] diff --git a/src/fivemserver/whitelistmanager.py b/src/fivemserver/whitelistmanager.py new file mode 100644 index 0000000..2336b20 --- /dev/null +++ b/src/fivemserver/whitelistmanager.py @@ -0,0 +1,23 @@ +import requests +from urllib3 import disable_warnings +from urllib3.exceptions import InsecureRequestWarning + +# Supress only InsecureRequestWarning +disable_warnings(InsecureRequestWarning) + +WHITELIST_URL_ENDPOINT = f'iswhitelist/' + +class WhiteList: + @staticmethod + def checkwhitelist(url, discord_user_id: str) -> bool: + print('🗒️ Vérification de la whitelist...') + + response = requests.get(url + WHITELIST_URL_ENDPOINT + discord_user_id, verify=False) + api_data = response.json() + + if api_data['whitelisted']: + print("👍 Vous êtes en whitelist") + return True + else: + print('🙅‍♂️ Désole mais vous n\'êtes pas whitelisté sur le serveur.') + return False diff --git a/src/main.py b/src/main.py index 48b635f..4a5bed0 100644 --- a/src/main.py +++ b/src/main.py @@ -9,8 +9,8 @@ from PySide6.QtWidgets import QApplication from config.config_manager import ConfigManager # Imports pour la vérification Discord -from tools.discord_tools import CheckDiscord -from tools.custom_message_box import CustomMessageBox +from discord.discord_tools import CheckDiscord +from ui.custom_message_box import CustomMessageBox # Ne pas supprimer ! Enregistre les ressources Qt import resources # noqa: F401 - required to register Qt resources diff --git a/src/tools/custom_message_box.py b/src/ui/custom_message_box.py similarity index 100% rename from src/tools/custom_message_box.py rename to src/ui/custom_message_box.py diff --git a/src/ui/main_window.py b/src/ui/main_window.py index 0708047..103d396 100644 --- a/src/ui/main_window.py +++ b/src/ui/main_window.py @@ -11,7 +11,7 @@ from config.config_manager import ConfigManager from controllers.audio_controller import AudioController from controllers.glow_animator import GlowAnimator from controllers.window_dragger import WindowDragger -from tools import discord_oauth +from discord import discord_oauth from config.constants import NO_STAFF, Urls from fake_patch_notes import patch_note