From a2d1f9b0e185c80b2f023b8db49f84ed7517432c Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Tue, 7 Jul 2026 19:52:44 +0900 Subject: [PATCH] chore: simplify path concatenation logic --- dzgui/api/mods.py | 3 +-- dzgui/api/pefile.py | 3 +-- dzgui/api/steam.py | 9 +++++---- dzgui/init/dayz.py | 4 ++-- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/dzgui/api/mods.py b/dzgui/api/mods.py index b1b5a71..c6a076d 100644 --- a/dzgui/api/mods.py +++ b/dzgui/api/mods.py @@ -13,7 +13,6 @@ from dzgui.const.constants import ( APP_NAME, APPID_DAYZ, DAYZ_COMMUNITY_ROOT, - LIBRARYFOLDERS_PATH, WORKSHOP_PATH, ) @@ -40,7 +39,7 @@ def get_local_mod_ids(steam_path: Path) -> list[int]: def get_local_mod_path(steam_path: Path) -> Path: - p = get_app_path(steam_path / Path(LIBRARYFOLDERS_PATH), APPID_DAYZ) + p = get_app_path(steam_path, APPID_DAYZ) workshop_path = p / WORKSHOP_PATH return workshop_path diff --git a/dzgui/api/pefile.py b/dzgui/api/pefile.py index e2bf676..4e77522 100644 --- a/dzgui/api/pefile.py +++ b/dzgui/api/pefile.py @@ -12,7 +12,6 @@ from dzgui.const.constants import ( APPNAME_DAYZ, APPNAME_DAYZ_EXP, DAYZ_BINARY, - LIBRARYFOLDERS_PATH, ) from dzgui.api.steam import get_app_path @@ -400,7 +399,7 @@ def get_pefile_path(steam_path: Path, appid: int) -> Path: name = identifier[appid] binary = DAYZ_BINARY - app_path = get_app_path(steam_path / LIBRARYFOLDERS_PATH, appid) + app_path = get_app_path(steam_path, appid) pe_path = app_path / f"steamapps/common/{name}/{binary}" return pe_path diff --git a/dzgui/api/steam.py b/dzgui/api/steam.py index fdfe29b..d452c81 100644 --- a/dzgui/api/steam.py +++ b/dzgui/api/steam.py @@ -20,6 +20,7 @@ from dzgui.const.constants import ( DEBIAN_STEAM_PATH, DEFAULT_STEAM_PATH, FLATPAK_STEAM_PATH, + LIBRARYFOLDERS_PATH, UBUNTU_STEAM_PATH, REQUEST_TIMEOUT, VDF_PATH, @@ -326,13 +327,13 @@ def get_running_app() -> int | None: # TODO: write tests def get_app_allows_downloads(path: Path, appid: int) -> bool: - root_path = get_app_path(Preferences.DEFAULT, appid) - acf = f"{root_path}/appmanifest_{aid}.acf" + root_path = get_app_path(path, appid) + acf = root_path.joinpath(f"steamapps/appmanifest_{appid}.acf") flag = ACF(acf).get_allows_downloads() match flag: # NOTE: adheres to global client setting case 0: - return get_client_allows_downloads(Preferences.DEFAULT) + return get_client_allows_downloads(path) # NOTE: always allow case 1: return True @@ -371,7 +372,7 @@ def get_app_path(folders_path: Path, appid: int) -> Path: app_path = None try: - with open(folders_path) as f: + with open(folders_path / LIBRARYFOLDERS_PATH) as f: folders = vdf.load(f) except Exception: raise VDFLoadError("Failed to parse libraryfolders") diff --git a/dzgui/init/dayz.py b/dzgui/init/dayz.py index b83fb45..01bc271 100644 --- a/dzgui/init/dayz.py +++ b/dzgui/init/dayz.py @@ -4,7 +4,7 @@ from pathlib import Path from dzgui.api.steam import get_app_path from dzgui.config.query import lookup -from dzgui.const.constants import APPID_DAYZ, APP_NAME, LIBRARYFOLDERS_PATH +from dzgui.const.constants import APPID_DAYZ, APP_NAME from dzgui.const.enum import Preferences @@ -14,7 +14,7 @@ logger = logging.getLogger(APP_NAME) def is_dayz_installed(config: Path) -> None: try: path = lookup(config, Preferences.DEFAULT) - get_app_path(Path(path) / LIBRARYFOLDERS_PATH, APPID_DAYZ) + get_app_path(Path(path), APPID_DAYZ) except Exception as e: logger.critical(e) raise e