Merge remote-tracking branch 'upstream/dev' into dev

This commit is contained in:
2Shirt 2022-12-15 21:33:21 -08:00
commit 51a3731124
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C

View file

@ -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):