| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- """Parse cached serverlist: decode the abbreviated serverData fields and find
- the TCP gateway (host/port) for the 玖扬复古176 servers.
- """
- import json
- import sys
- from pathlib import Path
- if hasattr(sys.stdout, "reconfigure"):
- sys.stdout.reconfigure(encoding="utf-8", errors="replace")
- SRVLIST = Path(r"D:\ProgramFiles\996box\GameBoxDownload\1\cq\cache_206923\ResServerlist.txt_206923")
- def main() -> int:
- data = json.loads(SRVLIST.read_text(encoding="utf-8"))
- servers = data["serverData"]
- groups = {g["tag"]: g["name"] for g in data["serverGroup"]}
- print("=== First 2 servers (all fields) ===")
- for s in servers[:2]:
- print(json.dumps(s, ensure_ascii=False, indent=2))
- print()
- print("=== Field value patterns (servers 3-6) ===")
- for s in servers[2:6]:
- print({k: (str(v)[:70]) for k, v in s.items()})
- print()
- # Find 玖扬 group
- jiuyang_tags = [t for t, n in groups.items() if "玖扬" in str(n) or "复古" in str(n)]
- print(f"jiuyang group tags: {jiuyang_tags} -> {[groups.get(t) for t in jiuyang_tags]}")
- print()
- print("=== Servers in 玖扬复古176 group (first 5) ===")
- count = 0
- for s in servers:
- if s.get("g") in jiuyang_tags:
- print(json.dumps(s, ensure_ascii=False))
- count += 1
- if count >= 5:
- break
- print(f"(total shown: {count})")
- print()
- print("=== User's server (s contains 14414738) ===")
- for s in servers:
- if "14414738" in str(s.get("s", "")) or "14414738" in str(s.get("d", "")):
- print(json.dumps(s, ensure_ascii=False, indent=2))
- break
- return 0
- if __name__ == "__main__":
- sys.exit(main())
|