coollsd commited on
Commit
ee3f308
·
verified ·
1 Parent(s): 5c5186f

Update sportbet.py

Browse files
Files changed (1) hide show
  1. sportbet.py +5 -45
sportbet.py CHANGED
@@ -2,16 +2,11 @@ import discord
2
  from discord import app_commands
3
  import aiohttp
4
  import asyncio
5
- from datetime import datetime, timezone, timedelta
6
 
7
  user_cash = {}
8
  user_bets = {}
9
 
10
- def save_database():
11
- with open("database.txt", "w") as f:
12
- for user_id, cash in user_cash.items():
13
- f.write(f"{user_id} cash({cash})\n")
14
-
15
  def load_database():
16
  global user_cash
17
  try:
@@ -32,27 +27,13 @@ async def fetch_nhl_scores():
32
  async with session.get("https://nhl-score-api.herokuapp.com/api/scores/latest") as response:
33
  return await response.json()
34
 
35
- def format_time_difference(start_time):
36
- now = datetime.now(timezone.utc)
37
- start = datetime.fromisoformat(start_time.replace('Z', '+00:00'))
38
- diff = start - now
39
-
40
- if diff < timedelta(0):
41
- return "Game has already started"
42
- elif diff < timedelta(hours=1):
43
- return f"{diff.seconds // 60} minutes from now"
44
- elif diff < timedelta(days=1):
45
- return f"{diff.seconds // 3600} hours from now"
46
- else:
47
- return f"{diff.days} days from now"
48
-
49
  class GameSelect(discord.ui.Select):
50
  def __init__(self, games):
51
  options = [
52
  discord.SelectOption(
53
  label=f"{game['teams']['away']['teamName']} vs {game['teams']['home']['teamName']}",
54
  value=f"{game['teams']['away']['abbreviation']}_{game['teams']['home']['abbreviation']}",
55
- description=f"Start: {format_time_difference(game['startTime'])}"
56
  ) for game in games
57
  ]
58
  super().__init__(placeholder="Select a game", options=options)
@@ -80,10 +61,9 @@ class BetModal(discord.ui.Modal, title="Place Your Bet"):
80
  if bet_amount <= 0:
81
  raise ValueError("Bet more than 0 dollars")
82
  if bet_amount > user_cash.get(self.user_id, 0):
83
- raise ValueError(f"Insufficient funds. Your balance is ${user_cash.get(self.user_id, 0)}")
84
 
85
  user_cash[self.user_id] -= bet_amount
86
- save_database()
87
  await interaction.response.send_message(f"Bet placed on {self.team} for ${bet_amount}")
88
 
89
  user = await interaction.client.fetch_user(self.user_id)
@@ -91,7 +71,7 @@ class BetModal(discord.ui.Modal, title="Place Your Bet"):
91
  embed.add_field(name="Team", value=self.team, inline=False)
92
  embed.add_field(name="Amount", value=f"${bet_amount}", inline=False)
93
  embed.add_field(name="Game", value=f"{self.game_data['teams']['away']['teamName']} vs {self.game_data['teams']['home']['teamName']}", inline=False)
94
- embed.add_field(name="Start Time", value=format_time_difference(self.game_data['startTime']), inline=False)
95
  await user.send(embed=embed)
96
 
97
  if self.user_id not in user_bets:
@@ -120,7 +100,6 @@ class BetModal(discord.ui.Modal, title="Place Your Bet"):
120
  if game['teams'][winner]['abbreviation'] == self.team:
121
  winnings = bet_amount * 2
122
  user_cash[self.user_id] += winnings
123
- save_database()
124
  await interaction.user.send(f"WOO YOUR TEAM WON you won ${winnings}!")
125
  else:
126
  await interaction.user.send(f"Sorry, your team lost booo!")
@@ -187,27 +166,8 @@ async def currentbets(interaction: discord.Interaction):
187
  bet_index = int(cancel_select.values[0])
188
  cancelled_bet = user_bets[user_id].pop(bet_index)
189
  user_cash[user_id] += cancelled_bet['amount']
190
- save_database()
191
  await interaction.response.send_message(f"Bet cancelled. ${cancelled_bet['amount']} has been refunded.")
192
 
193
  cancel_select.callback = cancel_callback
194
 
195
- await interaction.response.send_message(embed=embed, view=view)
196
-
197
- @app_commands.command(name="cash", description="Check your cash balance")
198
- async def cash(interaction: discord.Interaction):
199
- user_id = interaction.user.id
200
- balance = user_cash.get(user_id, 0)
201
-
202
- if balance == 0:
203
- user_cash[user_id] = 1000
204
- balance = 1000
205
- message = "You have no cash. Here's $1,000 to start!"
206
- save_database()
207
- else:
208
- message = f"Your current balance is ${balance:,}"
209
-
210
- embed = discord.Embed(title="Cash Balance", description=message, color=0x787878)
211
- embed.set_footer(text="Use /sportbet to bet your cash!")
212
-
213
- await interaction.response.send_message(embed=embed)
 
2
  from discord import app_commands
3
  import aiohttp
4
  import asyncio
5
+ from datetime import datetime, timezone
6
 
7
  user_cash = {}
8
  user_bets = {}
9
 
 
 
 
 
 
10
  def load_database():
11
  global user_cash
12
  try:
 
27
  async with session.get("https://nhl-score-api.herokuapp.com/api/scores/latest") as response:
28
  return await response.json()
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  class GameSelect(discord.ui.Select):
31
  def __init__(self, games):
32
  options = [
33
  discord.SelectOption(
34
  label=f"{game['teams']['away']['teamName']} vs {game['teams']['home']['teamName']}",
35
  value=f"{game['teams']['away']['abbreviation']}_{game['teams']['home']['abbreviation']}",
36
+ description=f"Start time: {game['startTime']}"
37
  ) for game in games
38
  ]
39
  super().__init__(placeholder="Select a game", options=options)
 
61
  if bet_amount <= 0:
62
  raise ValueError("Bet more than 0 dollars")
63
  if bet_amount > user_cash.get(self.user_id, 0):
64
+ raise ValueError("poor")
65
 
66
  user_cash[self.user_id] -= bet_amount
 
67
  await interaction.response.send_message(f"Bet placed on {self.team} for ${bet_amount}")
68
 
69
  user = await interaction.client.fetch_user(self.user_id)
 
71
  embed.add_field(name="Team", value=self.team, inline=False)
72
  embed.add_field(name="Amount", value=f"${bet_amount}", inline=False)
73
  embed.add_field(name="Game", value=f"{self.game_data['teams']['away']['teamName']} vs {self.game_data['teams']['home']['teamName']}", inline=False)
74
+ embed.add_field(name="Start Time", value=self.game_data['startTime'], inline=False)
75
  await user.send(embed=embed)
76
 
77
  if self.user_id not in user_bets:
 
100
  if game['teams'][winner]['abbreviation'] == self.team:
101
  winnings = bet_amount * 2
102
  user_cash[self.user_id] += winnings
 
103
  await interaction.user.send(f"WOO YOUR TEAM WON you won ${winnings}!")
104
  else:
105
  await interaction.user.send(f"Sorry, your team lost booo!")
 
166
  bet_index = int(cancel_select.values[0])
167
  cancelled_bet = user_bets[user_id].pop(bet_index)
168
  user_cash[user_id] += cancelled_bet['amount']
 
169
  await interaction.response.send_message(f"Bet cancelled. ${cancelled_bet['amount']} has been refunded.")
170
 
171
  cancel_select.callback = cancel_callback
172
 
173
+ await interaction.response.send_message(embed=embed, view=view)