diff --git a/fifa17-recon/tools/utas_server.py b/fifa17-recon/tools/utas_server.py index 2890139..001cfef 100755 --- a/fifa17-recon/tools/utas_server.py +++ b/fifa17-recon/tools/utas_server.py @@ -1435,11 +1435,31 @@ def club_route(h): # disturb them. An unrecognised type is treated like manager -- filtered, not # unfiltered -- since answering an unknown question with the whole player list # is what produced this bug in the first place. - kind = "" + q = {} if "?" in h.path: for part in h.path.split("?", 1)[1].split("&"): - if part.startswith("type="): - kind = part[5:] + if "=" in part: + k, v = part.split("=", 1) + q[k] = v + kind = q.get("type", "") + + # HONOUR ?team= AND ?league=. These are the CLUB DRILL-DOWNS: clicking Chelsea in + # the club panel issues team=5, clicking the Premier League issues league=13. + # They were ignored, so every drill-down was answered with the ENTIRE club and + # Cristiano Ronaldo showed up under Chelsea, Arsenal and everyone else. Reported + # live 2026-08-05. The counts on the stats panel were right all along; it was + # only the item list that was unfiltered. + for param, field in (("team", "teamid"), ("league", "leagueId")): + raw = q.get(param) + if raw is None: + continue + try: + want = int(raw) + except ValueError: + continue + items = [i for i in items if i.get(field) == want] + log(" CLUB: %s=%d -> %d item(s)" % (param, want, len(items))) + if kind and kind not in ("player", "custom"): # cardsubtypeid 0..3 is a player (FUN_1800d8330); everything else is # staff or a manager. We own no staff cards yet, so this is [] today --