From f9ffcfdf202cfac3b402ddef6617930d2e7bd1ec Mon Sep 17 00:00:00 2001 From: funman300 Date: Sun, 2 Aug 2026 21:26:41 -0700 Subject: [PATCH] fifa17-recon: map /transfermarket (live: FIFA's market search endpoint) Live log ground-truth: FIFA's transfer-market SEARCH hits GET /ut/game/fifa17/transfermarket?type=player&start=0&num=12 (was UNMAPPED -> catch-all {} => empty market), NOT /auctionhouse as the struct name suggested. Route it to the same listings handler. Market now serves 18 listings on the endpoint FIFA actually calls. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01PN5bmpDVQR1aXgefyWAt7o --- fifa17-recon/tools/utas_server.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fifa17-recon/tools/utas_server.py b/fifa17-recon/tools/utas_server.py index f388d2a..ba62326 100755 --- a/fifa17-recon/tools/utas_server.py +++ b/fifa17-recon/tools/utas_server.py @@ -189,6 +189,9 @@ ROUTES = [ (re.compile(G + r"/trade"), lambda m, h: trade_route(h)), (re.compile(G + r"/watchList"), lambda m, h: watchlist_route(h)), (re.compile(G + r"/auctionhouse"), lambda m, h: auctionhouse_route(h)), + # LIVE GROUND TRUTH: FIFA's market SEARCH hits /transfermarket (one word), not + # /auctionhouse (was UNMAPPED -> {} => empty market). Serve the same listings. + (re.compile(G + r"/transfermarket"), lambda m, h: auctionhouse_route(h)), (re.compile(G + r"/marketdata"), lambda m, h: (200, {"minPrice": 150, "maxPrice": 15000})), (re.compile(r"/ut/delete/game/[^/]+/trade"), lambda m, h: delete_trade_route(h)), (re.compile(r"/ut/delete/game/[^/]+/watchList"), lambda m, h: (200, {})),