diff collector/progs_all.py @ 4:5ad799e534a5

move to subdir
author drewp@bigasterisk.com
date Mon, 13 Mar 2023 18:50:23 -0700
parents progs_all.py@3d7fc94a404a
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/collector/progs_all.py	Mon Mar 13 18:50:23 2023 -0700
@@ -0,0 +1,29 @@
+import psutil
+from typing import Dict, List, Optional
+
+
+def progname(cmdline: List[str]) -> Optional[str]:
+    if len(cmdline) < 1:
+        return None
+    if cmdline[-1].endswith('/steam'):
+        return 'steam'
+    if cmdline[0].endswith('/minecraft-launcher'):
+        return 'minecraft-launcher'
+    if cmdline[0].endswith('/java') and '--versionType' in cmdline:
+        return 'minecraft'
+    if cmdline[0].endswith('/RobloxPlayer'):
+        return 'roblox'
+
+
+def get_running_progs() -> Dict[str, int]:
+    progs = set()
+    for proc in psutil.process_iter(['pid', 'name']):
+        try:
+            prog = progname(proc.cmdline())
+            if prog:
+                progs.add(prog)
+        except (psutil.AccessDenied, psutil.NoSuchProcess):
+            pass
+    return dict(
+        (p, p in progs)
+        for p in ['steam', 'minecraft-launcher', 'minecraft', 'roblox'])