100 lines
3.4 KiB
Python
100 lines
3.4 KiB
Python
"""WizardKit: Auto Repair Tool"""
|
|
# vim: sts=2 sw=2 ts=2
|
|
|
|
from typing import Any
|
|
|
|
import wk
|
|
|
|
|
|
# Classes
|
|
REBOOT_STR = wk.ui.ansi.color_string('Reboot', 'YELLOW')
|
|
class MenuEntry():
|
|
"""Simple class to allow cleaner code below."""
|
|
def __init__(
|
|
self,
|
|
name: str,
|
|
function: str | None = None,
|
|
selected: bool = True,
|
|
**kwargs):
|
|
self.name: str = name
|
|
self.details: dict[str, Any] = {
|
|
'Function': function,
|
|
'Selected': selected,
|
|
**kwargs,
|
|
}
|
|
|
|
|
|
# STATIC VARIABLES
|
|
BASE_MENUS = {
|
|
'Groups': {
|
|
'Backup Settings': (
|
|
MenuEntry('Enable RegBack', 'auto_enable_regback'),
|
|
MenuEntry('Enable System Restore', 'auto_system_restore_enable'),
|
|
MenuEntry('Set System Restore Size', 'auto_system_restore_set_size'),
|
|
MenuEntry('Create System Restore', 'auto_system_restore_create'),
|
|
MenuEntry('Backup Browsers', 'auto_backup_browser_profiles'),
|
|
MenuEntry('Backup Power Plans', 'auto_backup_power_plans'),
|
|
MenuEntry('Reset Power Plans', 'auto_reset_power_plans'),
|
|
MenuEntry('Set Custom Power Plan', 'auto_set_custom_power_plan'),
|
|
MenuEntry('Backup Registry', 'auto_backup_registry'),
|
|
),
|
|
'Windows Repairs': (
|
|
MenuEntry('Disable Windows Updates', 'auto_windows_updates_disable'),
|
|
MenuEntry('Reset Windows Updates', 'auto_windows_updates_reset'),
|
|
MenuEntry(REBOOT_STR, 'auto_reboot'),
|
|
MenuEntry('CHKDSK', 'auto_chkdsk'),
|
|
MenuEntry('DISM RestoreHealth', 'auto_dism'),
|
|
MenuEntry('SFC Scan', 'auto_sfc'),
|
|
MenuEntry('Clear Proxy Settings', 'auto_reset_proxy'),
|
|
MenuEntry('Disable Pending Renames', 'auto_disable_pending_renames'),
|
|
MenuEntry('Registry Repairs', 'auto_repair_registry'),
|
|
MenuEntry('Reset UAC', 'auto_restore_uac_defaults'),
|
|
MenuEntry('Reset Windows Policies', 'auto_reset_windows_policies'),
|
|
),
|
|
'Malware Cleanup': (
|
|
MenuEntry('BleachBit', 'auto_bleachbit'),
|
|
MenuEntry('HitmanPro', 'auto_hitmanpro'),
|
|
MenuEntry('KVRT', 'auto_kvrt'),
|
|
MenuEntry('Windows Defender', 'auto_microsoft_defender'),
|
|
MenuEntry('Remove Custom Power Plan', 'auto_remove_power_plan'),
|
|
MenuEntry(REBOOT_STR, 'auto_reboot'),
|
|
),
|
|
'Manual Steps': (
|
|
MenuEntry('AdwCleaner', 'auto_adwcleaner'),
|
|
MenuEntry('Bulk Crap Uninstaller', 'auto_bcuninstaller'),
|
|
MenuEntry('Enable Windows Updates', 'auto_windows_updates_enable'),
|
|
),
|
|
},
|
|
'Options': (
|
|
MenuEntry('Kill Explorer', selected=False),
|
|
MenuEntry('Run AVRemover (once)'),
|
|
MenuEntry('Run RKill'),
|
|
MenuEntry('Sync Clock'),
|
|
MenuEntry('Use Autologon', selected=False),
|
|
),
|
|
'Actions': (
|
|
MenuEntry('Load Preset'),
|
|
MenuEntry('Options'),
|
|
MenuEntry('Start', Separator=True),
|
|
MenuEntry('Quit'),
|
|
),
|
|
}
|
|
PRESETS = {
|
|
'Default': { # Will be expanded at runtime using BASE_MENUS
|
|
'Options': (
|
|
'Run RKill',
|
|
'Sync Clock',
|
|
),
|
|
},
|
|
'Custom': {}, # Will remain empty at runtime
|
|
}
|
|
|
|
if __name__ == '__main__':
|
|
try:
|
|
wk.repairs.win.run_auto_repairs(BASE_MENUS, PRESETS)
|
|
except KeyboardInterrupt:
|
|
wk.ui.cli.abort()
|
|
except SystemExit:
|
|
raise
|
|
except: # noqa: E722
|
|
wk.ui.cli.major_exception()
|