DL-Broadcast-Tool/data/match_history.py
2026-04-08 18:13:02 +10:00

54 lines
No EOL
1.6 KiB
Python

import requests
BASE = "https://dashleague.games/api/v1"
def fetch_player_match_history(player_id):
"""
Builds full match history for a player by iterating all seasons and matches.
Returns a list of per-match stat dicts.
"""
# 1. Fetch all seasons
seasons_resp = requests.get(f"{BASE}/seasons")
seasons = seasons_resp.json()
history = []
for season in seasons:
sid = season.get("id")
if not sid:
continue
# 2. Fetch all matches in this season
matches_resp = requests.get(f"{BASE}/seasons/{sid}/matches")
matches = matches_resp.json()
for match in matches:
mid = match.get("id")
if not mid:
continue
# 3. Fetch full match details
detail_resp = requests.get(f"{BASE}/match/{mid}")
detail = detail_resp.json()
mode = detail.get("mode", "").lower()
# 4. Find player in match
for p in detail.get("players", []):
if p.get("id") == player_id:
entry = {
"kills": p.get("kills", 0),
"deaths": p.get("deaths", 0),
"accuracy": p.get("accuracy", 0.0),
"damage": p.get("damage", 0),
"push_time": p.get("PAY_PushTime", 0),
"captures": p.get("DOM_captures", 0),
"counters": p.get("DOM_counters", 0),
"mode": mode
}
history.append(entry)
return history