Ajout d'un système de mise à jour automatique lors du lancement (#50)

Reviewed-on: #50
Reviewed-by: Corentin <solois.corentin@gmail.com>
Co-authored-by: Tipragot <contact@tipragot.fr>
Co-committed-by: Tipragot <contact@tipragot.fr>
This commit is contained in:
Tipragot 2024-01-10 13:58:28 +00:00 committed by Corentin
parent da8f244026
commit 6383d2c922
3 changed files with 43 additions and 7 deletions

View file

@ -1,6 +1,41 @@
from pathlib import Path
import subprocess as sp 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) project_folder = Path.home() / ".ponguito"
sp.call(f'python "{folder_path}/src/main.py"') 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"])

View file

@ -94,12 +94,12 @@ def __create_button(world: World, name: str):
def new_score(world: World, e: Entity): def new_score(world: World, e: Entity):
e.remove(Clickable) e.remove(Clickable)
if os.path.exists("username.txt"): if os.path.exists("../username.txt"):
with open("username.txt", "r") as f: with open("../username.txt", "r") as f:
name = f.read() name = f.read()
else: else:
name = world.query(Writing).pop() name = world.query(Writing).pop()
with open("username.txt", "w") as f: with open("../username.txt", "w") as f:
f.write(name[Text]) f.write(name[Text])
try: try:

1
version.txt Normal file
View file

@ -0,0 +1 @@
1.0.0