#!/usr/bin/env python3
"""One public GET snapshot. No credentials, wallet or order submission."""
import json
import sys
import urllib.parse
import urllib.request
if len(sys.argv) != 2 or not sys.argv[1].isdigit():
    raise SystemExit('Usage: python3 read-polymarket-book.py OUTCOME_ID (decimal string)')
url = 'https://clob.polymarket.com/book?' + urllib.parse.urlencode({'token_id': sys.argv[1]})
request = urllib.request.Request(url, headers={"User-Agent": "AlphascopeBookReader/1.0", "Accept": "application/json"})
with urllib.request.urlopen(request, timeout=15) as response:
    payload = response.read(1_000_001)
if len(payload) > 1_000_000:
    raise SystemExit('Response exceeds 1 MB')
book = json.loads(payload)
if not isinstance(book, dict) or not isinstance(book.get('bids'), list) or not isinstance(book.get('asks'), list):
    raise SystemExit('Unexpected order-book response')
print(json.dumps(book, indent=2))
