import json
import os
import sys
import urllib.parse
import urllib.request

BASE_URL = os.getenv("LEGABOT_DATA_URL", "https://data.lega.bot")
API_KEY = os.environ["LEGABOT_DATA_API_KEY"]
MATCH_ID = sys.argv[1]

def get(path):
    request = urllib.request.Request(BASE_URL + path, headers={"Authorization": "Bearer " + API_KEY})
    with urllib.request.urlopen(request, timeout=15) as response:
        return json.load(response)

match_id = urllib.parse.quote(MATCH_ID, safe="")
snapshot = get("/api/v1/feed/snapshot?matchId=" + match_id)
cursor = int(snapshot["Header"]["Sequence"])
# Persist payload and cursor atomically before requesting subsequent messages.
batch = get(f"/api/v1/feed/deltas?matchId={match_id}&afterSequence={cursor}")
for message in batch["Body"]["Messages"]:
    cursor = int(message["Header"]["Sequence"])
    print(cursor, message["Header"]["Type"])
