From fbf068a79f17a194a0b7dba4afbff7303012adf5 Mon Sep 17 00:00:00 2001 From: Roy <88516395+moraroy@users.noreply.github.com> Date: Fri, 21 Mar 2025 23:26:45 -0700 Subject: [PATCH] Update NSLGameScanner.py --- NSLGameScanner.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/NSLGameScanner.py b/NSLGameScanner.py index 3e9cbeb..2ccab8a 100644 --- a/NSLGameScanner.py +++ b/NSLGameScanner.py @@ -428,18 +428,35 @@ def add_compat_tool(app_id, launchoptions): print("PROTONPATH found in launch options. Skipping compatibility tool update.") return False + # Check if app_id exists in CompatToolMapping elif str(app_id) in config_data['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping']: - config_data['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'][str(app_id)]['name'] = f'{compat_tool_name}' - config_data['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'][str(app_id)]['config'] = '' - config_data['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'][str(app_id)]['priority'] = '250' + existing_app = config_data['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'][str(app_id)] + + # Check if 'PROTONPATH' is already in the existing app's config + if 'PROTONPATH' in existing_app.get('config', ''): + # If 'PROTONPATH' is found in the config, skip the update + print(f"PROTONPATH found in the config for appid: {app_id}. Skipping compatibility tool update.") + return None + + # If no 'PROTONPATH', proceed with the update + existing_app['name'] = f'{compat_tool_name}' + existing_app['config'] = '' + existing_app['priority'] = '250' print(f"Updated CompatToolMapping entry for appid: {app_id}") return compat_tool_name + else: # Skip if the shortcut has already been processed by UMU if app_id in umu_processed_shortcuts: print(f"CompatTool update skipped for {app_id} because it was already processed by UMU.") return None - config_data['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'][str(app_id)] = {'name': f'{compat_tool_name}', 'config': '', 'priority': '250'} + + # Create a new CompatToolMapping entry if it doesn't exist + config_data['InstallConfigStore']['Software']['Valve']['Steam']['CompatToolMapping'][str(app_id)] = { + 'name': f'{compat_tool_name}', + 'config': '', + 'priority': '250' + } print(f"Created new CompatToolMapping entry for appid: {app_id}") return compat_tool_name @@ -454,12 +471,13 @@ def check_if_shortcut_exists(shortcut_id, display_name, exe_path, start_dir, lau if any(s.get('appname') == display_name and s.get('exe') == exe_path and s.get('StartDir') == start_dir and s.get('LaunchOptions') == launch_options for s in shortcuts['shortcuts'].values()): print(f"Existing shortcut found based on matching fields for game {display_name}. Skipping creation.") return True - if any(s.get('AppName') == display_name and s.get('Exe') == exe_path and s.get('StartDir') == start_dir and s.get('LaunchOptions') == launch_options for s in shortcuts['shortcuts'].values()): + if any(s.get('AppName') == display_name and s.get('Exe') == exe_path and s.get('StartDir') == start_dir and s.get('LaunchOptions') == launchoptions for s in shortcuts['shortcuts'].values()): print(f"Existing shortcut found based on matching fields for game {display_name}. Skipping creation.") return True return False + # Start of Refactoring code from the .sh file sys.path.insert(0, os.path.expanduser(f"{logged_in_home}/Downloads/NonSteamLaunchersInstallation/lib/python{python_version}/site-packages")) print(sys.path)