From 6383d2c9225335c5e68b459b6d476f37f224a035 Mon Sep 17 00:00:00 2001 From: Tipragot Date: Wed, 10 Jan 2024 13:58:28 +0000 Subject: [PATCH] =?UTF-8?q?Ajout=20d'un=20syst=C3=A8me=20de=20mise=20?= =?UTF-8?q?=C3=A0=20jour=20automatique=20lors=20du=20lancement=20(#50)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-on: https://git.tipragot.fr/raphael/ponguito/pulls/50 Reviewed-by: Corentin Co-authored-by: Tipragot Co-committed-by: Tipragot --- launch.py | 43 +++++++++++++++++++++++++++++++++++++---- src/scenes/game_over.py | 6 +++--- version.txt | 1 + 3 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 version.txt diff --git a/launch.py b/launch.py index 93c0910..baf294c 100644 --- a/launch.py +++ b/launch.py @@ -1,6 +1,41 @@ +from pathlib import Path import subprocess as sp -import os +from zipfile import ZipFile +import requests as rq +import os, sys, shutil -folder_path = __file__.replace("\\", "/")[:-10] -os.chdir(folder_path) -sp.call(f'python "{folder_path}/src/main.py"') + +project_folder = Path.home() / ".ponguito" +project_folder.mkdir(exist_ok=True, parents=True) +os.chdir(project_folder) + +# Récupération de la version locale +try: + with open("version.txt", "r") as f: + version = f.read() +except: + version = "0.0.0" + +# Récupération de la version du serveur +try: + response = rq.get("https://git.tipragot.fr/raphael/ponguito/raw/branch/main/version.txt") + server_version = response.text +except: + print("Impossible de se connecter au serveur") + server_version = version + +# Mise à jour de la version locale +if server_version != version: + response = rq.get("https://git.tipragot.fr/raphael/ponguito/archive/main.zip") + if response.status_code == 200: + with open("main.zip", "wb") as f: + f.write(response.content) + ZipFile("main.zip").extractall() + os.remove("main.zip") + shutil.rmtree("game") + os.rename("ponguito", "game") + os.rename("game/launch.py", __file__) + +# Lancement du jeu +os.chdir(project_folder / "game") +sp.call([sys.executable, f"src/main.py"]) diff --git a/src/scenes/game_over.py b/src/scenes/game_over.py index 1910064..7e961ba 100644 --- a/src/scenes/game_over.py +++ b/src/scenes/game_over.py @@ -94,12 +94,12 @@ def __create_button(world: World, name: str): def new_score(world: World, e: Entity): e.remove(Clickable) - if os.path.exists("username.txt"): - with open("username.txt", "r") as f: + if os.path.exists("../username.txt"): + with open("../username.txt", "r") as f: name = f.read() else: name = world.query(Writing).pop() - with open("username.txt", "w") as f: + with open("../username.txt", "w") as f: f.write(name[Text]) try: diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..afaf360 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +1.0.0 \ No newline at end of file