fifa17-recon: serve club items -- the type names are SINGULAR and they were on the wire

Arming the counters made the client name the route within seconds, exactly as it did
for consumables:

    club?type=equippables&count=11
    club?type=stadium&count=200
    club?type=ball&count=200

So it IS club?type= for this family, with SINGULAR names -- stadium and ball, not
stadia and balls -- and equippables as the combined club-customisation view. Those
requests were being answered from STORE.items(), which holds no club items because
the shelf is synthetic, so they correctly returned empty and looked like nothing was
happening.

Now serves the shelf: stadium 4, ball 6, badge 8, kit 8, equippables 30 (all four
combined), with player untouched at 205.

The cardsubtypeid values remain UNVERIFIED. cardtype 9 has no arm in the merge, so a
wrong subtype cannot announce itself; whether these render is now a live question and
the next screenshot answers it.

439 + 414 checks green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VUT92pz6RWKih9dSr8ZpxW
This commit is contained in:
funman300
2026-08-05 11:55:07 -07:00
parent 3b58b29094
commit f5002a0d4d
+18
View File
@@ -1801,6 +1801,24 @@ def club_route(h):
items = [i for i in items if i.get(field) == want]
log(" CLUB: %s=%d -> %d item(s)" % (param, want, len(items)))
# CLUB ITEMS. Observed live 2026-08-05, and the names are SINGULAR: the client
# asks type=stadium, type=ball and type=equippables (count=11 for the last,
# count=200 for the other two). Those were served from STORE.items(), which holds
# no club items because the shelf is synthetic, so they correctly came back empty.
# equippables is the combined view behind the club-customisation screen.
if CLUBITEMS and kind in ("stadium", "ball", "badge", "kit", "leaguelogos",
"equippables"):
import fut_clubitems
sh = fut_clubitems.shelf()
fam = {"stadium": "stadia", "ball": "balls", "badge": "badges",
"kit": "kits", "leaguelogos": "leaguelogos"}.get(kind)
if fam:
got = sh.get(fam, [])
else:
got = [i for fam_items in sh.values() for i in fam_items]
log(" CLUBITEMS: type=%s -> %d item(s)" % (kind, len(got)))
return 200, {"itemData": got}
if kind and kind not in ("player", "custom"):
# cardsubtypeid 0..3 is a player (FUN_1800d8330); everything else is
# staff or a manager. The save holds no non-player items (the families