diff --git a/NSLGameScanner.py b/NSLGameScanner.py index 197d241..4fa491d 100644 --- a/NSLGameScanner.py +++ b/NSLGameScanner.py @@ -1023,33 +1023,36 @@ if new_shortcuts_added or shortcuts_updated: # Assuming 'games' is a list of game dictionaries games = [shortcut for shortcut in shortcuts['shortcuts'].values()] + + sys.path.append(f"{logged_in_home}/homebrew") # Add the directory containing aiohttp to the Python path + import aiohttp + import asyncio - # Create the path to the output file - output_file_path = f"{logged_in_home}/.config/systemd/user/NSLGameScanner_output.log" + async def send_data(): + # Create a session + async with aiohttp.ClientSession() as session: + # Connect to the WebSocket + async with session.ws_connect('http://localhost:8765') as ws: + for game in games: + # Skip if 'appname' or 'exe' is None + if game.get('appname') is None or game.get('exe') is None: + continue - # Open the output file in write mode - with open(output_file_path, 'w') as output_file: - for game in games: - # Skip if 'appname' or 'exe' is None - if game.get('appname') is None or game.get('exe') is None: - continue + # Create a dictionary to hold the shortcut information + shortcut_info = { + 'appid': str(game.get('appid')), + 'appname': game.get('appname'), + 'exe': game.get('exe'), + 'StartDir': game.get('StartDir'), + 'icon': f"{logged_in_home}/.steam/root/userdata/{steamid3}/config/grid/{get_file_name('icons', game.get('appid'))}", + 'LaunchOptions': game.get('LaunchOptions'), + 'GameID': game.get('GameID', "default_game_id") # Use a default value if game_id is not defined + } - # Create a dictionary to hold the shortcut information - shortcut_info = { - 'appid': str(game.get('appid')), - 'appname': game.get('appname'), - 'exe': game.get('exe'), - 'StartDir': game.get('StartDir'), - 'icon': f"{logged_in_home}/.steam/root/userdata/{steamid3}/config/grid/{get_file_name('icons', game.get('appid'))}", - 'LaunchOptions': game.get('LaunchOptions'), - 'GameID': game.get('GameID', "default_game_id") # Use a default value if game_id is not defined - } + # Send the JSON data to the WebSocket + await ws.send_json(shortcut_info) - # Print the shortcut information in JSON format - message = json.dumps(shortcut_info) - print(message, flush=True) # Print to stdout - - # Print the shortcut information to the output file - print(message, file=output_file, flush=True) + # Run the send_data coroutine + asyncio.run(send_data()) print("All finished!")