Spaces:
Paused
Paused
Update sportbet.py
Browse files- sportbet.py +30 -13
sportbet.py
CHANGED
|
@@ -18,13 +18,23 @@ async def fetch_nhl_scores():
|
|
| 18 |
|
| 19 |
async def fetch_nfl_scores():
|
| 20 |
current_year = datetime.now().year
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
return None # If no current week is found
|
| 29 |
|
| 30 |
class SportSelect(discord.ui.Select):
|
|
@@ -54,7 +64,9 @@ class SportSelect(discord.ui.Select):
|
|
| 54 |
if not scores:
|
| 55 |
await interaction.followup.send("No NFL games available for betting this week.", ephemeral=False)
|
| 56 |
return
|
| 57 |
-
events =
|
|
|
|
|
|
|
| 58 |
upcoming_games = [game for game in events if game.get('eventStatus') == 2]
|
| 59 |
if not upcoming_games:
|
| 60 |
await interaction.followup.send("No NFL games available for betting this week.", ephemeral=False)
|
|
@@ -202,16 +214,21 @@ class BetModal(discord.ui.Modal, title="Place Your Bet"):
|
|
| 202 |
# Check for score updates
|
| 203 |
for team, score in current_scores.items():
|
| 204 |
if score > previous_scores.get(team, 0):
|
| 205 |
-
team_name =
|
| 206 |
-
message = f"**{team_name}** SCORED! Current score: {current_scores[
|
| 207 |
await user.send(message)
|
| 208 |
|
| 209 |
previous_scores = current_scores.copy()
|
| 210 |
|
| 211 |
if is_final:
|
| 212 |
-
away_score = current_scores.get(
|
| 213 |
-
home_score = current_scores.get(
|
| 214 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 215 |
|
| 216 |
if winner == self.team:
|
| 217 |
winnings = bet_amount * 2
|
|
|
|
| 18 |
|
| 19 |
async def fetch_nfl_scores():
|
| 20 |
current_year = datetime.now().year
|
| 21 |
+
# Start by fetching week 1 data to get quickNav
|
| 22 |
+
url = f"https://api.foxsports.com/bifrost/v1/nfl/scoreboard/segment/{current_year}-1-1?apikey={API_KEY}"
|
| 23 |
+
async with aiohttp.ClientSession() as session:
|
| 24 |
+
async with session.get(url) as response:
|
| 25 |
+
data = await response.json()
|
| 26 |
+
quick_nav = data.get('quickNav', [])
|
| 27 |
+
current_week_id = None
|
| 28 |
+
for week_info in quick_nav:
|
| 29 |
+
if week_info.get('selected'):
|
| 30 |
+
current_week_id = week_info['id'] # e.g., '2024-7-1'
|
| 31 |
+
break
|
| 32 |
+
if current_week_id:
|
| 33 |
+
# Fetch data for the current week
|
| 34 |
+
url_current_week = f"https://api.foxsports.com/bifrost/v1/nfl/scoreboard/segment/{current_week_id}?apikey={API_KEY}"
|
| 35 |
+
async with session.get(url_current_week) as response_current_week:
|
| 36 |
+
data_current_week = await response_current_week.json()
|
| 37 |
+
return data_current_week
|
| 38 |
return None # If no current week is found
|
| 39 |
|
| 40 |
class SportSelect(discord.ui.Select):
|
|
|
|
| 64 |
if not scores:
|
| 65 |
await interaction.followup.send("No NFL games available for betting this week.", ephemeral=False)
|
| 66 |
return
|
| 67 |
+
events = []
|
| 68 |
+
for section in scores.get('sectionList', []):
|
| 69 |
+
events.extend(section.get('events', []))
|
| 70 |
upcoming_games = [game for game in events if game.get('eventStatus') == 2]
|
| 71 |
if not upcoming_games:
|
| 72 |
await interaction.followup.send("No NFL games available for betting this week.", ephemeral=False)
|
|
|
|
| 214 |
# Check for score updates
|
| 215 |
for team, score in current_scores.items():
|
| 216 |
if score > previous_scores.get(team, 0):
|
| 217 |
+
team_name = game['lowerTeam']['longName'] if team == game['lowerTeam']['name'] else game['upperTeam']['longName']
|
| 218 |
+
message = f"**{team_name}** SCORED! Current score: {current_scores[game['lowerTeam']['name']]} - {current_scores[game['upperTeam']['name']]}"
|
| 219 |
await user.send(message)
|
| 220 |
|
| 221 |
previous_scores = current_scores.copy()
|
| 222 |
|
| 223 |
if is_final:
|
| 224 |
+
away_score = current_scores.get(game['lowerTeam']['name'], 0)
|
| 225 |
+
home_score = current_scores.get(game['upperTeam']['name'], 0)
|
| 226 |
+
if away_score > home_score:
|
| 227 |
+
winner = game['lowerTeam']['name']
|
| 228 |
+
elif home_score > away_score:
|
| 229 |
+
winner = game['upperTeam']['name']
|
| 230 |
+
else:
|
| 231 |
+
winner = None # It's a tie
|
| 232 |
|
| 233 |
if winner == self.team:
|
| 234 |
winnings = bet_amount * 2
|