Skip to content

Commit

Permalink
Added Game Jolt Scanner
Browse files Browse the repository at this point in the history
  • Loading branch information
moraroy authored Feb 9, 2025
1 parent c171463 commit fad93ae
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions NSLGameScanner.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
legacy_launcher = os.environ.get('legacy_launcher', '')
vkplay_launcher = os.environ.get('vkplay_launcher', '')
hoyoplay_launcher = os.environ.get('hoyoplay_launcher', '')
gamejolt_launcher = os.environ.get('gamejolt_launcher', '')
#Variables of the Launchers

# Define the path of the Launchers
Expand Down Expand Up @@ -1751,7 +1752,79 @@ def extract_json_objects(content):

# End of HoYoPlay Scanner

# Game Jolt Scanner

# File paths for both the game list and package details
games_file_path = f"{logged_in_home}/.local/share/Steam/steamapps/compatdata/{gamejolt_launcher}/pfx/drive_c/users/steamuser/AppData/Local/game-jolt-client/User Data/Default/games.wttf"
packages_file_path = f"{logged_in_home}/.local/share/Steam/steamapps/compatdata/{gamejolt_launcher}/pfx/drive_c/users/steamuser/AppData/Local/game-jolt-client/User Data/Default/packages.wttf"

# Check if both files exist before proceeding
if not os.path.exists(games_file_path) or not os.path.exists(packages_file_path):
print("One or both of the files do not exist. Skipping Game Jolt Scanner.")
else:
try:
# Load the games file
with open(games_file_path, 'r') as f:
games_data = json.load(f)

# Load the packages file
with open(packages_file_path, 'r') as f:
packages_data = json.load(f)

# Check if 'objects' exists in the games data
if 'objects' in games_data:
# Iterate through each game object in the games file
for game_id, game_info in games_data['objects'].items():
# Default values if information is missing
description = 'No Description'
install_dir = 'No Install Directory'
version = 'No Version Info'
executable_path = 'No Executable Path'

# Iterate over the 'objects' in the packages file to find a match
for package_id, package_info in packages_data.get('objects', {}).items():
# Check if the game_id in the package matches the current game_id
if package_info.get('game_id') == int(game_id): # Match on game_id
# Extract information from the matched package
description = package_info.get('description', description)
install_dir = package_info.get('install_dir', install_dir)

# Safe extraction of version_number from 'release'
release_info = package_info.get('release', {})
version = release_info.get('version_number', version)

# Handle missing or empty launch options
if package_info.get('launch_options'):
executable_path = package_info['launch_options'][0].get('executable_path', executable_path)

break

# Print the combined game info
#print(f"\nGame ID: {game_id}")
#print(f"Title: {game_info.get('title', 'No Title')}")
#print(f"Install Directory: {install_dir}")
#print("-" * 40) # Separator line for clarity

# Set the display name to the game shortcut name from the JSON
display_name = game_info.get('title', 'No Title')
launch_options = f"STEAM_COMPAT_DATA_PATH=\"{logged_in_home}/.local/share/Steam/steamapps/compatdata/{gamejolt_launcher}/\" %command% --dir \"{install_dir}\" run"
exe_path = f"\"{logged_in_home}/.local/share/Steam/steamapps/compatdata/{gamejolt_launcher}/pfx/drive_c/users/steamuser/AppData/Local/GameJoltClient/GameJoltClient.exe\""
start_dir = f"\"{logged_in_home}/.local/share/Steam/steamapps/compatdata/{gamejolt_launcher}/pfx/drive_c/users/steamuser/AppData/Local/GameJoltClient\""

# Create the new entry (this is where you can use your custom function for Steam shortcuts)
create_new_entry(exe_path, display_name, launch_options, start_dir)

else:
print("'objects' key not found in the games data.")

except json.JSONDecodeError as e:
print(f"Error decoding JSON: {e}")
except FileNotFoundError as e:
print(f"Error: File not found - {e}")
except Exception as e:
print(f"An error occurred: {e}")

# End of Game Jolt Scanner



Expand Down

0 comments on commit fad93ae

Please sign in to comment.