Compare commits

..

2 Commits

Author SHA1 Message Date
aclist
1760e6e928 chore: cleanup
Some checks failed
Mirror to Codeberg / mirror-to-codeberg (push) Has been cancelled
2026-07-12 10:21:06 +09:00
aclist
a2a39e9927 fix: backport fixes from feat/shortcuts 2026-07-12 10:15:58 +09:00

View File

@ -15,6 +15,7 @@ from dzgui.const.constants import (
APPID_DAYZ, APPID_DAYZ,
APPID_DAYZ_EXP, APPID_DAYZ_EXP,
APP_NAME, APP_NAME,
DAYZ_BINARY,
DEBIAN_STEAM_PATH, DEBIAN_STEAM_PATH,
DEFAULT_STEAM_PATH, DEFAULT_STEAM_PATH,
FLATPAK_STEAM_PATH, FLATPAK_STEAM_PATH,
@ -38,19 +39,16 @@ logger = logging.getLogger(APP_NAME)
class AppNotInstalledError(Exception): class AppNotInstalledError(Exception):
"""App not present in user's libraryfolders""" """App not present in user's libraryfolders"""
pass pass
class AppMovedError(Exception): class AppMovedError(Exception):
"""VDF points to a nonexistent location on disk""" """VDF points to a nonexistent location on disk"""
pass pass
class VDFLoadError(Exception): class VDFLoadError(Exception):
"""Malformed VDF or JSON conversion""" """Malformed VDF or JSON conversion"""
pass pass
@ -309,7 +307,8 @@ def get_running_app() -> int | None:
PROC_NAME = "steam" PROC_NAME = "steam"
SUBPROC_NAME = "reaper" SUBPROC_NAME = "reaper"
FLAG = "AppId" FLAG = "AppId"
# NOTE: may cause conflicts if multiple apps are running
try:
for proc in psutil.process_iter(): for proc in psutil.process_iter():
if proc.name() == PROC_NAME: if proc.name() == PROC_NAME:
subprocs = proc.children() subprocs = proc.children()
@ -324,6 +323,8 @@ def get_running_app() -> int | None:
return int(next(appid).split("=")[1]) return int(next(appid).split("=")[1])
except StopIteration: except StopIteration:
return None return None
except Exception as e:
logger.debug(e)
return None return None
@ -368,8 +369,16 @@ def get_client_allows_downloads(path: Path) -> bool:
def is_dayz_running() -> bool: def is_dayz_running() -> bool:
appid = get_running_app() """Subprocesses spawned from Steam will not show up in regular process tree"""
return appid in (APPID_DAYZ, APPID_DAYZ_EXP) procs = []
substring = DAYZ_BINARY
for proc in psutil.process_iter():
try:
procs.append(proc.cmdline())
except Exception as e:
logger.warning(e)
continue
return any(substring in item for sublist in procs for item in sublist)
def get_app_path(folders_path: Path, appid: int) -> Path: def get_app_path(folders_path: Path, appid: int) -> Path: