mirror of
https://github.com/seanbetts/steam-hardware-watch.git
synced 2026-10-06 01:00:18 +02:00
Prioritize Machine and Frame SteamTracking signals
This commit is contained in:
1 parent
98f9a51171
commit
0ac9232d61
7 files changed
+497
-27
No files matched your search
@@ -125,6 +125,8 @@ def build_summary(prev_dir: Path, curr_dir: Path):
|
||||
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamKit/PICS", "steamkit-pics-key-lines.txt"))
|
||||
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamDB", "steamdb-key-lines.txt"))
|
||||
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamTracking source", "steamtracking-source.txt"))
|
||||
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamTracking Frame signals", "steamtracking-frame-signals-key-lines.txt"))
|
||||
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamTracking Machine signals", "steamtracking-machine-signals-key-lines.txt"))
|
||||
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamTracking hardware signals", "steamtracking-hardware-signals-key-lines.txt"))
|
||||
deltas.extend(compare_text_lines(prev_dir, curr_dir, "Steam client manifests", "steamtracking-client-manifests-key-lines.txt"))
|
||||
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamVR depots", "steamvr-depots-key-lines.txt"))
|
||||
|
||||
@@ -53,6 +53,12 @@ def build_draft(run_dir: Path):
|
||||
hardware_signal_lines = first_n_nonempty(
|
||||
reports / "steamtracking-hardware-signals-key-lines.txt", 8
|
||||
)
|
||||
frame_signal_lines = first_n_nonempty(
|
||||
reports / "steamtracking-frame-signals-key-lines.txt", 12
|
||||
)
|
||||
machine_signal_lines = first_n_nonempty(
|
||||
reports / "steamtracking-machine-signals-key-lines.txt", 12
|
||||
)
|
||||
client_manifest_lines = first_n_nonempty(
|
||||
reports / "steamtracking-client-manifests-key-lines.txt", 8
|
||||
)
|
||||
@@ -133,6 +139,12 @@ def build_draft(run_dir: Path):
|
||||
lines.extend([f"- `{line}`" for line in tracking_lines])
|
||||
else:
|
||||
lines.append("- No focused SteamTracking report found.")
|
||||
if frame_signal_lines:
|
||||
lines.extend(["", "Steam Frame client signal focus:"])
|
||||
lines.extend([f"- `{line}`" for line in frame_signal_lines])
|
||||
if machine_signal_lines:
|
||||
lines.extend(["", "Steam Machine client signal focus:"])
|
||||
lines.extend([f"- `{line}`" for line in machine_signal_lines])
|
||||
if hardware_signal_lines:
|
||||
lines.extend(["", "Steam hardware backend signal focus:"])
|
||||
lines.extend([f"- `{line}`" for line in hardware_signal_lines])
|
||||
|
||||
@@ -42,6 +42,25 @@ SIGNAL_RE = re.compile(
|
||||
re.IGNORECASE,
|
||||
)
|
||||
|
||||
FRAME_RE = re.compile(r"Steam\s*Frame|SteamFrame|steamframe|FrameVerified|FrameGames", re.IGNORECASE)
|
||||
|
||||
FRAME_PRIORITY_RE = re.compile(
|
||||
r"WelcomeToSteamFrame|GuidedTour_SteamFrame|SteamFrameWirelessAdapterDialog|"
|
||||
r"controller_steamframe_pair|Settings_RemotePlay_WifiAPSection|"
|
||||
r"Settings_Internet_Limit_Connection_Lower_Bands|LibraryTab_FrameVerified|"
|
||||
r"steamFrameVerifiedApps|FrameGames|skip_steamframe_pairing_dialog|"
|
||||
r"k_EAppTestType_SteamFrameCompatibilityReview",
|
||||
re.IGNORECASE,
|
||||
)
|
||||
|
||||
MACHINE_RE = re.compile(r"Steam\s*Machine|SteamMachine|steammachine", re.IGNORECASE)
|
||||
|
||||
MACHINE_PRIORITY_RE = re.compile(
|
||||
r"GuidedTour_SteamMachine|WelcomeToSteamMachine|GuidedTour_SDCard_Title_SteamMachine|"
|
||||
r"SteamMachine_TestResult|SteamMachineVerified|SteamMachineCompatibility",
|
||||
re.IGNORECASE,
|
||||
)
|
||||
|
||||
|
||||
def iter_files(tracking_dir: Path):
|
||||
for root in SEARCH_ROOTS:
|
||||
@@ -119,6 +138,95 @@ def write_key_lines(rows, path: Path):
|
||||
path.write_text("\n".join(lines) + ("\n" if lines else ""), encoding="utf-8")
|
||||
|
||||
|
||||
def frame_category(row):
|
||||
text = row["text"]
|
||||
if not (FRAME_RE.search(text) or FRAME_RE.search(row["path"])):
|
||||
return ""
|
||||
if not FRAME_PRIORITY_RE.search(text):
|
||||
return ""
|
||||
if re.search(r"WelcomeToSteamFrame|GuidedTour_SteamFrame", text, re.IGNORECASE):
|
||||
return "frame-setup"
|
||||
if re.search(
|
||||
r"SteamFrameWirelessAdapterDialog|controller_steamframe_pair|"
|
||||
r"Settings_RemotePlay_WifiAPSection|Settings_Internet_Limit_Connection_Lower_Bands|"
|
||||
r"skip_steamframe_pairing_dialog",
|
||||
text,
|
||||
re.IGNORECASE,
|
||||
):
|
||||
return "frame-pairing"
|
||||
if re.search(
|
||||
r"LibraryTab_FrameVerified|steamFrameVerifiedApps|FrameGames|"
|
||||
r"k_EAppTestType_SteamFrameCompatibilityReview",
|
||||
text,
|
||||
re.IGNORECASE,
|
||||
):
|
||||
return "frame-compatibility"
|
||||
return "frame"
|
||||
|
||||
|
||||
def write_frame_key_lines(rows, path: Path):
|
||||
priority = {
|
||||
"frame-setup": 0,
|
||||
"frame-pairing": 1,
|
||||
"frame-compatibility": 2,
|
||||
"frame": 3,
|
||||
}
|
||||
lines = []
|
||||
seen = set()
|
||||
def sort_key(row):
|
||||
return (priority.get(frame_category(row), 99), row["path"], int(row["line"]), row["text"])
|
||||
|
||||
for row in sorted(rows, key=sort_key):
|
||||
category = frame_category(row)
|
||||
if not category:
|
||||
continue
|
||||
line = f"{category}\t{row['path']}:{row['line']}\t{row['text']}"
|
||||
if line in seen:
|
||||
continue
|
||||
seen.add(line)
|
||||
lines.append(line)
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
path.write_text("\n".join(lines) + ("\n" if lines else ""), encoding="utf-8")
|
||||
|
||||
|
||||
def machine_category(row):
|
||||
text = row["text"]
|
||||
if not (MACHINE_RE.search(text) or MACHINE_RE.search(row["path"])):
|
||||
return ""
|
||||
if not MACHINE_PRIORITY_RE.search(text):
|
||||
return ""
|
||||
if re.search(r"GuidedTour_SteamMachine|WelcomeToSteamMachine|GuidedTour_SDCard_Title_SteamMachine", text, re.IGNORECASE):
|
||||
return "machine-setup"
|
||||
if re.search(r"SteamMachine_TestResult|SteamMachineVerified|SteamMachineCompatibility", text, re.IGNORECASE):
|
||||
return "machine-compatibility"
|
||||
return "machine"
|
||||
|
||||
|
||||
def write_machine_key_lines(rows, path: Path):
|
||||
priority = {
|
||||
"machine-setup": 0,
|
||||
"machine-compatibility": 1,
|
||||
"machine": 2,
|
||||
}
|
||||
lines = []
|
||||
seen = set()
|
||||
|
||||
def sort_key(row):
|
||||
return (priority.get(machine_category(row), 99), row["path"], int(row["line"]), row["text"])
|
||||
|
||||
for row in sorted(rows, key=sort_key):
|
||||
category = machine_category(row)
|
||||
if not category:
|
||||
continue
|
||||
line = f"{category}\t{row['path']}:{row['line']}\t{row['text']}"
|
||||
if line in seen:
|
||||
continue
|
||||
seen.add(line)
|
||||
lines.append(line)
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
path.write_text("\n".join(lines) + ("\n" if lines else ""), encoding="utf-8")
|
||||
|
||||
|
||||
def write_markdown(rows, path: Path):
|
||||
lines = [
|
||||
"# SteamTracking Hardware Signals",
|
||||
@@ -148,6 +256,8 @@ def main():
|
||||
rows.sort(key=lambda row: (row["category"], row["path"], int(row["line"]), row["text"]))
|
||||
write_tsv(rows, reports / "steamtracking-hardware-signals.tsv")
|
||||
write_key_lines(rows, reports / "steamtracking-hardware-signals-key-lines.txt")
|
||||
write_frame_key_lines(rows, reports / "steamtracking-frame-signals-key-lines.txt")
|
||||
write_machine_key_lines(rows, reports / "steamtracking-machine-signals-key-lines.txt")
|
||||
write_markdown(rows, reports / "steamtracking-hardware-signals.md")
|
||||
|
||||
|
||||
|
||||
@@ -159,6 +159,8 @@ def build(run_dir: Path):
|
||||
notable.extend([f"- SteamKit/PICS: `{line}`" for line in filtered_first(reports / "steamkit-pics-key-lines.txt", 8)])
|
||||
notable.extend([f"- SteamDB: `{line}`" for line in filtered_first(reports / "steamdb-key-lines.txt", 5)])
|
||||
notable.extend([f"- SteamTracking: `{line}`" for line in filtered_first(reports / "steamtracking-pairing-focus.txt", 5)])
|
||||
notable.extend([f"- SteamTracking Frame: `{line}`" for line in filtered_first(reports / "steamtracking-frame-signals-key-lines.txt", 12)])
|
||||
notable.extend([f"- SteamTracking Machine: `{line}`" for line in filtered_first(reports / "steamtracking-machine-signals-key-lines.txt", 12)])
|
||||
notable.extend([f"- SteamTracking hardware: `{line}`" for line in filtered_first(reports / "steamtracking-hardware-signals-key-lines.txt", 8)])
|
||||
notable.extend([f"- Steam client manifests: `{line}`" for line in filtered_first(reports / "steamtracking-client-manifests-key-lines.txt", 8)])
|
||||
notable.extend([f"- SteamVR depots: `{line}`" for line in filtered_first(reports / "steamvr-depots-key-lines.txt", 5)])
|
||||
|
||||
Reference in new issue
Block a user