Spaces:
Sleeping
Sleeping
| # openboxing_api.py | |
| # openboxing_api.py | |
| import requests | |
| BASE_URL = "https://openboxing.org/api" | |
| def get_all_champions(): | |
| """ | |
| Fetch all champions/fighters from Open Boxing API. | |
| Returns a list of fighter dictionaries. | |
| """ | |
| url = f"{BASE_URL}/champions/all.json" | |
| response = requests.get(url) | |
| if response.status_code == 200: | |
| return response.json() | |
| return [] | |
| def find_champion_by_name(all_champs, name: str): | |
| """ | |
| Search for a fighter/champion by name. | |
| Returns the first match dict or None if not found. | |
| """ | |
| name_lower = name.lower().strip() | |
| for champ in all_champs: | |
| first = champ['name'].get('first', '').lower() | |
| last = champ['name'].get('last', '').lower() | |
| full_name = f"{first} {last}".strip() | |
| if name_lower in full_name: | |
| print(champ) | |
| return champ | |
| return None | |
| def get_all_bouts(): | |
| url = f"{BASE_URL}/bouts/all.json" | |
| response = requests.get(url) | |
| if response.status_code != 200: | |
| return [] | |
| bouts = response.json() | |
| return bouts | |
| def get_bouts_for_champion(bouts, champion_id: int): | |
| """ | |
| Fetch all bouts/fights for a given champion ID. | |
| Returns a list of bout dictionaries. | |
| """ | |
| champ_bouts = [] | |
| for bout in bouts: | |
| boxers = bout.get("boxers", {}) | |
| boxerA = boxers.get("boxerA", {}) | |
| boxerB = boxers.get("boxerB", {}) | |
| if boxerA.get("championId") == champion_id or boxerB.get("championId") == champion_id: | |
| print(boxerA, boxerB) | |
| champ_bouts.append(bout) | |
| return champ_bouts | |