Document Seamless .co2 paths and fix process-name false positives.
Record Jorg desk compatdata locations for satellite setup; devices list terra; tighten watchers so syncgames argv is not mistaken for Eden. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
+15
-11
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import time
|
||||
from pathlib import Path
|
||||
from typing import Callable
|
||||
|
||||
from syncgames.config import GameConfig
|
||||
@@ -26,18 +27,21 @@ def is_game_running(game: GameConfig) -> bool:
|
||||
pname = _norm(proc.info["name"] or "")
|
||||
if names and pname in names:
|
||||
return True
|
||||
if names and any(pname == _norm(n) for n in names):
|
||||
return True
|
||||
cmd = proc.info.get("cmdline") or []
|
||||
joined = " ".join(cmd).lower()
|
||||
if appid and (
|
||||
f"appid={appid}" in joined
|
||||
or f"steam_appid={appid}" in joined
|
||||
or f"AppId={appid}" in joined
|
||||
):
|
||||
return True
|
||||
for n in game.process_names:
|
||||
if n.lower() in joined:
|
||||
# Match executable basenames only — never substring-search the full
|
||||
# cmdline (e.g. `syncgames end eden-saves` must not look like Eden).
|
||||
for part in cmd[:2]:
|
||||
if not part:
|
||||
continue
|
||||
if _norm(Path(part).name) in names:
|
||||
return True
|
||||
if appid:
|
||||
joined = " ".join(cmd).lower()
|
||||
if (
|
||||
f"appid={appid}" in joined
|
||||
or f"steam_appid={appid}" in joined
|
||||
or f"appid={appid}" in joined
|
||||
):
|
||||
return True
|
||||
except (psutil.Error, TypeError):
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user