diff --git a/dzgui/api/shortcuts.py b/dzgui/api/shortcuts.py index 594d1a1..144bb44 100644 --- a/dzgui/api/shortcuts.py +++ b/dzgui/api/shortcuts.py @@ -10,8 +10,8 @@ from pathlib import Path from typing import Any from dzgui.api.steam import find_user_id_32 -from dzgui.const.constants import APP_NAME, APP_NAME_LOWER, IMAGES_PATH -from dzgui.util.dirs import copy_dzgui_to_xdg_data +from dzgui.const.constants import APP_NAME, APP_NAME_LOWER, GTK_APP_ID, IMAGES_PATH +from dzgui.util.dirs import copy_dzgui_to_xdg_data, make_parents from dzgui.util.strings import unknown logger = logging.getLogger(APP_NAME) @@ -75,6 +75,8 @@ class Shortcuts: shortcuts = vdf.binary_load(f) self.shortcuts = shortcuts logger.debug("Loaded shortcuts file") + except FileNotFoundError: + self.shortcuts = {"shortcuts": {}} except Exception as e: logger.critical(e) raise e @@ -109,6 +111,7 @@ class Shortcuts: for img in ("_hero", "p", "_logo"): filename = str(self.bpid) + img dest = grid_path.joinpath(filename).with_suffix(".png") + make_parents(dest) b = images.joinpath(img).with_suffix(".png").read_bytes() dest.write_bytes(b) @@ -155,7 +158,8 @@ class Shortcuts: NEW_ENTRY["DevkitGameID"] = "" NEW_ENTRY["DevkitOverrideAppID"] = 0 NEW_ENTRY["LastPlayTime"] = 0 - NEW_ENTRY["FlatpakAppID"] = "" + NEW_ENTRY["FlatpakAppID"] = GTK_APP_ID + NEW_ENTRY["sortas"] = "" NEW_ENTRY["tags"] = {} return NEW_ENTRY @@ -172,6 +176,9 @@ class Shortcuts: try: backup = self.shortcuts_path.with_suffix(".vdf.bak") shutil.copy(self.shortcuts_path, backup) + except Exception as e: + logger.critical(e) + try: with open(self.shortcuts_path, "wb") as f: vdf.binary_dump(self.shortcuts, f) except Exception as e: