mirror of
https://github.com/aclist/dztui.git
synced 2026-10-30 14:42:54 +01:00
chore: drop legacy functions
This commit is contained in:
1 parent
f4aa6c749e
commit
e8d991ccb5
5 files changed
+14
-113
No files matched your search
@@ -405,32 +405,6 @@ def get_pefile_path(steam_path: Path, appid: int) -> Path:
|
|||||||
return pe_path
|
return pe_path
|
||||||
|
|
||||||
|
|
||||||
# TODO: move to dzgui.api.steam
|
|
||||||
def _get_app_path(folders_path: Path, appid: int) -> Path:
|
|
||||||
app_path = None
|
|
||||||
|
|
||||||
try:
|
|
||||||
j = json.loads(vdf2json(folders_path))
|
|
||||||
except Exception:
|
|
||||||
raise VDFLoadError("Failed to parse libraryfolders")
|
|
||||||
|
|
||||||
for obj in j["libraryfolders"]:
|
|
||||||
if str(appid) in j["libraryfolders"][obj]["apps"]:
|
|
||||||
app_path = j["libraryfolders"][obj]["path"]
|
|
||||||
if Path(app_path).exists():
|
|
||||||
break
|
|
||||||
|
|
||||||
if app_path is None:
|
|
||||||
raise AppNotInstalledError(
|
|
||||||
f"Failed to find a libraryfolder for the appid {appid}"
|
|
||||||
)
|
|
||||||
if Path(app_path).exists() is False:
|
|
||||||
raise AppMovedError(
|
|
||||||
f"The location '{app_path}' pointed to by '{appid}' no longer exists and may have been changed on the disk."
|
|
||||||
)
|
|
||||||
|
|
||||||
return Path(app_path)
|
|
||||||
|
|
||||||
|
|
||||||
def get_pretty_version(steam_path: Path, appid: int) -> str | None:
|
def get_pretty_version(steam_path: Path, appid: int) -> str | None:
|
||||||
try:
|
try:
|
||||||
|
|||||||
+11
-46
@@ -204,57 +204,17 @@ def launch_offline(
|
|||||||
def find_user_id(path: Path) -> str | None:
|
def find_user_id(path: Path) -> str | None:
|
||||||
resolved_path = path / "config" / "loginusers.vdf"
|
resolved_path = path / "config" / "loginusers.vdf"
|
||||||
try:
|
try:
|
||||||
vdf = vdf2json(resolved_path)
|
with open(resolved_path, "r") as f:
|
||||||
j = json.loads(vdf)
|
v = vdf.load(f)
|
||||||
for user in j["users"]:
|
for user in v["users"]:
|
||||||
if j["users"][user]["MostRecent"] == "1":
|
if v["users"][user]["MostRecent"] == "1":
|
||||||
return str(user)
|
return str(user)
|
||||||
return None
|
return None
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warn(e)
|
logger.warn(e)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def vdf2json(path: Path) -> str:
|
|
||||||
def _istr(indent: int, string: str) -> str:
|
|
||||||
return (indent * " ") + string
|
|
||||||
|
|
||||||
jbuf = "{\n"
|
|
||||||
indent = 1
|
|
||||||
|
|
||||||
with open(path, "r") as f:
|
|
||||||
st = f.read()
|
|
||||||
lex = shlex(st)
|
|
||||||
|
|
||||||
while True:
|
|
||||||
tok = lex.get_token()
|
|
||||||
if not tok:
|
|
||||||
return jbuf + "}\n"
|
|
||||||
if tok == "}":
|
|
||||||
indent -= 1
|
|
||||||
jbuf += _istr(indent, "}")
|
|
||||||
ntok = lex.get_token()
|
|
||||||
if ntok is not None:
|
|
||||||
lex.push_token(ntok)
|
|
||||||
if ntok and ntok != "}":
|
|
||||||
jbuf += ","
|
|
||||||
jbuf += "\n"
|
|
||||||
else:
|
|
||||||
ntok = lex.get_token()
|
|
||||||
if ntok == "{":
|
|
||||||
jbuf += _istr(indent, tok + ": {\n")
|
|
||||||
indent += 1
|
|
||||||
else:
|
|
||||||
if ntok is not None:
|
|
||||||
jbuf += _istr(indent, tok + ": " + ntok)
|
|
||||||
ntok = lex.get_token()
|
|
||||||
if ntok is not None:
|
|
||||||
lex.push_token(ntok)
|
|
||||||
if ntok != "}":
|
|
||||||
jbuf += ","
|
|
||||||
jbuf += "\n"
|
|
||||||
|
|
||||||
|
|
||||||
def update_workshop(key: str, mod: int, endpoint: str) -> None:
|
def update_workshop(key: str, mod: int, endpoint: str) -> None:
|
||||||
payload: dict[str, Union[int, str]] = {
|
payload: dict[str, Union[int, str]] = {
|
||||||
"publishedfileid": mod,
|
"publishedfileid": mod,
|
||||||
@@ -341,6 +301,7 @@ def _get_running_app() -> int | None:
|
|||||||
|
|
||||||
|
|
||||||
# TODO: write tests
|
# TODO: write tests
|
||||||
|
# TODO: consider moving to proc module
|
||||||
def get_running_app() -> int | None:
|
def get_running_app() -> int | None:
|
||||||
PROC_NAME = "steam"
|
PROC_NAME = "steam"
|
||||||
SUBPROC_NAME = "reaper"
|
SUBPROC_NAME = "reaper"
|
||||||
@@ -431,3 +392,7 @@ def get_app_path(folders_path: Path, appid: int) -> Path:
|
|||||||
)
|
)
|
||||||
|
|
||||||
return Path(app_path)
|
return Path(app_path)
|
||||||
|
|
||||||
|
|
||||||
|
p = Path("/home/ncase/.local/share/Steam")
|
||||||
|
print(find_user_id(p))
|
||||||
@@ -20,21 +20,6 @@ from dzgui.util.format import format_exception
|
|||||||
logger = logging.getLogger(APP_NAME)
|
logger = logging.getLogger(APP_NAME)
|
||||||
|
|
||||||
|
|
||||||
# TODO: move to util.proc
|
|
||||||
def is_dayz_running() -> bool:
|
|
||||||
"""Subprocesses spawned from Steam will not show up in regular process tree"""
|
|
||||||
procs = []
|
|
||||||
substring = DAYZ_BINARY
|
|
||||||
for proc in psutil.process_iter():
|
|
||||||
try:
|
|
||||||
procs.append(proc.cmdline())
|
|
||||||
except Exception as e:
|
|
||||||
msg = format_exception(e)
|
|
||||||
logger.warning(msg)
|
|
||||||
continue
|
|
||||||
return any(substring in item for sublist in procs for item in sublist)
|
|
||||||
|
|
||||||
|
|
||||||
def is_steam_running(cmd: str) -> bool:
|
def is_steam_running(cmd: str) -> bool:
|
||||||
if cmd == STEAM_CMD:
|
if cmd == STEAM_CMD:
|
||||||
if has_cmd(STEAM_CMD) is False:
|
if has_cmd(STEAM_CMD) is False:
|
||||||
@@ -69,26 +54,3 @@ def has_cmd(cmd: str) -> bool:
|
|||||||
if shutil.which(cmd) is not None:
|
if shutil.which(cmd) is not None:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
# TODO: drop, completely superseded by new methods
|
|
||||||
@deprecated("dropped in favor of Gtk native methods")
|
|
||||||
def foreground(cmd: str, pid: int) -> None:
|
|
||||||
if cmd == "wmctrl":
|
|
||||||
proc = subprocess.run(["wmctrl", "-ilp"], capture_output=True, text=True)
|
|
||||||
lines = proc.stdout.splitlines()
|
|
||||||
for line in lines:
|
|
||||||
els = line.split(" ")
|
|
||||||
if str(pid) in els:
|
|
||||||
wid = els[0]
|
|
||||||
break
|
|
||||||
subprocess.run(["wmctrl", "-ia", wid])
|
|
||||||
elif cmd == "xdotool":
|
|
||||||
args = [cmd, "search", "--pid", str(pid)]
|
|
||||||
proc = subprocess.run([*args], capture_output=True, text=True)
|
|
||||||
lines = proc.stdout.splitlines()
|
|
||||||
## NOTE: some forked subprocesses may fail, so skip over them
|
|
||||||
for line in lines:
|
|
||||||
subprocess.run(
|
|
||||||
["xdotool", "windowactivate", line], stderr=subprocess.DEVNULL
|
|
||||||
)
|
|
||||||
@@ -32,8 +32,9 @@ from dzgui.const.constants import (
|
|||||||
APPNAME_DAYZ,
|
APPNAME_DAYZ,
|
||||||
APPNAME_DAYZ_EXP_HUMAN,
|
APPNAME_DAYZ_EXP_HUMAN,
|
||||||
)
|
)
|
||||||
|
from dzgui.api.steam import is_dayz_running
|
||||||
from dzgui.const.enum import NotebookPage, Preferences
|
from dzgui.const.enum import NotebookPage, Preferences
|
||||||
from dzgui.init.proc import is_dayz_running, is_steam_running
|
from dzgui.init.proc import is_steam_running
|
||||||
from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManager
|
from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManager
|
||||||
from dzgui.strings.dialogs import (
|
from dzgui.strings.dialogs import (
|
||||||
waiting_for_launch,
|
waiting_for_launch,
|
||||||
|
|||||||
@@ -5,10 +5,9 @@ from typing import Callable, TYPE_CHECKING, Union
|
|||||||
|
|
||||||
import dzgui.api.pefile as PeFile
|
import dzgui.api.pefile as PeFile
|
||||||
from dzgui.api.mods import is_mission, get_custom_mods
|
from dzgui.api.mods import is_mission, get_custom_mods
|
||||||
from dzgui.api.steam import launch_offline
|
from dzgui.api.steam import is_dayz_running, launch_offline
|
||||||
from dzgui.const.constants import APP_NAME, APPID_DAYZ_EXP
|
from dzgui.const.constants import APP_NAME, APPID_DAYZ_EXP
|
||||||
from dzgui.const.enum import Preferences
|
from dzgui.const.enum import Preferences
|
||||||
from dzgui.init.proc import is_dayz_running
|
|
||||||
from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManager
|
from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManager
|
||||||
from dzgui.model.model_factory import ModelFactory
|
from dzgui.model.model_factory import ModelFactory
|
||||||
from dzgui.strings import dialogs
|
from dzgui.strings import dialogs
|
||||||
|
|||||||
Reference in new issue
Block a user