From ff982137868f4962baed8f3154806d8bc73f8013 Mon Sep 17 00:00:00 2001 From: raphael60650 Date: Wed, 14 Jul 2021 22:27:03 +0200 Subject: [PATCH] renamed count_track to load_ct_config, reworked function to load ct_config into variables, called in __init__.py --- main.pyw | 2 +- source/__init__.py | 9 +++++++++ source/patch_track.py | 29 +++++++++++++++++++---------- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/main.pyw b/main.pyw index c01d770..eb80fa2 100644 --- a/main.pyw +++ b/main.pyw @@ -29,7 +29,7 @@ class ClassApp(): from source.patch_ct_icon import patch_ct_icon from source.log_error import log_error from source.get_github_file import get_github_file, check_track_sha1 - from source.patch_track import count_track, patch_track, patch_autoadd + from source.patch_track import load_ct_config, patch_track, patch_autoadd from source.patch_image import patch_image from source.option import load_option, change_option diff --git a/source/__init__.py b/source/__init__.py index 7993ce3..1092a56 100644 --- a/source/__init__.py +++ b/source/__init__.py @@ -15,6 +15,8 @@ def __init__(self): self.root = Tk() self.load_option() + self.load_ct_config() + self.stringvar_language = StringVar(value=self.option["language"]) self.stringvar_game_format = StringVar(value=self.option["format"]) self.boolvar_disable_download = BooleanVar(value=self.option["disable_download"]) @@ -25,6 +27,7 @@ def __init__(self): self.boolvar_use_1star_track = BooleanVar(value=True) self.boolvar_use_2star_track = BooleanVar(value=True) self.boolvar_use_3star_track = BooleanVar(value=True) + self.stringvar_mark_track_from_version = StringVar(value="None") self.root.title(self.translate("MKWFaraphel Installer")) self.root.resizable(False, False) @@ -54,6 +57,12 @@ def __init__(self): self.menu_trackselection.add_checkbutton(label=self.translate("Select"," 1 ","star"), variable=self.boolvar_use_1star_track) self.menu_trackselection.add_checkbutton(label=self.translate("Select"," 2 ","stars"), variable=self.boolvar_use_2star_track) self.menu_trackselection.add_checkbutton(label=self.translate("Select"," 3 ","stars"), variable=self.boolvar_use_3star_track) + self.menu_trackselection.add_separator() + self.menu_marktrackversion = Menu(self.menu_trackselection, tearoff=0) + self.menu_trackselection.add_cascade(label=self.translate("Mark all tracks from version"), menu=self.menu_marktrackversion) + self.menu_marktrackversion.add_radiobutton(label=self.translate("None"), variable=self.stringvar_mark_track_from_version, value="None") + for version in self.ALL_VERSION: + self.menu_marktrackversion.add_radiobutton(label=f"v{version}", variable=self.stringvar_mark_track_from_version, value=version) self.menu_advanced = Menu(self.menu_bar, tearoff=0) self.menu_bar.add_cascade(label=self.translate("Advanced"), menu=self.menu_advanced) diff --git a/source/patch_track.py b/source/patch_track.py index 4e2f5df..25d2d93 100644 --- a/source/patch_track.py +++ b/source/patch_track.py @@ -6,16 +6,25 @@ import json import os -def count_track(self): +def load_ct_config(self): tracks = [] with open("./ct_config.json", encoding="utf-8") as f: ctconfig = json.load(f) - self.VERSION = ctconfig["version"] - for cup in ctconfig["cup"].values(): + + for cup in ctconfig["cup"].values(): # defined order tracks if not (cup["locked"]): tracks.extend(cup["courses"].values()) - tracks.extend(ctconfig["tracks_list"]) - tracks = [dict(t) for t in {tuple(d.items()) for d in tracks}] - total_track = len(tracks) - return tracks, total_track + + tracks.extend(ctconfig["tracks_list"]) # unordered tracks + + self.TRACKS = [dict(t) for t in {tuple(d.items()) for d in tracks}] # removing duplicate + self.TOTAL_TRACK = len(tracks) + + self.VERSION = ctconfig["version"] + + self.ALL_VERSION = [] + for track in self.TRACKS: + if not track.get("since_version") in self.ALL_VERSION: + self.ALL_VERSION.append(track["since_version"]) + self.ALL_VERSION.sort() def patch_autoadd(self): @@ -29,7 +38,7 @@ def patch_autoadd(self): shutil.rmtree(self.path_mkwf + "/tmp/") -def patch_track(self, tracks, total_track="?"): +def patch_track(self): max_process = self.intvar_process_track.get() process_list = {} error_count, error_max = 0, 3 @@ -40,7 +49,7 @@ def patch_track(self, tracks, total_track="?"): nonlocal error_count, error_max, process_list process_list[track_file] = None # Used for - self.Progress(statut=self.translate("Converting tracks", f"\n({i + 1}/{total_track})\n", + self.Progress(statut=self.translate("Converting tracks", f"\n({i + 1}/{self.TOTAL_TRACK})\n", "\n".join(process_list.keys())), add=1) for _track in [get_track_szs(track_file), get_track_wu8(track_file)]: @@ -123,7 +132,7 @@ def patch_track(self, tracks, total_track="?"): if len(process_list): return 1 else: return 0 - for i, track in enumerate(tracks): + for i, track in enumerate(self.TRACKS): while True: if len(process_list) < max_process: returncode = add_process(track)