mirror of
https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck.git
synced 2025-02-03 20:32:36 +01:00
added VK Play Scanner
This commit is contained in:
parent
a8c13d41ad
commit
7069c41855
@ -11,6 +11,7 @@ import sys
|
|||||||
import subprocess
|
import subprocess
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import csv
|
import csv
|
||||||
|
import configparser
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
from urllib.request import urlretrieve
|
from urllib.request import urlretrieve
|
||||||
from urllib.parse import quote
|
from urllib.parse import quote
|
||||||
@ -72,7 +73,7 @@ bnet_launcher = os.environ.get('bnet_launcher', '')
|
|||||||
amazon_launcher = os.environ.get('amazon_launcher', '')
|
amazon_launcher = os.environ.get('amazon_launcher', '')
|
||||||
itchio_launcher = os.environ.get('itchio_launcher', '')
|
itchio_launcher = os.environ.get('itchio_launcher', '')
|
||||||
legacy_launcher = os.environ.get('legacy_launcher', '')
|
legacy_launcher = os.environ.get('legacy_launcher', '')
|
||||||
|
vkplay_launcher = os.environ.get('vkplay_launcher', '')
|
||||||
|
|
||||||
#Variables of the Launchers
|
#Variables of the Launchers
|
||||||
# Define the path of the Launchers
|
# Define the path of the Launchers
|
||||||
@ -280,7 +281,6 @@ def download_artwork(game_id, art_type, shortcut_id, dimensions=None):
|
|||||||
response = requests.get(url)
|
response = requests.get(url)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
data = response.json()
|
data = response.json()
|
||||||
print(f"Response data: {data}")
|
|
||||||
api_cache[cache_key] = data
|
api_cache[cache_key] = data
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error making API call: {e}")
|
print(f"Error making API call: {e}")
|
||||||
@ -1425,6 +1425,114 @@ else:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#VKPlay Scanner
|
||||||
|
|
||||||
|
# Define paths
|
||||||
|
|
||||||
|
gamecenter_ini_path = f"{logged_in_home}/.local/share/Steam/steamapps/compatdata/{vkplay_launcher}/pfx/drive_c/users/steamuser/AppData/Local/GameCenter/GameCenter.ini"
|
||||||
|
cache_folder_path = f"{logged_in_home}/.local/share/Steam/steamapps/compatdata/{vkplay_launcher}/pfx/drive_c/users/steamuser/AppData/Local/GameCenter/Cache/GameDescription/"
|
||||||
|
|
||||||
|
if not os.path.exists(gamecenter_ini_path):
|
||||||
|
print(f"VK Play scanner skipped: {gamecenter_ini_path} does not exist.")
|
||||||
|
else:
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(gamecenter_ini_path, 'r', encoding='utf-16') as file:
|
||||||
|
config.read_file(file)
|
||||||
|
print("File read successfully.")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error reading the file: {e}")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
downloaded_games = dict(config.items('StartDownloadingGames')) if 'StartDownloadingGames' in config else {}
|
||||||
|
installed_games = dict(config.items('DownloadFormSettings')) if 'DownloadFormSettings' in config else {}
|
||||||
|
|
||||||
|
all_game_ids = set(downloaded_games.keys()).union(installed_games.keys())
|
||||||
|
|
||||||
|
if 'Ad' in config:
|
||||||
|
for key in config['Ad']:
|
||||||
|
key_lower = key.lower()
|
||||||
|
if key_lower.startswith('idmtlink0.') or key_lower.startswith('idmtlinkts0.'):
|
||||||
|
game_id = '0.' + key_lower.split('.')[1]
|
||||||
|
all_game_ids.add(game_id)
|
||||||
|
|
||||||
|
print("\nGame IDs found in GameCenter.ini file:")
|
||||||
|
print(f"All game IDs from INI: {all_game_ids}")
|
||||||
|
|
||||||
|
if not os.path.exists(cache_folder_path):
|
||||||
|
print(f"VK Play scanner skipped: Cache folder {cache_folder_path} does not exist.")
|
||||||
|
else:
|
||||||
|
all_files = os.listdir(cache_folder_path)
|
||||||
|
valid_xml_files = []
|
||||||
|
|
||||||
|
for file_name in all_files:
|
||||||
|
if file_name.endswith(".json"):
|
||||||
|
continue
|
||||||
|
|
||||||
|
file_path = os.path.join(cache_folder_path, file_name)
|
||||||
|
try:
|
||||||
|
tree = ET.parse(file_path)
|
||||||
|
valid_xml_files.append(file_path)
|
||||||
|
except ET.ParseError:
|
||||||
|
continue
|
||||||
|
|
||||||
|
processed_game_ids = set()
|
||||||
|
found_games = []
|
||||||
|
|
||||||
|
for xml_file in valid_xml_files:
|
||||||
|
try:
|
||||||
|
tree = ET.parse(xml_file)
|
||||||
|
root = tree.getroot()
|
||||||
|
game_item = root.find('GameItem')
|
||||||
|
|
||||||
|
if game_item is not None:
|
||||||
|
game_id_xml = game_item.get('Name') or game_item.get('PackageName')
|
||||||
|
if game_id_xml:
|
||||||
|
game_id_in_ini = game_id_xml.replace('_', '.')
|
||||||
|
|
||||||
|
if game_id_in_ini in all_game_ids and game_id_in_ini not in processed_game_ids:
|
||||||
|
game_name = game_item.get('TitleEn', 'Unnamed Game')
|
||||||
|
found_games.append(f"{game_name} (ID: {game_id_in_ini})")
|
||||||
|
processed_game_ids.add(game_id_in_ini)
|
||||||
|
except ET.ParseError:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if found_games:
|
||||||
|
print("\nFound the following games:")
|
||||||
|
for game in found_games:
|
||||||
|
print(game)
|
||||||
|
else:
|
||||||
|
print("No games found.")
|
||||||
|
|
||||||
|
for game_id in all_game_ids:
|
||||||
|
game_name = 'Unknown Game'
|
||||||
|
for xml_file in valid_xml_files:
|
||||||
|
try:
|
||||||
|
tree = ET.parse(xml_file)
|
||||||
|
root = tree.getroot()
|
||||||
|
game_item = root.find('GameItem')
|
||||||
|
|
||||||
|
if game_item is not None:
|
||||||
|
game_id_xml = game_item.get('Name') or game_item.get('PackageName')
|
||||||
|
|
||||||
|
if game_id_xml and game_id_xml.replace('_', '.') == game_id:
|
||||||
|
game_name = game_item.get('TitleEn', 'Unnamed Game')
|
||||||
|
break
|
||||||
|
except ET.ParseError:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if game_name != 'Unknown Game':
|
||||||
|
display_name = game_name
|
||||||
|
launch_options = f"STEAM_COMPAT_DATA_PATH=\"{logged_in_home}/.local/share/Steam/steamapps/compatdata/{vkplay_launcher}/\" %command% 'vkplay://play/{game_id}'"
|
||||||
|
exe_path = f"\"{logged_in_home}/.local/share/Steam/steamapps/compatdata/{vkplay_launcher}/pfx/drive_c/users/steamuser/AppData/Local/GameCenter/GameCenter.exe\""
|
||||||
|
start_dir = f"\"{logged_in_home}/.local/share/Steam/steamapps/compatdata/{vkplay_launcher}/pfx/drive_c/users/steamuser/AppData/Local/GameCenter/\""
|
||||||
|
|
||||||
|
create_new_entry(exe_path, display_name, launch_options, start_dir)
|
||||||
|
|
||||||
|
# End of VK Play Scanner
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user