4therapy commited on
Commit
63a866c
·
verified ·
1 Parent(s): 6241232

Update openboxing_api.py

Browse files
Files changed (1) hide show
  1. openboxing_api.py +31 -42
openboxing_api.py CHANGED
@@ -1,51 +1,40 @@
1
- pip install requests
2
  import requests
3
 
4
- BASE_URL = "https://api.openboxing.org" # change to actual API base if different
5
 
6
- def get_fighter(fighter_name: str):
7
- url = f"{BASE_URL}/fighters"
8
- params = {"search": fighter_name} # depends on API spec
9
- response = requests.get(url, params=params)
 
 
10
  if response.status_code == 200:
11
- data = response.json()
12
- if data and len(data) > 0:
13
- return data[0] # first match
 
 
 
 
 
 
 
 
14
  return None
15
 
16
  def get_fights(fighter_id: str):
17
- url = f"{BASE_URL}/fights"
18
- params = {"fighter_id": fighter_id}
19
- response = requests.get(url, params=params)
 
 
 
 
20
  if response.status_code == 200:
21
- return response.json()
22
- return []
23
- from openboxing_api import get_fighter, get_fights
24
-
25
- def respond(message, history, system_message, max_tokens, temperature, top_p, hf_token=None):
26
- # Check if user asks for a fight prediction
27
- if "predict" in message.lower() and "vs" in message.lower():
28
- fighters = message.split("vs")
29
- if len(fighters) == 2:
30
- fighter1_name = fighters[0].strip()
31
- fighter2_name = fighters[1].strip()
32
-
33
- fighter1 = get_fighter(fighter1_name)
34
- fighter2 = get_fighter(fighter2_name)
35
-
36
- if fighter1 and fighter2:
37
- fights1 = get_fights(fighter1["id"])
38
- fights2 = get_fights(fighter2["id"])
39
 
40
- # Build context for the LLM
41
- message = f"""
42
- Fighter 1: {fighter1['name']} ({fighter1['record']}, {fighter1.get('height', 'N/A')}cm)
43
- Fighter 2: {fighter2['name']} ({fighter2['record']}, {fighter2.get('height', 'N/A')}cm)
44
- Fight histories:
45
- {fighter1['name']} fights: {len(fights1)}
46
- {fighter2['name']} fights: {len(fights2)}
47
- Based on this info, simulate a round-by-round prediction.
48
- """
49
- message += "\nUndercard fights:\n"
50
- for under_fight in undercard:
51
- message += f"{under_fight['fighter1']} vs {under_fight['fighter2']}\n"
 
1
+ # openboxing_api.py
2
  import requests
3
 
4
+ BASE_URL = "https://openboxing.org/api" # official Open Boxing API base
5
 
6
+ def get_fighters():
7
+ """
8
+ Fetch all fighters. Returns a list of fighter dicts.
9
+ """
10
+ url = f"{BASE_URL}/champions/all.json" # or correct endpoint
11
+ response = requests.get(url)
12
  if response.status_code == 200:
13
+ return response.json() # usually a list of fighters
14
+ return []
15
+
16
+ def search_fighter(fighter_name: str):
17
+ """
18
+ Search for a fighter by name. Returns first match or None.
19
+ """
20
+ fighters = get_fighters()
21
+ for f in fighters:
22
+ if fighter_name.lower() in f["name"].lower():
23
+ return f
24
  return None
25
 
26
  def get_fights(fighter_id: str):
27
+ """
28
+ Fetch fight history for a given fighter.
29
+ Note: Open Boxing returns bouts list; adjust as needed.
30
+ """
31
+ url = f"{BASE_URL}/bouts/all.json"
32
+ response = requests.get(url)
33
+ fights = []
34
  if response.status_code == 200:
35
+ data = response.json()
36
+ for bout in data:
37
+ if fighter_id in [bout.get("red_id"), bout.get("blue_id")]:
38
+ fights.append(bout)
39
+ return fights
 
 
 
 
 
 
 
 
 
 
 
 
 
40