if track aren't correctly converted, show warning and an error after 3 warning. AUTOADD step will now work in non-ascii directory

This commit is contained in:
raphael60650 2021-06-16 13:58:20 +02:00
parent 0946136815
commit 4f21d6ef50

View file

@ -1,3 +1,4 @@
from tkinter import messagebox
from threading import Thread from threading import Thread
import subprocess import subprocess
import json import json
@ -31,17 +32,19 @@ def patch_file(self):
for i, file in enumerate(fc["img"]): for i, file in enumerate(fc["img"]):
self.Progress(statut=self.translate("Conversion des images")+f"\n({i + 1}/{len(fc['img'])}) {file}", add=1) self.Progress(statut=self.translate("Conversion des images")+f"\n({i + 1}/{len(fc['img'])}) {file}", add=1)
subprocess.run(["./tools/szs/wimgt", "ENCODE", "./file/" + file, "-x", fc["img"][file], "--overwrite"], subprocess.run(["./tools/szs/wimgt", "ENCODE", "./file/" + file, "-x", fc["img"][file], "--overwrite"],
creationflags=CREATE_NO_WINDOW) creationflags=CREATE_NO_WINDOW, check=True, stdout=subprocess.PIPE)
for file in glob.glob(self.path_mkwf+"/files/Scene/UI/MenuSingle_?.szs"): for file in glob.glob(self.path_mkwf+"/files/Scene/UI/MenuSingle_?.szs"):
self.patch_bmg(file) self.patch_bmg(file)
if not(os.path.exists("./file/auto-add/")): if not(os.path.exists("./file/auto-add/")):
subprocess.run(["./tools/szs/wszst", "AUTOADD", self.path_mkwf + "/files/Race/Course/", "--DEST", subprocess.run(["./tools/szs/wszst", "AUTOADD", get_nodir(self.path_mkwf) + "/files/Race/Course/",
"./file/auto-add/"], creationflags=CREATE_NO_WINDOW) "--DEST", "./file/auto-add/"], creationflags=CREATE_NO_WINDOW,
cwd=get_dir(self.path_mkwf), check=True, stdout=subprocess.PIPE)
max_process = 8 max_process = 8
process_list = {} process_list = {}
error_count, error_max = 0, 3
for i, file in enumerate(os.listdir("./file/Track-WU8/")): for i, file in enumerate(os.listdir("./file/Track-WU8/")):
while True: while True:
@ -59,9 +62,27 @@ def patch_file(self):
else: else:
for process in process_list: for process in process_list:
if process_list[process] is not None: if process_list[process] is not None:
if not (process_list[process].poll() is None): returncode = process_list[process].poll()
if not(returncode == None):
process_list.pop(process) process_list.pop(process)
break break
else:
process_list.pop(process)
os.remove(f"./file/Track/{get_filename(process)}.szs")
error_count += 1
if error_count > error_max:
messagebox.showerror(
self.translate("Erreur"),
self.translate("Trop de course ont eu une erreur de conversion."))
return
else:
messagebox.showwarning(
self.translate("Attention"),
self.translate("La course ") +
process +
self.translate(" n'a pas été correctement converti. (") +
str(error_count) + "/"+str(error_max)+")")
break
else: else:
process_list.pop(process) process_list.pop(process)
break break