diff --git a/scripts/wk/repairs/win.py b/scripts/wk/repairs/win.py index 2dd1101f..d53ab3fb 100644 --- a/scripts/wk/repairs/win.py +++ b/scripts/wk/repairs/win.py @@ -245,7 +245,7 @@ def end_session(menus): def get_entry_settings(group, name): """Get menu entry settings from the registry, returns dict.""" - key_path = fr'{AUTO_REPAIR_KEY}\{group}\{strip_colors(name)}' + key_path = fr'{AUTO_REPAIR_KEY}\{group}\{name}' settings = {} for value in ('done', 'failed', 'message', 'selected', 'skipped', 'warning'): try: @@ -262,7 +262,7 @@ def get_entry_settings(group, name): return settings -def init(menus): +def init(menus, presets): """Initialize Auto Repairs.""" session_started = is_session_started() @@ -278,17 +278,18 @@ def init(menus): menus['Options'].options['Use Autologon']['Selected'] = False save_selection_settings(menus) - # Start or resume a repair session - if session_started: - load_settings(menus) - print_info('Resuming session, press CTRL+c to cancel') - for _x in range(AUTO_REPAIR_DELAY_IN_SECONDS, 0, -1): - print(f' {_x} second{"" if _x==1 else "s"} remaining... \r', end='') - sleep(1) - print('') + # Start new session + if not session_started: + load_preset(menus, presets, enable_menu_exit=False) + return - # Done - return session_started + # Resume session + load_settings(menus) + print_info('Resuming session, press CTRL+c to cancel') + for _x in range(AUTO_REPAIR_DELAY_IN_SECONDS, 0, -1): + print(f' {_x} second{"" if _x==1 else "s"} remaining... \r', end='') + sleep(1) + print('') def init_run(options): @@ -392,8 +393,7 @@ def load_preset(menus, presets, enable_menu_exit=True): for group, menu in menus.items(): group_enabled = group in preset for name in menu.options: - name_str = strip_colors(name) - value = group_enabled and name_str in preset[group] + value = group_enabled and name in preset[group] menu.options[name]['Selected'] = value # Re-enable Main Menu action if disabled @@ -406,7 +406,7 @@ def load_settings(menus): if group == 'Main': continue for name in menu.options: - menu.options[name].update(get_entry_settings(group, name)) + menu.options[name].update(get_entry_settings(group, strip_colors(name))) def run_auto_repairs(base_menus, presets): @@ -422,18 +422,18 @@ def run_auto_repairs(base_menus, presets): print_standard('Initializing...') menus = build_menus(base_menus, title, presets) - # Get repair preset - load_preset(menus, presets, enable_menu_exit=False) - # Init + session_started = False + show_menu_again = False try: - session_started = init(menus) + init(menus, presets) except KeyboardInterrupt: # Assuming session was started and resume countdown was interrupted - session_started = None + show_menu_again = True + session_started = is_session_started() # Show Menu - if session_started is None or not session_started: + if show_menu_again or not session_started: try: show_main_menu(base_menus, menus, presets, title) except SystemExit: @@ -441,10 +441,6 @@ def run_auto_repairs(base_menus, presets): end_session(menus) raise - # Re-check if a repair session was started - if session_started is None: - session_started = is_session_started() - # Start or resume repairs clear_screen() print_standard(title) @@ -545,6 +541,7 @@ def save_settings(group, name, result=None, **kwargs): # Write values to registry for value_name, data in kwargs.items(): + value_name = strip_colors(value_name) if isinstance(data, bool): data = 1 if data else 0 if isinstance(data, int):