DB calls to async

This commit is contained in:
Cal Corum 2023-05-03 13:28:14 -05:00
parent 8faa5ec459
commit f5bf7df166
9 changed files with 355 additions and 331 deletions

View File

@ -90,18 +90,17 @@ def batter_grading(vs_hand, rg_data):
}
def get_or_create_card(player: dict, team: dict) -> int:
async def get_or_create_card(player: dict, team: dict) -> int:
# get player card; create one if none found
z = 0
card_id = None
while z < 2 and card_id is None:
z += 1
c_query = db_get('cards',
params=[('team_id', team['id']), ('player_id', player['player_id'])])
c_query = await db_get('cards', params=[('team_id', team['id']), ('player_id', player['player_id'])])
if c_query['count'] > 0:
card_id = c_query['cards'][0]['id']
else:
db_post(
await db_post(
'cards',
payload={'cards': [
{'player_id': player['player_id'], 'team_id': team['id'], 'pack_id': 1}
@ -115,7 +114,7 @@ def get_or_create_card(player: dict, team: dict) -> int:
# First attempt - pulls ratings guide info
def build_lineup_graded(team_object: dict, vs_hand: str, league_name: str, num_innings: int, batter_rg):
async def build_lineup_graded(team_object: dict, vs_hand: str, league_name: str, num_innings: int, batter_rg):
in_lineup = [] # player ids for quick checking
players = {
@ -132,11 +131,12 @@ def build_lineup_graded(team_object: dict, vs_hand: str, league_name: str, num_i
# Get all eligible players
try:
all_players = db_get(
p_query = await db_get(
endpoint='players',
params=[('mlbclub', team_object['lname']), ('pos_exclude', 'RP'), ('inc_dex', False)],
timeout=10
)['players']
)
all_players = p_query['players']
except ConnectionError as e:
raise ConnectionError(f'Error pulling players for the {team_object["lname"]}. Cal help plz.')
@ -212,7 +212,7 @@ def build_lineup_graded(team_object: dict, vs_hand: str, league_name: str, num_i
return batting_order
def build_lineup(team_object: dict, game_id: int, league_name: str, vs_hand: str = 'r') -> list:
async def build_lineup(team_object: dict, game_id: int, league_name: str, vs_hand: str = 'r') -> list:
players = {
'C': None,
'1B': None,
@ -244,7 +244,7 @@ def build_lineup(team_object: dict, game_id: int, league_name: str, vs_hand: str
('pos_include', 'RF'), ('pos_include', 'DH'), ('inc_dex', False), ('sort_by', 'cost-desc')
]
params.extend(set_params)
all_players = db_get(
all_players = await db_get(
endpoint='players',
params=params,
timeout=10
@ -308,7 +308,7 @@ def build_lineup(team_object: dict, game_id: int, league_name: str, vs_hand: str
i = 1
for x in [grp_1, grp_2, grp_3]:
for y in x:
card_id = get_or_create_card(y[1], team_object)
card_id = await get_or_create_card(y[1], team_object)
lineups.append({
'game_id': game_id,
@ -326,7 +326,7 @@ def build_lineup(team_object: dict, game_id: int, league_name: str, vs_hand: str
return lineups
def get_starting_pitcher(team_object: dict, game_id: int, is_home: bool, league_name: str = None) -> dict:
async def get_starting_pitcher(team_object: dict, game_id: int, is_home: bool, league_name: str = None) -> dict:
set_params = [('cardset_id_exclude', 2)]
if league_name == 'minor-league':
set_params = MINOR_CARDSET_PARAMS
@ -348,7 +348,7 @@ def get_starting_pitcher(team_object: dict, game_id: int, is_home: bool, league_
logging.info(f'counter: {counter} / params: {params}')
try:
params.extend(set_params)
pitchers = db_get(
pitchers = await db_get(
endpoint='players',
params=params,
timeout=10
@ -402,7 +402,7 @@ def get_starting_pitcher(team_object: dict, game_id: int, is_home: bool, league_
starter = pitchers['players'][0]
# get player card; create one if none found
card_id = get_or_create_card(starter, team_object)
card_id = await get_or_create_card(starter, team_object)
return {
'game_id': game_id,
@ -415,8 +415,9 @@ def get_starting_pitcher(team_object: dict, game_id: int, is_home: bool, league_
}
def get_relief_pitcher(this_play: StratPlay, ai_team: dict, used_pitchers: list, league_name: str = None) -> dict:
used_codes = [db_get('cards', object_id=x.card_id)["player"]["strat_code"] for x in used_pitchers]
async def get_relief_pitcher(this_play: StratPlay, ai_team: dict, used_pitchers: list, league_name: str = None) -> dict:
c_query = await db_get('cards', object_id=x.card_id)
used_codes = [c_query["player"]["strat_code"] for x in used_pitchers]
logging.info(f'get_rp - used_pitchers: {used_codes}')
reliever = None
@ -465,7 +466,7 @@ def get_relief_pitcher(this_play: StratPlay, ai_team: dict, used_pitchers: list,
params.append(('pos_exclude', 'SP'))
try:
pitchers = db_get(
pitchers = await db_get(
endpoint='players',
params=params,
timeout=10
@ -482,7 +483,7 @@ def get_relief_pitcher(this_play: StratPlay, ai_team: dict, used_pitchers: list,
for count, guy in enumerate(pitchers['players']):
if count >= start and guy['strat_code'] not in used_codes:
card_id = get_or_create_card(guy, ai_team)
card_id = await get_or_create_card(guy, ai_team)
return {
'game_id': this_play.game.id,

View File

@ -37,7 +37,7 @@ class Admins(commands.Cog):
async def dev_startup(self):
# Check for Paper Sluggers event
e_query = db_get('events', params=[('name', 'Paper Sluggers')])
e_query = await db_get('events', params=[('name', 'Paper Sluggers')])
if e_query is None:
this_event = db_post(
'events',
@ -55,7 +55,7 @@ class Admins(commands.Cog):
this_event = e_query['events'][0]
# Check for Game Rewards
gr_query = db_get('gamerewards', params=[('name', 'MVP Pack')])
gr_query = await db_get('gamerewards', params=[('name', 'MVP Pack')])
if gr_query['count'] == 0:
mv_pack = db_post(
'gamerewards',
@ -67,7 +67,7 @@ class Admins(commands.Cog):
else:
mv_pack = gr_query['gamerewards'][0]
gr_query = db_get('gamerewards', params=[('name', 'All-Star Pack')])
gr_query = await db_get('gamerewards', params=[('name', 'All-Star Pack')])
if gr_query['count'] == 0:
as_pack = db_post(
'gamerewards',
@ -79,9 +79,9 @@ class Admins(commands.Cog):
else:
as_pack = gr_query['gamerewards'][0]
gr_query = db_get('gamerewards', params=[('name', 'Mario Pack')])
gr_query = await db_get('gamerewards', params=[('name', 'Mario Pack')])
if gr_query['count'] == 0:
m_pack = db_post(
m_pack = await db_post(
'gamerewards',
payload={
'name': 'Mario Pack',
@ -92,9 +92,9 @@ class Admins(commands.Cog):
m_pack = gr_query['gamerewards'][0]
# Check for Gauntlet rewards
gr_query = db_get('gauntletrewards', params=[('gauntlet_id', this_event['id'])])
gr_query = await db_get('gauntletrewards', params=[('gauntlet_id', this_event['id'])])
if gr_query['count'] == 0:
db_post(
await db_post(
'gauntletrewards',
payload={
'rewards': [
@ -148,25 +148,26 @@ class Admins(commands.Cog):
await interaction.response.send_message(random_no_gif())
return
current = db_get('current')
current = await db_get('current')
await interaction.response.defer()
p_query = db_get('packtypes', params=[('name', pack_type)])
p_query = await db_get('packtypes', params=[('name', pack_type)])
response = ''
for x in team_abbrevs.split(' '):
team = db_get('teams', params=[('abbrev', x), ('season', current['season'])])['teams'][0]
t_query = await db_get('teams', params=[('abbrev', x), ('season', current['season'])])
team = t_query['teams'][0]
if team:
total_packs = give_packs(team, num_packs, pack_type=p_query['packtypes'][0])
total_packs = await give_packs(team, num_packs, pack_type=p_query['packtypes'][0])
response += f'Just gave {num_packs} {pack_type} pack{"s" if num_packs > 1 else ""} to the ' \
f'{team["sname"]}. They now have {total_packs["count"]} ' \
f'pack{"s" if total_packs["count"] > 1 else ""}.\n'
elif x.upper() == 'LEAGUE':
all_teams = db_get('teams', params=[('season', current['season'])])
all_teams = await db_get('teams', params=[('season', current['season'])])
for y in all_teams['teams']:
logging.warning(f'Giving {num_packs} pack(s) to team: {y["abbrev"]}')
give_packs(team, num_packs)
await give_packs(team, num_packs)
response = f'Just gave all {all_teams["count"]} teams {num_packs} ' \
f'standard pack{"s" if num_packs > 1 else ""}!'
@ -180,8 +181,8 @@ class Admins(commands.Cog):
@commands.hybrid_command(name='post-guide', help='Mod: Post the ratings guide to team sheet')
@commands.is_owner()
async def post_guide_command(self, ctx, gm: Member):
team = get_team_by_owner(gm.id)
db_patch('teams', object_id=team['id'], params=[('has_guide', True)])
team = await get_team_by_owner(gm.id)
await db_patch('teams', object_id=team['id'], params=[('has_guide', True)])
post_ratings_guide(team, self.bot)
@ -190,7 +191,7 @@ class Admins(commands.Cog):
@commands.hybrid_command(name='sync-sheets', help='Mod: Sync AI team sheets')
@commands.is_owner()
async def sync_sheets_command(self, ctx):
t_query = db_get('teams', params=[('is_ai', True)])
t_query = await db_get('teams', params=[('is_ai', True)])
response = await ctx.send(f'Alright, I\'m getting started...')
@ -293,7 +294,7 @@ class Admins(commands.Cog):
if line[4].value == 'CHANGE':
try:
logging.info(f'Updating {line[1].value}')
this_player = db_get('players', object_id=line[0].value)
this_player = await db_get('players', object_id=line[0].value)
logging.info(f'this_player: {this_player["p_name"]}')
new_player = copy.deepcopy(this_player)
@ -305,7 +306,7 @@ class Admins(commands.Cog):
new_player['cost'] = new_cost(this_player, rarities[line[3].value], rarities[line[2].value])
logging.info(f'new_player cost: {new_player["cost"]}')
this_player = db_patch('players', object_id=this_player['player_id'], params=[
this_player = await db_patch('players', object_id=this_player['player_id'], params=[
('cost', new_player['cost'])
])
logging.info(f'patched_player: {this_player["p_name"]} / cardset: {this_player["cardset"]["id"]}')
@ -321,7 +322,7 @@ class Admins(commands.Cog):
logging.error(e_message)
errors.append(e_message)
db_post('players', payload={'players': new_players})
await db_post('players', payload={'players': new_players})
await ctx.send(f'Updated {done} players!')
if len(errors) > 0:
e_string = "\n- ".join(errors)
@ -331,7 +332,7 @@ class Admins(commands.Cog):
@commands.is_owner()
async def test_choices_command(self, ctx):
await ctx.send(f'Wiping AI dexes...')
db_post('paperdex/wipe-ai', timeout=15)
await db_post('paperdex/wipe-ai', timeout=15)
await ctx.send(f'All done!')

View File

@ -15,7 +15,7 @@ from discord.app_commands import Choice
import datetime
import pygsheets
from db_calls import db_get, db_post, db_patch, db_delete, get_team_by_abbrev, post_to_dex
from db_calls import db_get, db_post, db_patch, db_delete, get_team_by_abbrev
from help_text import *
# date = f'{datetime.datetime.now().year}-{datetime.datetime.now().month}-{datetime.datetime.now().day}'
@ -127,7 +127,7 @@ class Economy(commands.Cog):
return
# Check for notifications
all_notifs = db_get('notifs', params=[('ack', False)])
all_notifs = await db_get('notifs', params=[('ack', False)])
if not all_notifs:
logging.debug(f'No notifications')
return
@ -162,7 +162,7 @@ class Economy(commands.Cog):
}
else:
p_list[x['field_name']]['message'] += f'\n{x["message"]}'
db_patch('notifs', object_id=x['id'], params=[('ack', True)])
await db_patch('notifs', object_id=x['id'], params=[('ack', True)])
logging.debug(f'p_list: {p_list}')
for player in p_list:
@ -240,7 +240,7 @@ class Economy(commands.Cog):
@pd_help_command.command(name='links', help='Helpful links for Paper Dynasty')
@commands.check(legal_channel)
async def help_links(self, ctx: commands.Context):
current = db_get('current')
current = await db_get('current')
embed = get_team_embed(f'Paper Dynasty Help')
embed.description = 'Resources & Links'
embed.add_field(
@ -362,13 +362,13 @@ class Economy(commands.Cog):
await ctx.send('Wait a second. You\'re not in charge here!')
return
team = get_team_by_owner(gm.id)
p_query = db_get('packtypes', params=[('name', 'Premium')])
team = await get_team_by_owner(gm.id)
p_query = await db_get('packtypes', params=[('name', 'Premium')])
if p_query['count'] == 0:
await ctx.send('Oof. I couldn\'t find a Premium Pack')
return
total_packs = give_packs(team, num_packs, pack_type=p_query['packtypes'][0])
total_packs = await give_packs(team, num_packs, pack_type=p_query['packtypes'][0])
await ctx.send(f'The {team["lname"]} now have {total_packs["count"]} total packs!')
@donation.command(name='standard', help='Mod: Give standard packs', aliases=['s', 'sta'])
@ -377,25 +377,25 @@ class Economy(commands.Cog):
await ctx.send('Wait a second. You\'re not in charge here!')
return
team = get_team_by_owner(gm.id)
p_query = db_get('packtypes', params=[('name', 'Standard')])
team = await get_team_by_owner(gm.id)
p_query = await db_get('packtypes', params=[('name', 'Standard')])
if p_query['count'] == 0:
await ctx.send('Oof. I couldn\'t find a Standard Pack')
return
total_packs = give_packs(team, num_packs, pack_type=p_query['packtypes'][0])
total_packs = await give_packs(team, num_packs, pack_type=p_query['packtypes'][0])
await ctx.send(f'The {team["lname"]} now have {total_packs["count"]} total packs!')
@commands.hybrid_command(name='lastpack', help='Replay your last pack')
@commands.check(legal_channel)
@commands.has_any_role(PD_PLAYERS_ROLE_NAME)
async def last_pack_command(self, ctx: commands.Context):
team = get_team_by_owner(ctx.author.id)
team = await get_team_by_owner(ctx.author.id)
if not team:
await ctx.send(f'I don\'t see a team for you, yet. You can sign up with the `/newteam` command!')
return
p_query = db_get(
p_query = await db_get(
'packs',
params=[('opened', True), ('team_id', team['id']), ('new_to_old', True), ('limit', 1)]
)
@ -411,7 +411,7 @@ class Economy(commands.Cog):
else:
pack_cover = None
c_query = db_get(
c_query = await db_get(
'cards',
params=[('pack_id', p_query['packs'][0]['id'])]
)
@ -425,7 +425,7 @@ class Economy(commands.Cog):
@commands.has_any_role(PD_PLAYERS)
@commands.check(legal_channel)
async def daily_checkin(self, ctx: commands.Context):
team = get_team_by_owner(ctx.author.id)
team = await get_team_by_owner(ctx.author.id)
if not team:
await ctx.send(
f'I don\'t see a team for you, yet. You can sign up with the `/newteam` command!',
@ -433,10 +433,10 @@ class Economy(commands.Cog):
)
return
current = db_get('current')
current = await db_get('current')
now = datetime.datetime.now()
midnight = int_timestamp(datetime.datetime(now.year, now.month, now.day, 0, 0, 0))
daily = db_get('rewards', params=[
daily = await db_get('rewards', params=[
('name', 'Daily Check-in'), ('team_id', team['id']), ('created_after', midnight)
])
logging.debug(f'midnight: {midnight} / now: {int_timestamp(now)}')
@ -449,12 +449,13 @@ class Economy(commands.Cog):
)
return
db_post('rewards', payload={
await db_post('rewards', payload={
'name': 'Daily Check-in', 'team_id': team['id'], 'season': current['season'], 'week': current['week'],
'created': int_timestamp(now)
})
check_ins = db_get('rewards', params=[
('name', 'Daily Check-in'), ('team_id', team['id']), ('season', db_get('current')['season'])
current = await db_get('current')
check_ins = await db_get('rewards', params=[
('name', 'Daily Check-in'), ('team_id', team['id']), ('season', current['season'])
])
check_count = check_ins['count'] % 5
@ -466,7 +467,7 @@ class Economy(commands.Cog):
greeting = await ctx.send(f'Hey, you just earned a Standard pack of cards!')
pack_channel = get_channel(ctx, 'pack-openings')
p_query = db_get('packtypes', params=[('name', 'Standard')])
p_query = await db_get('packtypes', params=[('name', 'Standard')])
if not p_query:
await ctx.send(f'I was not able to pull this pack for you. Maybe ping {get_cal_user(ctx).mention}?')
return
@ -476,13 +477,13 @@ class Economy(commands.Cog):
greeting = await ctx.send(f'Hey, you just earned a player card!')
pack_channel = ctx.channel
p_query = db_get('packtypes', params=[('name', 'Check-In Player')])
p_query = await db_get('packtypes', params=[('name', 'Check-In Player')])
if not p_query:
await ctx.send(f'I was not able to pull this card for you. Maybe ping {get_cal_user(ctx).mention}?')
return
give_packs(team, 1, p_query['packtypes'][0])
p_query = db_get(
await give_packs(team, 1, p_query['packtypes'][0])
p_query = await db_get(
'packs',
params=[('opened', False), ('team_id', team['id']), ('new_to_old', True), ('limit', 1)]
)
@ -499,7 +500,7 @@ class Economy(commands.Cog):
all_cards = []
for p_id in pack_ids:
new_cards = db_get('cards', params=[('pack_id', p_id)])
new_cards = await db_get('cards', params=[('pack_id', p_id)])
all_cards.extend(new_cards['cards'])
if not all_cards:
@ -526,7 +527,7 @@ class Economy(commands.Cog):
else:
m_reward = 25
team = db_post(f'teams/{team["id"]}/money/{m_reward}')
team = await db_post(f'teams/{team["id"]}/money/{m_reward}')
await ctx.send(f'You just earned {m_reward}₼! That brings your wallet to {team["wallet"]}₼!')
@app_commands.command(name='open-packs', description='Open packs from your inventory')
@ -539,14 +540,14 @@ class Economy(commands.Cog):
)
return
owner_team = get_team_by_owner(interaction.user.id)
owner_team = await get_team_by_owner(interaction.user.id)
if not owner_team:
await interaction.response.send_message(
f'I don\'t see a team for you, yet. You can sign up with the `/newteam` command!'
)
return
p_query = db_get('packs', params=[
p_query = await db_get('packs', params=[
('team_id', owner_team['id']), ('opened', False)
])
if p_query['count'] == 0:
@ -640,7 +641,7 @@ class Economy(commands.Cog):
)
return
owner_team = get_team_by_owner(interaction.user.id)
owner_team = await get_team_by_owner(interaction.user.id)
if not owner_team:
await interaction.response.send_message(
f'I don\'t see a team for you, yet. You can sign up with the `/newteam` command!'
@ -654,10 +655,10 @@ class Economy(commands.Cog):
all_params = [('name', proper_name)]
if player_cardset:
this_cardset = cardset_search(player_cardset, player_cog.cardset_list)
this_cardset = await cardset_search(player_cardset, player_cog.cardset_list)
all_params.append(('cardset_id', this_cardset['id']))
p_query = db_get('players', params=all_params)
p_query = await db_get('players', params=all_params)
if p_query['count'] == 0:
await interaction.response.send_message(
@ -674,7 +675,7 @@ class Economy(commands.Cog):
this_player = p_query['players'][0]
logging.debug(f'this_player: {this_player}')
c_query = db_get('cards',
c_query = await db_get('cards',
params=[('player_id', this_player['player_id']), ('team_id', owner_team["id"])])
num_copies = c_query['count'] if c_query else 0
@ -720,7 +721,7 @@ class Economy(commands.Cog):
)
return
purchase = db_get(
purchase = await db_get(
f'teams/{owner_team["id"]}/buy/players',
params=[('ts', team_hash(owner_team)), ('ids', f'{this_player["player_id"]}')],
timeout=10
@ -749,14 +750,14 @@ class Economy(commands.Cog):
ephemeral=True
)
return
owner_team = get_team_by_owner(interaction.user.id)
owner_team = await get_team_by_owner(interaction.user.id)
if not owner_team:
await interaction.response.send_message(
f'I don\'t see a team for you, yet. You can sign up with the `/newteam` command!'
)
if not pack_name:
p_query = db_get('packtypes', params=[('available', True)])
p_query = await db_get('packtypes', params=[('available', True)])
if 'count' not in p_query:
await interaction.response.send_message(
f'Welp, I couldn\'t find any packs in my database. Should probably go ping '
@ -775,7 +776,7 @@ class Economy(commands.Cog):
)
return
p_query = db_get('packtypes', params=[('name', pack_name.lower().replace('pack', '')), ('available', True)])
p_query = await db_get('packtypes', params=[('name', pack_name.lower().replace('pack', '')), ('available', True)])
if 'count' not in p_query:
await interaction.response.send_message(
f'Hmm...I don\'t recognize {pack_name.title()} as a pack type. Check on that and get back to me.',
@ -854,7 +855,7 @@ class Economy(commands.Cog):
if question is None:
return
purchase = db_get(
purchase = await db_get(
f'teams/{owner_team["id"]}/buy/pack/{pack_type["id"]}',
params=[('ts', team_hash(owner_team)), ('quantity', num_packs)]
)
@ -876,7 +877,7 @@ class Economy(commands.Cog):
@commands.check(legal_channel)
@app_commands.describe(immediately='Skip all prompts and sell dupes immediately; default False')
async def sell_dupes_command(self, interaction: discord.Interaction, immediately: bool = False):
team = get_team_by_owner(interaction.user.id)
team = await get_team_by_owner(interaction.user.id)
if not team:
await interaction.response.send_message(
f'I don\'t see a team for you, yet. You can sign up with the `/newteam` command!',
@ -889,7 +890,7 @@ class Economy(commands.Cog):
)
try:
c_query = db_get('cards', params=[('team_id', team['id']), ('dupes', True)], timeout=15)
c_query = await db_get('cards', params=[('team_id', team['id']), ('dupes', True)], timeout=15)
except Exception as e:
await interaction.edit_original_response(
content=f'{e}\n\nSounds like a {get_cal_user(interaction).mention} problem tbh'
@ -935,7 +936,7 @@ class Economy(commands.Cog):
await question.edit(content=f'The sale is going through...', view=None)
# for card in dupe_cards:
sale = db_get(
sale = await db_get(
f'teams/{team["id"]}/sell/cards',
params=[('ts', team_hash(team)), ('ids', dupe_ids)],
timeout=10
@ -947,7 +948,7 @@ class Economy(commands.Cog):
return
await refresh_sheet(team, self.bot)
team = db_get('teams', object_id=team['id'])
team = await db_get('teams', object_id=team['id'])
await interaction.channel.send(f'Your Wallet: {team["wallet"]}')
@app_commands.command(name='newteam', description='Get your fresh team for a new season')
@ -964,8 +965,8 @@ class Economy(commands.Cog):
async def new_team_slash(
self, interaction: discord.Interaction, gm_name: str, team_abbrev: str, team_full_name: str,
team_short_name: str, mlb_anchor_team: str, team_logo_url: str = None, color: str = None):
owner_team = get_team_by_owner(interaction.user.id)
current = db_get('current')
owner_team = await get_team_by_owner(interaction.user.id)
current = await db_get('current')
# Check for existing team
if owner_team and not os.environ.get('TESTING'):
@ -975,7 +976,7 @@ class Economy(commands.Cog):
return
# Check for duplicate team data
dupes = db_get('teams', params=[('abbrev', team_abbrev)])
dupes = await db_get('teams', params=[('abbrev', team_abbrev)])
if dupes['count']:
await interaction.response.send_message(
f'Yikes! {team_abbrev.upper()} is a popular abbreviation - it\'s already in use by the '
@ -985,7 +986,7 @@ class Economy(commands.Cog):
return
# Check for duplicate team data
dupes = db_get('teams', params=[('lname', team_full_name)])
dupes = await db_get('teams', params=[('lname', team_full_name)])
if dupes['count']:
await interaction.response.send_message(
f'Yikes! {team_full_name.title()} is a popular name - it\'s already in use by '
@ -1100,7 +1101,7 @@ class Economy(commands.Cog):
if not match:
await op_ch.send(f'Got it!')
team = db_post('teams', payload={
team = await db_post('teams', payload={
'abbrev': team_abbrev.upper(),
'sname': team_short_name,
'lname': team_full_name,
@ -1121,14 +1122,14 @@ class Economy(commands.Cog):
await interaction.user.add_roles(t_role)
anchor_players = []
anchor_all_stars = db_get(
anchor_all_stars = await db_get(
'players/random',
params=[
('min_rarity', 3), ('max_rarity', 3), ('franchise', team_choice), ('pos_exclude', 'RP'), ('limit', 1),
('in_packs', True)
]
)
anchor_starters = db_get(
anchor_starters = await db_get(
'players/random',
params=[
('min_rarity', 2), ('max_rarity', 2), ('franchise', team_choice), ('pos_exclude', 'RP'), ('limit', 2),
@ -1140,21 +1141,21 @@ class Economy(commands.Cog):
f'provide as your anchor player. Let\'s start this process over - will you please '
f'run the `/newteam` command again with a new MLB club?\nHint: you can copy and paste the '
'command from last time and make edits.')
db_delete('teams', object_id=team['id'])
await db_delete('teams', object_id=team['id'])
return
if not anchor_starters or anchor_starters['count'] <= 1:
await op_ch.send(f'I am so sorry, but the {team_choice} do not have two Starters to '
f'provide as your anchor players. Let\'s start this process over - will you please '
f'run the `/newteam` command again with a new MLB club?\nHint: you can copy and paste the '
'command from last time and make edits.')
db_delete('teams', object_id=team['id'])
await db_delete('teams', object_id=team['id'])
return
anchor_players.append(anchor_all_stars['players'][0])
anchor_players.append(anchor_starters['players'][0])
anchor_players.append(anchor_starters['players'][1])
this_pack = db_post('packs/one',
this_pack = await db_post('packs/one',
payload={'team_id': team['id'], 'pack_type_id': 2,
'open_time': datetime.datetime.timestamp(datetime.datetime.now())*1000})
@ -1186,17 +1187,17 @@ class Economy(commands.Cog):
# Add anchor position coverage
update_roster_counts(anchor_players)
db_post('cards', payload={'cards': [
await db_post('cards', payload={'cards': [
{'player_id': x['player_id'], 'team_id': team['id'], 'pack_id': this_pack['id']} for x in anchor_players]
}, timeout=10)
# Get 10 pitchers to seed team
five_sps = db_get('players/random', params=[('pos_include', 'SP'), ('max_rarity', 1), ('limit', 5)])
five_rps = db_get('players/random', params=[('pos_include', 'RP'), ('max_rarity', 1), ('limit', 5)])
five_sps = await db_get('players/random', params=[('pos_include', 'SP'), ('max_rarity', 1), ('limit', 5)])
five_rps = await db_get('players/random', params=[('pos_include', 'RP'), ('max_rarity', 1), ('limit', 5)])
team_sp = [x for x in five_sps['players']]
team_rp = [x for x in five_rps['players']]
update_roster_counts([*team_sp, *team_rp])
db_post('cards', payload={'cards': [
await db_post('cards', payload={'cards': [
{'player_id': x['player_id'], 'team_id': team['id'], 'pack_id': this_pack['id']} for x in [*team_sp, *team_rp]]
}, timeout=10)
@ -1208,13 +1209,13 @@ class Economy(commands.Cog):
if roster_counts['Replacement'] < roster_counts['Reserve']:
max_rar = 0
r_draw = db_get(
r_draw = await db_get(
'players/random', params=[('pos_include', pos), ('max_rarity', max_rar), ('limit', 2)], none_okay=False
)
team_infielders.extend(r_draw['players'])
update_roster_counts(team_infielders)
db_post('cards', payload={'cards': [
await db_post('cards', payload={'cards': [
{'player_id': x['player_id'], 'team_id': team['id'], 'pack_id': this_pack['id']} for x in team_infielders]
}, timeout=10)
@ -1225,13 +1226,13 @@ class Economy(commands.Cog):
if roster_counts['Replacement'] < roster_counts['Reserve']:
max_rar = 0
r_draw = db_get(
r_draw = await db_get(
'players/random', params=[('pos_include', pos), ('max_rarity', max_rar), ('limit', 2)], none_okay=False
)
team_outfielders.extend(r_draw['players'])
update_roster_counts(team_outfielders)
db_post('cards', payload={'cards': [
await db_post('cards', payload={'cards': [
{'player_id': x['player_id'], 'team_id': team['id'], 'pack_id': this_pack['id']} for x in team_outfielders]
}, timeout=10)
@ -1291,7 +1292,7 @@ class Economy(commands.Cog):
if not done_out:
await op_ch.send(error_text)
give_packs(team, 1)
await give_packs(team, 1)
await op_ch.send(
f'To get you started, I\'ve spotted you 100₼ and a pack of cards. You can rip that with the '
f'`/open` command once your google sheet is set up!'
@ -1303,7 +1304,7 @@ class Economy(commands.Cog):
f'{get_roster_sheet({"gsheet": current["gsheet_template"]}, allow_embed=True)}'
)
new_team_embed = team_summary_embed(team, interaction, include_roster=False)
new_team_embed = await team_summary_embed(team, interaction, include_roster=False)
await send_to_channel(
self.bot, "pd-network-news", content='A new challenger approaches...', embed=new_team_embed
)
@ -1314,7 +1315,7 @@ class Economy(commands.Cog):
self, ctx: commands.Context, abbrev: str, sname: str, lname: str, gmid: int, gmname: str, gsheet: str,
logo: str, color: str, ranking: int):
# Check for duplicate team data
dupes = db_get('teams', params=[('abbrev', abbrev)])
dupes = await db_get('teams', params=[('abbrev', abbrev)])
if dupes['count']:
await ctx.send(
f'Yikes! {abbrev.upper()} is a popular abbreviation - it\'s already in use by the '
@ -1324,7 +1325,7 @@ class Economy(commands.Cog):
return
# Check for duplicate team data
dupes = db_get('teams', params=[('lname', lname)])
dupes = await db_get('teams', params=[('lname', lname)])
if dupes['count']:
await ctx.send(
f'Yikes! {lname.title()} is a popular name - it\'s already in use by '
@ -1333,9 +1334,9 @@ class Economy(commands.Cog):
)
return
current = db_get('current')
current = await db_get('current')
team = db_post('teams', payload={
team = await db_post('teams', payload={
'abbrev': abbrev.upper(),
'sname': sname,
'lname': lname,
@ -1350,16 +1351,16 @@ class Economy(commands.Cog):
'is_ai': True
})
p_query = db_get('players', params=[('franchise', lname)])
p_query = await db_get('players', params=[('franchise', lname)])
this_pack = db_post(
this_pack = await db_post(
'packs/one',
payload={'team_id': team['id'], 'pack_type_id': 2,
'open_time': datetime.datetime.timestamp(datetime.datetime.now())*1000}
)
team_players = p_query['players'] + p_query['players']
db_post('cards', payload={'cards': [
await db_post('cards', payload={'cards': [
{'player_id': x['player_id'], 'team_id': team['id'], 'pack_id': this_pack['id']} for x in team_players]
}, timeout=10)
@ -1369,7 +1370,7 @@ class Economy(commands.Cog):
@commands.hybrid_command(name='mlb-update', help='Distribute MLB cards to AI teams')
@commands.is_owner()
async def mlb_update_command(self, ctx: commands.Context):
ai_teams = db_get('teams', params=[('is_ai', True)])
ai_teams = await db_get('teams', params=[('is_ai', True)])
if ai_teams['count'] == 0:
await ctx.send(f'I could not find any AI teams.')
return
@ -1377,7 +1378,7 @@ class Economy(commands.Cog):
total_cards = 0
total_teams = 0
for team in ai_teams['teams']:
all_players = db_get('players', params=[('franchise', team['lname'])])
all_players = await db_get('players', params=[('franchise', team['lname'])])
new_players = []
if all_players:
@ -1391,12 +1392,12 @@ class Economy(commands.Cog):
await ctx.send(f'Posting {len(new_players)} new cards for {team["gmname"]}\'s {team["sname"]}...')
total_cards += len(new_players)
total_teams += 1
this_pack = db_post(
this_pack = await db_post(
'packs/one',
payload={'team_id': team['id'], 'pack_type_id': 2,
'open_time': datetime.datetime.timestamp(datetime.datetime.now()) * 1000}
)
db_post('cards', payload={'cards': [
await db_post('cards', payload={'cards': [
{'player_id': x['player_id'], 'team_id': team['id'], 'pack_id': this_pack['id']} for x in
new_players
]}, timeout=10)
@ -1408,7 +1409,7 @@ class Economy(commands.Cog):
@commands.has_any_role(PD_PLAYERS)
async def share_sheet_command(
self, ctx, google_sheet_url: str, team_abbrev: Optional[str], copy_rosters: Optional[bool] = True):
owner_team = get_team_by_owner(ctx.author.id)
owner_team = await get_team_by_owner(ctx.author.id)
if not owner_team:
await ctx.send(f'I don\'t see a team for you, yet. You can sign up with the `/newteam` command!')
return
@ -1419,14 +1420,14 @@ class Economy(commands.Cog):
await ctx.send(f'You can only update the team sheet for your own team, you goober.')
return
else:
team = get_team_by_abbrev(team_abbrev)
team = await get_team_by_abbrev(team_abbrev)
current = db_get('current')
current = await db_get('current')
if current['gsheet_template'] in google_sheet_url:
await ctx.send(f'Ope, looks like that is the template sheet. Would you please make a copy and then share?')
return
gauntlet_team = get_team_by_abbrev(f'Gauntlet-{owner_team["abbrev"]}')
gauntlet_team = await get_team_by_abbrev(f'Gauntlet-{owner_team["abbrev"]}')
if gauntlet_team:
view = ButtonOptions([ctx.author], timeout=30, labels=['Main Team', 'Gauntlet Team', None, None, None])
question = await ctx.send(f'Is this sheet for your main PD team or your active Gauntlet team?', view=view)
@ -1447,7 +1448,7 @@ class Economy(commands.Cog):
new_sheet = sheets.open_by_url(google_sheet_url)
except Exception as e:
logging.error(f'Error accessing {team["abbrev"]} sheet: {e}')
current = db_get('current')
current = await db_get('current')
await ctx.send(f'I wasn\'t able to access that sheet. Did you remember to share it with my PD email?'
f'\n\nHere\'s a quick refresher:\n{SHEET_SHARE_STEPS}\n\n'
f'{get_roster_sheet({"gsheet": current["gsheet_template"]}, allow_embed=True)}')
@ -1500,7 +1501,7 @@ class Economy(commands.Cog):
if team['has_guide']:
post_ratings_guide(team, self.bot, this_sheet=new_sheet)
team = db_patch('teams', object_id=team['id'], params=[('gsheet', new_sheet.id)])
team = await db_patch('teams', object_id=team['id'], params=[('gsheet', new_sheet.id)])
await refresh_sheet(team, self.bot, sheets)
conf_message = f'Alright, your sheet is linked to your team - good luck'
@ -1518,7 +1519,7 @@ class Economy(commands.Cog):
# await ctx.send(f'Slide on down to the {get_channel(ctx, "pd-bot-hole").mention} ;)')
# return
#
# team = get_team_by_owner(ctx.author.id)
# team = await get_team_by_owner(ctx.author.id)
# if not team:
# await ctx.send(
# f'I don\'t see a team for you, yet. You can sign up with the `/newteam` command!'
@ -1575,13 +1576,13 @@ class Economy(commands.Cog):
question = await ctx.send(f'I\'ll go put that card on their roster...')
all_player_ids = player_ids.split(" ")
t_query = db_get('teams', params=[('abbrev', team_abbrev)])
t_query = await db_get('teams', params=[('abbrev', team_abbrev)])
if not t_query['count']:
await ctx.send(f'I could not find {team_abbrev}')
return
team = t_query['teams'][0]
this_pack = db_post(
this_pack = await db_post(
'packs/one',
payload={
'team_id': team['id'],
@ -1590,7 +1591,7 @@ class Economy(commands.Cog):
)
try:
give_cards_to_team(team, player_ids=all_player_ids, pack_id=this_pack['id'])
await give_cards_to_team(team, player_ids=all_player_ids, pack_id=this_pack['id'])
except Exception as e:
logging.error(f'failed to create cards: {e}')
raise ConnectionError(f'Failed to distribute these cards.')
@ -1607,9 +1608,9 @@ class Economy(commands.Cog):
@commands.command(name='cleartest', hidden=True)
@commands.is_owner()
async def clear_test_command(self, ctx):
team = get_team_by_owner(ctx.author.id)
team = await get_team_by_owner(ctx.author.id)
msg = await ctx.send('Alright, let\'s go find your cards...')
all_cards = db_get(
all_cards = await db_get(
'cards',
params=[('team_id', team['id'])]
)
@ -1617,22 +1618,22 @@ class Economy(commands.Cog):
if all_cards:
await msg.edit(content=f'I found {len(all_cards["cards"])} cards; deleting now...')
for x in all_cards['cards']:
db_delete(
await db_delete(
'cards',
object_id=x['id']
)
await msg.edit(content=f'All done with cards. Now I\'ll wipe out your packs...')
p_query = db_get('packs', params=[('team_id', team['id'])])
p_query = await db_get('packs', params=[('team_id', team['id'])])
if p_query['count']:
for x in p_query['packs']:
db_delete('packs', object_id=x['id'])
await db_delete('packs', object_id=x['id'])
await msg.edit(content=f'All done with packs. Now I\'ll wipe out your paperdex...')
p_query = db_get('paperdex', params=[('team_id', team['id'])])
p_query = await db_get('paperdex', params=[('team_id', team['id'])])
if p_query['count']:
for x in p_query['paperdex']:
db_delete('paperdex', object_id=x['id'])
await db_delete('paperdex', object_id=x['id'])
await msg.edit(content=f'All done with paperdex. Now I\'ll wipe out your team...')
if db_delete('teams', object_id=team['id']):
@ -1641,7 +1642,7 @@ class Economy(commands.Cog):
@commands.command(name='packtest', hidden=True)
@commands.is_owner()
async def pack_test_command(self, ctx):
team = get_team_by_owner(ctx.author.id)
team = await get_team_by_owner(ctx.author.id)
await display_cards(
await get_test_pack(ctx, team), team, ctx.channel, ctx.author, self.bot,

View File

@ -97,7 +97,7 @@ class Gameplay(commands.Cog):
f'Skipping Game {game_id} in scoreboard: {e}'
)
current = db_get('current')
current = await db_get('current')
try:
s_channel = self.bot.get_channel(int(os.environ.get('SCOREBOARD_CHANNEL')))
@ -109,7 +109,7 @@ class Gameplay(commands.Cog):
content=None,
embed=embed
)
db_patch('current', object_id=current['id'], params=[('live_scoreboard', s_message.id)])
await db_patch('current', object_id=current['id'], params=[('live_scoreboard', s_message.id)])
else:
s_message = await s_channel.fetch_message(message_id)
@ -170,9 +170,9 @@ class Gameplay(commands.Cog):
return game_string
async def post_rewards(self, winning_team: dict, losing_team: dict, this_game: StratGame):
wr_query = db_get(
wr_query = await db_get(
'gamerewards', params=[('name', f'{"Short" if this_game.short_game else "Full"} Game Win')])
lr_query = db_get(
lr_query = await db_get(
'gamerewards', params=[('name', f'{"Short" if this_game.short_game else "Full"} Game Loss')])
if not wr_query['count'] or not lr_query['count']:
raise KeyError(f'Game Rewards were not found. Leaving this game active.')
@ -187,7 +187,7 @@ class Gameplay(commands.Cog):
# Post Team Choice packs
if this_game.ai_team is not None and not this_game.short_game and 'gauntlet' not in this_game.game_type and \
losing_team['is_ai']:
r_query = db_get(
r_query = await db_get(
'results',
params=[
('team_one_id', winning_team['id']), ('team_two_id', losing_team['id']),
@ -200,8 +200,8 @@ class Gameplay(commands.Cog):
x['home_score'] > x['away_score'] and x['home_team']['id'] == human_team['id']):
wins += 1
def post_tc_pack():
db_post(
async def post_tc_pack():
await db_post(
'packs/one',
payload={
'team_id': human_team['id'],
@ -212,13 +212,13 @@ class Gameplay(commands.Cog):
if r_query['count'] > 0:
if this_game.game_type == 'minor-league' and wins % 6 == 0:
post_tc_pack()
await post_tc_pack()
win_string += f'1x {losing_team["abbrev"]} Team Choice pack\n'
elif this_game.game_type == 'major-league' and wins % 4 == 0:
post_tc_pack()
await post_tc_pack()
win_string += f'1x {losing_team["abbrev"]} Team Choice pack\n'
elif this_game.game_type == 'hall-of-fame' and wins % 2 == 0:
post_tc_pack()
await post_tc_pack()
win_string += f'1x {losing_team["abbrev"]} Team Choice pack\n'
win_string += f'{win_reward["money"]}\n'
@ -227,13 +227,15 @@ class Gameplay(commands.Cog):
# Post rewards
if 'gauntlet' in this_game.game_type:
if 'Gauntlet' in winning_team['abbrev']:
winning_team = db_get('teams', params=[('abbrev', winning_team['abbrev'].split('-')[1])])['teams'][0]
t_query = await db_get('teams', params=[('abbrev', winning_team['abbrev'].split('-')[1])])
winning_team = t_query['teams'][0]
if 'Gauntlet' in losing_team['abbrev']:
losing_team = db_get('teams', params=[('abbrev', losing_team['abbrev'].split('-')[1])])['teams'][0]
t_query = await db_get('teams', params=[('abbrev', losing_team['abbrev'].split('-')[1])])
losing_team = t_query['teams'][0]
give_packs(winning_team, num_packs=1, pack_type=win_reward['pack_type'])
db_post(f'teams/{winning_team["id"]}/money/{win_reward["money"]}')
db_post(f'teams/{losing_team["id"]}/money/{loss_reward["money"]}')
await give_packs(winning_team, num_packs=1, pack_type=win_reward['pack_type'])
await db_post(f'teams/{winning_team["id"]}/money/{win_reward["money"]}')
await db_post(f'teams/{losing_team["id"]}/money/{loss_reward["money"]}')
data = {
'win_string': win_string,
@ -902,7 +904,7 @@ class Gameplay(commands.Cog):
# @commands.command(name='tl')
# @commands.is_owner()
# async def test_lineup_command(self, ctx, team_abbrev: str):
# t_query = db_get('teams', params=[('abbrev', team_abbrev)])
# t_query = await db_get('teams', params=[('abbrev', team_abbrev)])
# if t_query['count'] > 0:
# team = t_query['teams'][0]
# await ctx.send(f'Pulling a lineup for the {team["lname"]}...')
@ -919,7 +921,7 @@ class Gameplay(commands.Cog):
# async def test_reliever_command(self, ctx, game_id: int):
# this_game = get_one_game(game_id=game_id)
# ai_id = this_game.away_team_id if this_game.ai_team == 'away' else this_game.home_team_id
# ai_team = db_get('teams', object_id=ai_id)
# ai_team = await db_get('teams', object_id=ai_id)
# used_pitchers = await get_team_lineups(
# game_id=game_id, team_id=ai_team['id'], inc_inactive=True, pitchers_only=True, as_string=False
# )
@ -999,8 +1001,8 @@ class Gameplay(commands.Cog):
except Exception as e:
logging.error(f'Could not check channel category: {e}')
away_team = get_team_by_abbrev(away_team_abbrev)
home_team = get_team_by_abbrev(home_team_abbrev)
away_team = await get_team_by_abbrev(away_team_abbrev)
home_team = await get_team_by_abbrev(home_team_abbrev)
if not away_team:
await interaction.edit_original_response(
@ -1031,7 +1033,7 @@ class Gameplay(commands.Cog):
)
return
current = db_get('current')
current = await db_get('current')
week_num = current['week']
# logging.debug(f'away: {away_team} / home: {home_team} / week: {week_num} / ranked: {is_ranked}')
logging.debug(f'away: {away_team} / home: {home_team} / week: {week_num}')
@ -1101,7 +1103,7 @@ class Gameplay(commands.Cog):
)
logging.info(f'new-game - calling lineup for {ai_team["abbrev"]}')
all_lineups = ai_manager.build_lineup(ai_team, this_game.id, league_name)
all_lineups = await ai_manager.build_lineup(ai_team, this_game.id, league_name)
logging.info(f'new-game - got lineup for {ai_team["abbrev"]}')
except Exception as e:
@ -1125,7 +1127,7 @@ class Gameplay(commands.Cog):
patch_game(this_game.id, home_roster_num=69, ai_team='home')
# starter = starting_pitcher(ai_team, self.bot, True if home_team['is_ai'] else False)
starter = ai_manager.get_starting_pitcher(
starter = await ai_manager.get_starting_pitcher(
ai_team,
this_game.id,
True if home_team['is_ai'] else False,
@ -1133,7 +1135,7 @@ class Gameplay(commands.Cog):
)
all_lineups.append(starter)
this_card = db_get(f'cards', object_id=starter['card_id'])
this_card = await db_get(f'cards', object_id=starter['card_id'])
await interaction.channel.send(
content=f'The {ai_team["sname"]} are starting **{this_card["player"]["description"]}**:\n\n'
f'{this_card["player"]["image"]}'
@ -1183,8 +1185,8 @@ class Gameplay(commands.Cog):
except Exception as e:
logging.error(f'Could not check channel category: {e}')
away_team = get_team_by_abbrev(away_team_abbrev)
home_team = get_team_by_abbrev(home_team_abbrev)
away_team = await get_team_by_abbrev(away_team_abbrev)
home_team = await get_team_by_abbrev(home_team_abbrev)
if not away_team:
await interaction.edit_original_response(
@ -1215,7 +1217,7 @@ class Gameplay(commands.Cog):
)
return
current = db_get('current')
current = await db_get('current')
week_num = current['week']
logging.debug(f'away: {away_team} / home: {home_team} / week: {week_num} / ranked: True')
@ -1274,8 +1276,8 @@ class Gameplay(commands.Cog):
except Exception as e:
logging.error(f'Could not check channel category: {e}')
away_team = get_team_by_abbrev(away_team_abbrev)
home_team = get_team_by_abbrev(home_team_abbrev)
away_team = await get_team_by_abbrev(away_team_abbrev)
home_team = await get_team_by_abbrev(home_team_abbrev)
if not away_team:
await interaction.edit_original_response(
@ -1306,7 +1308,7 @@ class Gameplay(commands.Cog):
)
return
current = db_get('current')
current = await db_get('current')
week_num = current['week']
logging.debug(f'away: {away_team} / home: {home_team} / week: {week_num} / ranked: True')
@ -1363,10 +1365,10 @@ class Gameplay(commands.Cog):
except Exception as e:
logging.error(f'Could not check channel category: {e}')
current = db_get('current')
current = await db_get('current')
week_num = current['week']
e_query = db_get('events', params=[("name", event_name), ("active", True)])
e_query = await db_get('events', params=[("name", event_name), ("active", True)])
if e_query['count'] == 0:
await interaction.edit_original_response(
content=f'It looks like the {event_name} has ended! Cal should really remove it from this list.'
@ -1374,8 +1376,8 @@ class Gameplay(commands.Cog):
return
this_event = e_query['events'][0]
main_team = get_team_by_owner(interaction.user.id)
team = get_team_by_abbrev(f'Gauntlet-{main_team["abbrev"]}')
main_team = await get_team_by_owner(interaction.user.id)
team = await get_team_by_abbrev(f'Gauntlet-{main_team["abbrev"]}')
if not main_team:
await interaction.edit_original_response(
content=f'I don\'t see a team for you, yet. You can sign up with the `/newteam` command!'
@ -1396,7 +1398,7 @@ class Gameplay(commands.Cog):
return
# Get Gauntlet run
r_query = db_get(
r_query = await db_get(
'gauntletruns',
params=[('team_id', team['id']), ('gauntlet_id', this_event['id']), ('is_active', True)]
)
@ -1412,7 +1414,7 @@ class Gameplay(commands.Cog):
# If not new or after draft, create new AI game
is_home = gauntlets.is_home_team(team, this_event, this_run)
opponent = gauntlets.get_opponent(team, this_event, this_run)
opponent = await gauntlets.get_opponent(team, this_event, this_run)
if opponent is None:
await interaction.edit_original_response(
content=f'Yike. I\'m not sure who your next opponent is. {get_cal_user(interaction)} help plz!'
@ -1444,7 +1446,7 @@ class Gameplay(commands.Cog):
)
logging.info(f'new-game - calling lineup for {opponent["abbrev"]}')
all_lineups = gauntlets.build_lineup(opponent, this_game, this_event)
all_lineups = await gauntlets.build_lineup(opponent, this_game, this_event)
logging.info(f'new-game-gauntlet - got lineup for {opponent["abbrev"]}')
except Exception as e:
@ -1467,10 +1469,10 @@ class Gameplay(commands.Cog):
else:
patch_game(this_game.id, home_roster_num=69, ai_team='home')
starter = gauntlets.get_starting_pitcher(opponent, this_game, this_event, this_run)
starter = await gauntlets.get_starting_pitcher(opponent, this_game, this_event, this_run)
all_lineups.append(starter)
this_card = db_get(f'cards', object_id=starter['card_id'])
this_card = await db_get(f'cards', object_id=starter['card_id'])
await interaction.channel.send(
content=f'The {opponent["sname"]} are starting **{this_card["player"]["description"]}**:\n\n'
f'{this_card["player"]["image"]}'
@ -1565,8 +1567,8 @@ class Gameplay(commands.Cog):
await question.edit(content='It stays.', view=None)
return
away_team = db_get('teams', object_id=this_game.away_team_id)
home_team = db_get('teams', object_id=this_game.home_team_id)
away_team = await db_get('teams', object_id=this_game.away_team_id)
home_team = await db_get('teams', object_id=this_game.home_team_id)
away_stats = {
# 'p_lines': get_pitching_stats(this_game.id, team_id=away_team['id']),
@ -1673,7 +1675,7 @@ class Gameplay(commands.Cog):
logging.debug(f'Time to build statlines and submit the scorecard for this PD game!')
# Post result
success = db_post(
success = await db_post(
'results',
payload={
'away_team_id': this_game.away_team_id,
@ -1703,25 +1705,29 @@ class Gameplay(commands.Cog):
if line['pl_double']:
if len(doubles):
doubles += ', '
doubles += f'{db_get("cards", object_id=line["card_id"])["player"]["p_name"]}' \
card = await db_get("cards", object_id=line["card_id"])
doubles += f'{card["player"]["p_name"]}' \
f'{" " if line["pl_double"] > 1 else ""}' \
f'{line["pl_double"] if line["pl_double"] > 1 else ""}'
if line['pl_triple']:
if len(triples):
triples += ', '
triples += f'{db_get("cards", object_id=line["card_id"])["player"]["p_name"]}' \
card = await db_get("cards", object_id=line["card_id"])
triples += f'{card["player"]["p_name"]}' \
f'{" " if line["pl_triple"] > 1 else ""}' \
f'{line["pl_triple"] if line["pl_triple"] > 1 else ""}'
if line['pl_homerun']:
if len(homers):
homers += ', '
homers += f'{db_get("cards", object_id=line["card_id"])["player"]["p_name"]}' \
card = await db_get("cards", object_id=line["card_id"])
homers += f'{card["player"]["p_name"]}' \
f'{" " if line["pl_homerun"] > 1 else ""}' \
f'{line["pl_homerun"] if line["pl_homerun"] > 1 else ""}'
if line['pl_sb']:
if len(s_bases):
s_bases += ', '
s_bases += f'{db_get("cards", object_id=line["card_id"])["player"]["p_name"]}' \
card = await db_get("cards", object_id=line["card_id"])
s_bases += f'{card["player"]["p_name"]}' \
f'{" " if line["pl_sb"] > 1 else ""}' \
f'{line["pl_sb"] if line["pl_sb"] > 1 else ""}'
batter_stats.append(
@ -1765,7 +1771,8 @@ class Gameplay(commands.Cog):
if line['pl_csc']:
if len(caught_s):
caught_s += ', '
caught_s += f'{db_get("cards", object_id=line["card_id"])["player"]["p_name"]}' \
card = await db_get("cards", object_id=line["card_id"])
caught_s += f'{card["player"]["p_name"]}' \
f'{" " if line["pl_csc"] > 1 else ""}' \
f'{line["pl_csc"] if line["pl_csc"] > 1 else ""}'
batter_stats.append(
@ -1832,8 +1839,8 @@ class Gameplay(commands.Cog):
s_bases += '\n' if len(s_bases) else ''
caught_s += '\n' if len(caught_s) else ''
db_post('batstats', payload={'stats': batter_stats})
db_post('pitstats', payload={'stats': pitcher_stats})
await db_post('batstats', payload={'stats': batter_stats})
await db_post('pitstats', payload={'stats': pitcher_stats})
# Post a notification to PD
last_play = get_current_play(this_game.id)
@ -1865,12 +1872,16 @@ class Gameplay(commands.Cog):
name='Location',
value=f'{ctx.guild.get_channel(this_game.channel_id).mention}'
)
wc_query = await db_get("cards", object_id=decisions["winner"])
lc_query = await db_get("cards", object_id=decisions["loser"])
if decisions["save"]:
sv_query = await db_get("cards", object_id=decisions["save"])
embed.add_field(
name='Pitching',
value=f'Win: {db_get("cards", object_id=decisions["winner"])["player"]["p_name"]}\n'
f'Loss: {db_get("cards", object_id=decisions["loser"])["player"]["p_name"]}\n'
value=f'Win: {wc_query["player"]["p_name"]}\n'
f'Loss: {lc_query["player"]["p_name"]}\n'
f'{"Save: " if decisions["save"] else ""}'
f'{db_get("cards", object_id=decisions["save"])["player"]["p_name"] if decisions["save"] else ""}',
f'{sv_query["player"]["p_name"] if decisions["save"] else ""}',
inline=False
)
if len(doubles) + len(triples) + len(homers) > 0:
@ -1913,7 +1924,7 @@ class Gameplay(commands.Cog):
ctx=ctx
)
this_run = db_get('gauntletruns', object_id=int(this_game.game_type.split('-')[3]))
this_run = await db_get('gauntletruns', object_id=int(this_game.game_type.split('-')[3]))
if this_run['losses'] == 2:
await send_to_channel(
bot=self.bot,
@ -2003,7 +2014,7 @@ class Gameplay(commands.Cog):
raise SyntaxError(f'You have more than one {row[0].upper()} in this lineup. Please '
f'update and set the lineup again.')
this_card = db_get(f'cards', object_id=int(row[1]))
this_card = await db_get(f'cards', object_id=int(row[1]))
if this_card['team']['id'] != lineup_team['id']:
raise SyntaxError(f'Easy there, champ. Looks like card ID {row[1]} belongs to the '
f'{this_card["team"]["sname"]}. Try again with only cards you own.')
@ -2030,7 +2041,7 @@ class Gameplay(commands.Cog):
if lineup_team['is_ai']:
starter = starting_pitcher(lineup_team, self.bot, True if this_game.ai_team == 'home' else False)
this_card = db_get(f'cards', object_id=int(starter))
this_card = await db_get(f'cards', object_id=int(starter))
all_lineups.append({
'game_id': this_game.id,
'team_id': lineup_team['id'],
@ -2042,7 +2053,7 @@ class Gameplay(commands.Cog):
})
all_pos.append('P')
else:
this_card = db_get(f'cards', object_id=sp_card_id)
this_card = await db_get(f'cards', object_id=sp_card_id)
logging.debug(f'this_card: {this_card}')
if this_card['team']['id'] != lineup_team['id']:
@ -2070,7 +2081,7 @@ class Gameplay(commands.Cog):
# Check roster legality
if this_game.game_type in ['major-league', 'hall-of-fame']:
l_string = "&card_id=".join(card_ids)
legality = db_post(f'cards/legal-check/ranked?card_id={l_string}')
legality = await db_post(f'cards/legal-check/ranked?card_id={l_string}')
if legality['count'] > 0:
il_string = "\n- ".join(legality['bad_cards'])
await interaction.edit_original_response(
@ -2114,7 +2125,7 @@ class Gameplay(commands.Cog):
@commands.command(name='get-bullpen', help='Mod: Sync an AI bullpen')
@commands.is_owner()
async def get_bullpen_command(self, ctx: commands.Context, team_id):
team = db_get('teams', object_id=team_id)
team = await db_get('teams', object_id=team_id)
if not team:
await ctx.send(f'I did not find a team with id {team_id}')
return
@ -2158,7 +2169,7 @@ class Gameplay(commands.Cog):
try:
if this_game.is_pd:
this_card = db_get(f'cards', object_id=int(new_player))
this_card = await db_get(f'cards', object_id=int(new_player))
if this_card["team"]["id"] != lineup_team['id']:
raise SyntaxError(f'Easy there, champ. Looks like card ID {new_player} belongs to the '
f'{this_card["team"]["sname"]}. Try again with only cards you own.')
@ -2180,7 +2191,7 @@ class Gameplay(commands.Cog):
return
if this_game.game_type in ['major-league', 'hall-of-fame']:
legality = db_post(f'cards/legal-check/ranked?card_id={new_player}')
legality = await db_post(f'cards/legal-check/ranked?card_id={new_player}')
if legality['count'] > 0:
il_string = "\n- ".join(legality['bad_cards'])
await ctx.send(
@ -3130,7 +3141,7 @@ class Gameplay(commands.Cog):
patch_play(this_play.id, locked=False)
def_team_id = this_game.away_team_id if this_play.inning_half == 'Bot' else this_game.home_team_id
def_team = db_get('teams', object_id=def_team_id)
def_team = await db_get('teams', object_id=def_team_id)
d_lineup = get_one_lineup(this_game.id, team_id=this_play.pitcher.team_id, position=position.value)
defender = await get_player(this_game, d_lineup)
patch_play(this_play.id, defender_id=d_lineup.id, check_pos=position.value)
@ -3369,6 +3380,8 @@ class Gameplay(commands.Cog):
content=None, embed=await self.get_game_state_embed(this_game, full_length=False)
)
return
else:
await question.delete()
patch_play(this_play.id, error=1)
if error_allowed == '1 base':

View File

@ -253,8 +253,8 @@ class Players(commands.Cog):
logging.error(f'Still cannot access guild; trying again in 18 hours')
return
all_players = db_get('players', params=[('flat', True)], timeout=25)
all_cardsets = db_get('cardsets', params=[('flat', True)])
all_players = await db_get('players', params=[('flat', True)], timeout=25)
all_cardsets = await db_get('cardsets', params=[('flat', True)])
[self.player_list.append(x['p_name'].lower()) for x in all_players['players'] if x['p_name'].lower()
not in self.player_list]
@ -351,7 +351,7 @@ class Players(commands.Cog):
await ctx.send(f'No clue who that is.')
return
all_players = db_get('players', params=[('name', this_player)])
all_players = await db_get('players', params=[('name', this_player)])
all_cards = [
{'player': x, 'team': {'lname': 'Paper Dynasty', 'logo': IMAGES['logo'], 'season': PD_SEASON}}
for x in all_players['players']
@ -380,7 +380,7 @@ class Players(commands.Cog):
return
if cardset and cardset != 'All':
this_cardset = cardset_search(cardset, self.cardset_list)
this_cardset = await cardset_search(cardset, self.cardset_list)
if this_cardset:
all_params = [('name', this_player), ('cardset_id', this_cardset['id'])]
else:
@ -389,7 +389,7 @@ class Players(commands.Cog):
else:
all_params = [('name', this_player)]
all_players = db_get('players', params=all_params)
all_players = await db_get('players', params=all_params)
all_cards = [get_blank_team_card(x) for x in all_players['players']]
all_cards.sort(key=lambda x: x['player']['rarity']['value'], reverse=True)
@ -410,10 +410,10 @@ class Players(commands.Cog):
ephemeral = True
if team_abbrev:
t_query = db_get('teams', params=[('abbrev', team_abbrev)])
t_query = await db_get('teams', params=[('abbrev', team_abbrev)])
else:
t_query = db_get('teams', params=[('gm_id', interaction.user.id)])
current = db_get('current')
t_query = await db_get('teams', params=[('gm_id', interaction.user.id)])
current = await db_get('current')
if t_query['count'] == 0:
await interaction.response.send_message(
@ -426,11 +426,11 @@ class Players(commands.Cog):
f'I\'m tallying the {team["lname"]} results now...', ephemeral=ephemeral
)
rs_query = db_get(
rs_query = await db_get(
'results',
params=[('team_one_id', team['id']), ('season', current['season']), ('short_game', True)]
)
rl_query = db_get(
rl_query = await db_get(
'results',
params=[('team_one_id', team['id']), ('season', current['season']), ('short_game', False)]
)
@ -480,9 +480,9 @@ class Players(commands.Cog):
async def team_command(self, interaction: discord.Interaction, team_abbrev: Optional[str] = None):
await interaction.response.defer()
if team_abbrev:
t_query = db_get('teams', params=[('abbrev', team_abbrev)])
t_query = await db_get('teams', params=[('abbrev', team_abbrev)])
else:
t_query = db_get('teams', params=[('gm_id', interaction.user.id)])
t_query = await db_get('teams', params=[('gm_id', interaction.user.id)])
if t_query['count'] == 0:
await interaction.edit_original_response(
@ -491,7 +491,7 @@ class Players(commands.Cog):
return
team = t_query['teams'][0]
embed = team_summary_embed(team, interaction)
embed = await team_summary_embed(team, interaction)
await interaction.edit_original_response(content=None, embed=embed)
@ -499,7 +499,7 @@ class Players(commands.Cog):
@app_commands.checks.has_any_role(PD_PLAYERS_ROLE_NAME)
async def card_lookup_command(self, interaction: discord.Interaction, card_id: int):
await interaction.response.defer()
c_query = db_get('cards', object_id=card_id)
c_query = await db_get('cards', object_id=card_id)
if c_query:
c_string = f'Card ID {card_id} is a {c_query["player"]["description"]}'
if c_query['team'] is not None:
@ -522,7 +522,7 @@ class Players(commands.Cog):
@commands.check(legal_channel)
async def branding_command(
self, ctx, team_logo_url: str = None, color: str = None, short_name: str = None, full_name: str = None):
owner_team = get_team_by_owner(ctx.author.id)
owner_team = await get_team_by_owner(ctx.author.id)
if not owner_team:
await ctx.send(f'Hmm...I don\'t see a team for you, yet. You can create one with `/newteam`!')
return
@ -541,8 +541,8 @@ class Players(commands.Cog):
await ctx.send(f'You keep thinking on it - I can\'t make updates if you don\'t provide them.')
return
team = db_patch('teams', object_id=owner_team['id'], params=params)
embed = team_summary_embed(team, ctx)
team = await db_patch('teams', object_id=owner_team['id'], params=params)
embed = await team_summary_embed(team, ctx)
await ctx.send(content=None, embed=embed)
@ -550,7 +550,7 @@ class Players(commands.Cog):
@commands.has_any_role(PD_PLAYERS_ROLE_NAME)
@commands.check(legal_channel)
async def fuck_command(self, ctx, gm: Member):
t_query = db_get('teams', params=[('gm_id', gm.id)])
t_query = await db_get('teams', params=[('gm_id', gm.id)])
if t_query['count'] == 0:
await ctx.send(f'Who?')
return
@ -561,7 +561,7 @@ class Players(commands.Cog):
@commands.has_any_role(PD_PLAYERS_ROLE_NAME)
@commands.check(legal_channel)
async def random_card_command(self, ctx: commands.Context):
this_player = db_get('players/random', params=[('limit', 1)])['players'][0]
this_player = await db_get('players/random', params=[('limit', 1)])['players'][0]
this_embed = await get_card_embeds(
{'player': this_player, 'team': {'lname': 'Paper Dynasty', 'logo': IMAGES['logo'], 'season': PD_SEASON}}
)
@ -573,7 +573,7 @@ class Players(commands.Cog):
@commands.has_any_role(PD_PLAYERS_ROLE_NAME)
@commands.check(legal_channel)
async def paperdex_cardset_slash(self, interaction: discord.Interaction):
team = get_team_by_owner(interaction.user.id)
team = await get_team_by_owner(interaction.user.id)
if not team:
await interaction.response.send_message(f'Do you even have a team? I don\'t know you.', ephemeral=True)
return
@ -592,7 +592,7 @@ class Players(commands.Cog):
@commands.has_any_role(PD_PLAYERS_ROLE_NAME)
@commands.check(legal_channel)
async def paperdex_cardset_slash(self, interaction: discord.Interaction):
team = get_team_by_owner(interaction.user.id)
team = await get_team_by_owner(interaction.user.id)
if not team:
await interaction.response.send_message(f'Do you even have a team? I don\'t know you.', ephemeral=True)
return
@ -649,13 +649,13 @@ class Players(commands.Cog):
@commands.has_any_role(PD_PLAYERS_ROLE_NAME)
@commands.check(legal_channel)
async def standings_command(self, ctx: commands.Context, which: Literal['week', 'season']):
current = db_get('current')
current = await db_get('current')
params = [('season', current['season']), ('ranked', True)]
if which == 'week':
params.append(('week', current['week']))
r_query = db_get('results', params=params)
r_query = await db_get('results', params=params)
if not r_query['count']:
await ctx.send(f'There are no Ranked games on record this {"week" if which == "week" else "season"}.')
return
@ -699,7 +699,7 @@ class Players(commands.Cog):
chunk_string = ''
for index, record in enumerate(sorted_records):
# logging.info(f'index: {index} / record: {record}')
team = db_get('teams', object_id=record[0])
team = await db_get('teams', object_id=record[0])
if team:
chunk_string += f'{record[1]["points"]} pt{"s" if record[1]["points"] != 1 else ""} ' \
f'({record[1]["wins"]}-{record[1]["losses"]}) - {team["sname"]} [{team["ranking"]}]\n'
@ -730,7 +730,7 @@ class Players(commands.Cog):
@commands.has_any_role(PD_PLAYERS_ROLE_NAME)
@commands.check(legal_channel)
async def pull_roster_command(self, ctx: commands.Context, specific_roster_num: Optional[int] = None):
team = get_team_by_owner(ctx.author.id)
team = await get_team_by_owner(ctx.author.id)
if not team:
await ctx.send(f'Do you even have a team? I don\'t know you.')
return
@ -744,7 +744,7 @@ class Players(commands.Cog):
for index, roster in enumerate(roster_data):
logging.debug(f'index: {index} / roster: {roster}')
if (not specific_roster_num or specific_roster_num == index + 1) and roster:
this_roster = db_post(
this_roster = await db_post(
'rosters',
payload={
'team_id': team['id'], 'name': roster['name'],
@ -765,7 +765,7 @@ class Players(commands.Cog):
self, interaction: discord.Interaction, event_name: Literal['Paper Sluggers'], team_abbrev: str = None):
await interaction.response.defer()
e_query = db_get('events', params=[("name", event_name), ("active", True)])
e_query = await db_get('events', params=[("name", event_name), ("active", True)])
if e_query['count'] == 0:
await interaction.response.send_message(f'Hmm...looks like that event has ended already.')
return
@ -776,10 +776,10 @@ class Players(commands.Cog):
if team_abbrev:
if 'Gauntlet-' not in team_abbrev:
team_abbrev = f'Gauntlet-{team_abbrev}'
t_query = db_get('teams', params=[('abbrev', team_abbrev)])
t_query = await db_get('teams', params=[('abbrev', team_abbrev)])
if t_query['count'] != 0:
this_team = t_query['teams'][0]
r_query = db_get('gauntletruns', params=[('team_id', this_team['id']), ('is_active', True)])
r_query = await db_get('gauntletruns', params=[('team_id', this_team['id']), ('is_active', True)])
if r_query['count'] != 0:
this_run = r_query['runs'][0]
@ -794,7 +794,7 @@ class Players(commands.Cog):
await interaction.edit_original_response(
content=None,
embed=gauntlets.get_embed(this_run, this_event, this_team)
embed=await gauntlets.get_embed(this_run, this_event, this_team)
)
@group_gauntlet.command(name='start', description='Start a new Gauntlet run')
@ -809,10 +809,10 @@ class Players(commands.Cog):
return
await interaction.response.defer()
main_team = get_team_by_owner(interaction.user.id)
draft_team = get_team_by_abbrev(f'Gauntlet-{main_team["abbrev"]}')
main_team = await get_team_by_owner(interaction.user.id)
draft_team = await get_team_by_abbrev(f'Gauntlet-{main_team["abbrev"]}')
e_query = db_get('events', params=[("name", event_name), ("active", True)])
e_query = await db_get('events', params=[("name", event_name), ("active", True)])
if e_query['count'] == 0:
await interaction.response.send_message(f'Hmm...looks like that event has ended already.')
return
@ -821,7 +821,7 @@ class Players(commands.Cog):
first_flag = draft_team is None
if draft_team is not None:
r_query = db_get(
r_query = await db_get(
'gauntletruns',
params=[('team_id', draft_team['id']), ('gauntlet_id', this_event['id']), ('is_active', True)]
)
@ -839,7 +839,7 @@ class Players(commands.Cog):
return
except Exception as e:
logging.error(f'Failed to run {event_name} draft for the {main_team["sname"]}: {e}')
draft_team = db_get('teams', params=[('abbrev', f'Gauntlet-{main_team["abbrev"]}')])
draft_team = await db_get('teams', params=[('abbrev', f'Gauntlet-{main_team["abbrev"]}')])
await gauntlets.wipe_team(draft_team, interaction)
await interaction.channel.send(
content=f'Shoot - it looks like we ran into an issue running the draft. I had to clear it all out '

View File

@ -33,8 +33,8 @@ def get_req_url(endpoint: str, api_ver: int = 1, object_id: int = None, params:
return req_url
def db_get(endpoint: str, api_ver: int = 1, object_id: int = None, params: list = None, none_okay: bool = True,
timeout: int = 3):
async def db_get(endpoint: str, api_ver: int = 1, object_id: int = None, params: list = None, none_okay: bool = True,
timeout: int = 3):
req_url = get_req_url(endpoint, api_ver=api_ver, object_id=object_id, params=params)
log_string = f'get:\n{endpoint} id: {object_id} params: {params}'
logging.info(log_string) if master_debug else logging.debug(log_string)
@ -73,7 +73,7 @@ def db_get(endpoint: str, api_ver: int = 1, object_id: int = None, params: list
raise ValueError(f'DB: {resp.text}')
def db_patch(endpoint: str, object_id: int, params: list, api_ver: int = 1, timeout: int = 3):
async def db_patch(endpoint: str, object_id: int, params: list, api_ver: int = 1, timeout: int = 3):
req_url = get_req_url(endpoint, api_ver=api_ver, object_id=object_id, params=params)
log_string = f'patch:\n{endpoint} {params}'
logging.info(log_string) if master_debug else logging.debug(log_string)
@ -104,7 +104,7 @@ def db_patch(endpoint: str, object_id: int, params: list, api_ver: int = 1, time
raise ValueError(f'DB: {resp.text}')
def db_post(endpoint: str, api_ver: int = 1, payload: dict = None, timeout: int = 3):
async def db_post(endpoint: str, api_ver: int = 1, payload: dict = None, timeout: int = 3):
req_url = get_req_url(endpoint, api_ver=api_ver)
log_string = f'post:\n{endpoint} payload: {payload}\ntype: {type(payload)}'
logging.info(log_string) if master_debug else logging.debug(log_string)
@ -135,7 +135,7 @@ def db_post(endpoint: str, api_ver: int = 1, payload: dict = None, timeout: int
raise ValueError(f'DB: {resp.text}')
def db_delete(endpoint: str, object_id: int, api_ver: int = 1, timeout=3):
async def db_delete(endpoint: str, object_id: int, api_ver: int = 1, timeout=3):
req_url = get_req_url(endpoint, api_ver=api_ver, object_id=object_id)
log_string = f'delete:\n{endpoint} {object_id}'
logging.info(log_string) if master_debug else logging.debug(log_string)
@ -166,8 +166,8 @@ def db_delete(endpoint: str, object_id: int, api_ver: int = 1, timeout=3):
raise ValueError(f'DB: {resp.text}')
def get_team_by_abbrev(abbrev: str):
all_teams = db_get('teams', params=[('abbrev', abbrev)])
async def get_team_by_abbrev(abbrev: str):
all_teams = await db_get('teams', params=[('abbrev', abbrev)])
if not all_teams or not all_teams['count']:
return None
@ -175,8 +175,8 @@ def get_team_by_abbrev(abbrev: str):
return all_teams['teams'][0]
def post_to_dex(player, team):
return db_post('paperdex', payload={'team_id': team['id'], 'player_id': player['id']})
async def post_to_dex(player, team):
return await db_post('paperdex', payload={'team_id': team['id'], 'player_id': player['id']})
def team_hash(team):

View File

@ -71,7 +71,7 @@ def get_sba_team_by_owner(season, owner_id):
raise ValueError(f'DB: {resp.text}')
# def pd_db_get(endpoint: str, api_ver: int = 1, object_id: int = None, params: list = None, none_okay: bool = True):
# def pd_await db_get(endpoint: str, api_ver: int = 1, object_id: int = None, params: list = None, none_okay: bool = True):
# req_url = pd_get_req_url(endpoint, api_ver=api_ver, object_id=object_id, params=params)
# logging.info(f'get:\n{endpoint} id: {object_id} params: {params}')
#
@ -90,7 +90,7 @@ def get_sba_team_by_owner(season, owner_id):
# def pd_get_one_team(team_abbrev: str):
# team = pd_db_get('teams', params=[('abbrev', team_abbrev), ('season', PD_SEASON)], none_okay=False)['teams'][0]
# team = pd_await db_get('teams', params=[('abbrev', team_abbrev), ('season', PD_SEASON)], none_okay=False)['teams'][0]
# return team
#
# # req_url = pd_get_req_url('teams', )
@ -106,7 +106,7 @@ def get_sba_team_by_owner(season, owner_id):
# def pd_get_card_by_id(card_id: int):
# return pd_db_get('cards', object_id=card_id, none_okay=False)
# return pd_await db_get('cards', object_id=card_id, none_okay=False)
class BaseModel(Model):
@ -485,11 +485,11 @@ async def get_game_team(game: StratGame, gm_id: int = None, team_abbrev: str = N
f'tm_abbrev: {team_abbrev} / team_id: {team_id} / game: {game}')
if game.is_pd:
if gm_id:
return db_get('teams', params=[('season', PD_SEASON), ('gm_id', gm_id)])['teams'][0]
return await db_get('teams', params=[('season', PD_SEASON), ('gm_id', gm_id)])['teams'][0]
elif team_id:
return db_get('teams', object_id=team_id)
return await db_get('teams', object_id=team_id)
else:
return db_get('teams', params=[('season', PD_SEASON), ('abbrev', team_abbrev)])['teams'][0]
return await db_get('teams', params=[('season', PD_SEASON), ('abbrev', team_abbrev)])['teams'][0]
else:
if gm_id:
return get_sba_team_by_owner(season=SBA_SEASON, owner_id=gm_id)
@ -758,7 +758,7 @@ def undo_subs(game: StratGame, new_play_num: int):
async def get_player(game, lineup_member) -> dict:
if isinstance(game, Game):
if game.is_pd:
this_card = db_get(f'cards', object_id=lineup_member.card_id)
this_card = await db_get(f'cards', object_id=lineup_member.card_id)
player = this_card['player']
player['name'] = player['p_name']
player['team'] = this_card['team']
@ -769,7 +769,7 @@ async def get_player(game, lineup_member) -> dict:
if game.is_pd:
# card_id = lineup_member.card_id if isinstance(lineup_member, Lineup) else lineup_member['card_id']
card_id = lineup_member['card_id'] if isinstance(lineup_member, dict) else lineup_member.card_id
this_card = db_get(f'cards', object_id=card_id)
this_card = await db_get(f'cards', object_id=card_id)
player = this_card['player']
player['name'] = player['p_name']
player['team'] = this_card['team']

View File

@ -16,29 +16,29 @@ from db_calls import db_get, db_post, db_delete, db_patch
async def wipe_team(this_team, interaction: discord.Interaction, delete_team: bool = False, delete_runs: bool = False):
await interaction.edit_original_response(content=f'Looking for cards...')
# Delete cards
c_query = db_get('cards', params=[('team_id', this_team['id'])])
c_query = await db_get('cards', params=[('team_id', this_team['id'])])
await interaction.edit_original_response(content=f'Found {c_query["count"]} cards; deleting cards...')
for x in c_query['cards']:
db_delete('cards', object_id=x['id'])
await db_delete('cards', object_id=x['id'])
# Delete packs
await interaction.edit_original_response(content=f'Done deleting cards; searching for packs...')
p_query = db_get('packs', params=[('team_id', this_team['id'])])
p_query = await db_get('packs', params=[('team_id', this_team['id'])])
await interaction.edit_original_response(content=f'Found {p_query["count"]} packs; deleting packs...')
for x in p_query['packs']:
db_delete('packs', object_id=x['id'])
await db_delete('packs', object_id=x['id'])
# Delete team
if delete_team:
await interaction.edit_original_response(content=f'Done deleting packs; now deleting team...')
db_delete('teams', object_id=this_team['id'])
await db_delete('teams', object_id=this_team['id'])
await interaction.edit_original_response(content=f'Team is deleted; now finding the run...')
if delete_runs:
r_query = db_get('gauntletruns', params=[('team_id', this_team['id']), ('is_active', True)])
r_query = await db_get('gauntletruns', params=[('team_id', this_team['id']), ('is_active', True)])
await interaction.edit_original_response(content=f'Found {r_query["count"]} runs; deleting now...')
for x in r_query['runs']:
db_delete('gauntletruns', object_id=x['id'])
await db_delete('gauntletruns', object_id=x['id'])
def get_game_code(this_team, this_event, this_run):
@ -55,7 +55,7 @@ def is_home_team(this_team, this_event, this_run):
return False
def get_opponent(this_team, this_event, this_run):
async def get_opponent(this_team, this_event, this_run):
if this_event['id'] == 1:
gp = games_played(this_run)
if gp == 0:
@ -82,19 +82,19 @@ def get_opponent(this_team, this_event, this_run):
t_id = 58
else:
raise KeyError(f'Huh...I have no idea who you should be playing right now.')
return db_get('teams', object_id=t_id, none_okay=False)
return await db_get('teams', object_id=t_id, none_okay=False)
else:
return None
def build_lineup(this_team, this_game, this_event):
async def build_lineup(this_team, this_game, this_event):
if this_event['id'] == 1:
return ai_manager.build_lineup(this_team, this_game.id, f'gauntlet-{this_event["id"]}')
return await ai_manager.build_lineup(this_team, this_game.id, f'gauntlet-{this_event["id"]}')
else:
raise KeyError(f'Lineups not found for Gauntlet {this_event["id"]}')
def get_starting_pitcher(this_team, this_game, this_event, this_run):
async def get_starting_pitcher(this_team, this_game, this_event, this_run):
if this_event['id'] == 1:
if this_team['id'] != 58:
set_params = ai_manager.MINOR_CARDSET_PARAMS
@ -118,7 +118,7 @@ def get_starting_pitcher(this_team, this_game, this_event, this_run):
# Pull starters sorted by current cost
try:
params.extend(set_params)
pitchers = db_get(
pitchers = await db_get(
endpoint='players',
params=params,
timeout=10
@ -140,7 +140,7 @@ def get_starting_pitcher(this_team, this_game, this_event, this_run):
break
pitcher_num = games_played(this_run) % 5
card_id = ai_manager.get_or_create_card(pitchers['players'][pitcher_num], this_team)
card_id = await ai_manager.get_or_create_card(pitchers['players'][pitcher_num], this_team)
return {
'game_id': this_game.id,
@ -165,7 +165,7 @@ async def run_draft(interaction: discord.Interaction, main_team, this_event, dra
if draft_team is None:
# Post draft team linked to main team
draft_team = db_post(
draft_team = await db_post(
'teams',
payload={
'abbrev': f'Gauntlet-{main_team["abbrev"]}',
@ -211,7 +211,7 @@ async def run_draft(interaction: discord.Interaction, main_team, this_event, dra
else:
view.confirm.label = 'Let\'s Go!'
intro_embed = get_embed(this_event=this_event)
intro_embed = await get_embed(this_event=this_event)
intro_embed.title += ' - Are you ready?'
await interaction.edit_original_response(
@ -424,7 +424,7 @@ async def run_draft(interaction: discord.Interaction, main_team, this_event, dra
logging.info(f'slot_params: {slot_params}')
logging.info(f'params: {params}')
slot_params.extend(params)
p_query = db_get('players/random', params=slot_params)
p_query = await db_get('players/random', params=slot_params)
if p_query['count'] > 0:
# test_player_list = ''
@ -439,7 +439,7 @@ async def run_draft(interaction: discord.Interaction, main_team, this_event, dra
if len(this_batch) < 4:
logging.error(f'Pulled less than 4 players in gauntlet draft')
p_query = db_get('players/random', params=params)
p_query = await db_get('players/random', params=params)
for i in p_query['players']:
if i['p_name'] not in p_names and i not in this_batch:
this_batch.append(i)
@ -475,7 +475,7 @@ async def run_draft(interaction: discord.Interaction, main_team, this_event, dra
raise KeyError(f'I gotta be honest - I shit the bed here and wasn\'t able to get you enough players to fill '
f'a team. I have to wipe this team, but please draft again after you tell Cal his bot sucks.')
this_pack = db_post(
this_pack = await db_post(
'packs/one',
payload={
'team_id': draft_team['id'],
@ -483,13 +483,13 @@ async def run_draft(interaction: discord.Interaction, main_team, this_event, dra
'open_time': datetime.datetime.timestamp(datetime.datetime.now()) * 1000
}
)
db_post(
await db_post(
'cards',
payload={'cards': [
{'player_id': x['player_id'], 'team_id': draft_team['id'], 'pack_id': this_pack['id']} for x in all_players
]}
)
db_post(
await db_post(
'gauntletruns',
payload={
'team_id': draft_team['id'],
@ -504,7 +504,7 @@ async def run_draft(interaction: discord.Interaction, main_team, this_event, dra
return final_embed
def get_embed(this_run=None, this_event=None, this_team=None):
async def get_embed(this_run=None, this_event=None, this_team=None):
logging.info(f'get_embed - this_run:\n{this_run}\n\nthis_event:\n{this_event}')
if this_run is None and this_event is None:
@ -525,7 +525,7 @@ def get_embed(this_run=None, this_event=None, this_team=None):
if this_run is not None:
embed.add_field(name='Current Record', value=f'{this_run["wins"]}-{this_run["losses"]}', inline=False)
r_query = db_get('gauntletrewards', params=[('gauntlet_id', this_event['id'])])
r_query = await db_get('gauntletrewards', params=[('gauntlet_id', this_event['id'])])
reward_string = ''
for x in r_query['rewards']:
if this_run is not None:
@ -547,10 +547,10 @@ def get_embed(this_run=None, this_event=None, this_team=None):
embed.add_field(name='Rewards', value=reward_string)
if this_team is not None:
run_query = db_get('gauntletruns', params=[('team_id', this_team['id']), ('gauntlet_id', this_event['id'])])
run_query = await db_get('gauntletruns', params=[('team_id', this_team['id']), ('gauntlet_id', this_event['id'])])
record_name = f'{this_team["abbrev"].split("-")[1]} Record'
else:
run_query = db_get('gauntletruns', params=[('gauntlet_id', this_event['id'])])
run_query = await db_get('gauntletruns', params=[('gauntlet_id', this_event['id'])])
record_name = f'League Record'
record_value = ''
@ -580,30 +580,31 @@ def get_embed(this_run=None, this_event=None, this_team=None):
async def post_result(run_id: int, is_win: bool, this_team, bot, ctx):
this_run = db_get('gauntletruns', object_id=run_id)
this_event = db_get('events', object_id=this_run['gauntlet']['id'])
main_team = db_get('teams', params=[('abbrev', f'{this_team["abbrev"].replace("Gauntlet-","")}')])['teams'][0]
this_run = await db_get('gauntletruns', object_id=run_id)
this_event = await db_get('events', object_id=this_run['gauntlet']['id'])
t_query = await db_get('teams', params=[('abbrev', f'{this_team["abbrev"].replace("Gauntlet-","")}')])
main_team = t_query['teams'][0]
if is_win:
this_run = db_patch(
this_run = await db_patch(
'gauntletruns',
object_id=this_run['id'],
params=[('wins', this_run['wins'] + 1), ('ended', this_run['wins'] + 1 == 10)]
)
r_query = db_get(
r_query = await db_get(
'gauntletrewards',
params=[('gauntlet_id', this_event['id']), ('win_num', this_run['wins']), ('loss_max', this_run['losses'])]
)
reward_string = ''
for x in r_query['rewards']:
if x['reward']['money']:
db_post(f'teams/{main_team["id"]}/money/{x["reward"]["money"]}')
await db_post(f'teams/{main_team["id"]}/money/{x["reward"]["money"]}')
reward_string += f'- {x["reward"]["money"]}\n'
elif x['reward']['player']:
# TODO: add give player code
pass
elif x['reward']['pack_type']:
helpers.give_packs(main_team, 1, x['reward']['pack_type'])
await helpers.give_packs(main_team, 1, x['reward']['pack_type'])
reward_string += f'- 1x {x["reward"]["pack_type"]["name"]} Pack'
if this_run['wins'] == 10:
@ -617,7 +618,7 @@ async def post_result(run_id: int, is_win: bool, this_team, bot, ctx):
)
final_message = f'That\'s number 10! Way to go - you have completed the **{this_event["name"]} Gauntlet** ' \
f'with a record of {this_run["wins"]}-{this_run["losses"]}! '
c_query = db_post(f'cards/wipe-team/{this_team["id"]}')
c_query = await db_post(f'cards/wipe-team/{this_team["id"]}')
else:
final_message = f'Big win there! Your {this_event["name"]} record is now **{this_run["wins"]}-' \
f'{this_run["losses"]}**. '
@ -628,10 +629,10 @@ async def post_result(run_id: int, is_win: bool, this_team, bot, ctx):
await ctx.send(
content=final_message,
embed=get_embed(this_run)
embed=await get_embed(this_run)
)
else:
this_run = db_patch(
this_run = await db_patch(
'gauntletruns',
object_id=this_run['id'],
params=[('losses', this_run['losses'] + 1), ('ended', this_run['losses'] + 1 == 2)]
@ -640,10 +641,10 @@ async def post_result(run_id: int, is_win: bool, this_team, bot, ctx):
f'**{this_run["wins"]}-{this_run["losses"]}**. '
if this_run['losses'] == 2:
l_message += 'That\'s the end of this run - better luck next time!'
c_query = db_post(f'cards/wipe-team/{this_team["id"]}')
c_query = await db_post(f'cards/wipe-team/{this_team["id"]}')
await ctx.send(
content=l_message,
embed=get_embed(this_run)
embed=await get_embed(this_run)
)

View File

@ -559,12 +559,12 @@ class SelectChoicePackTeam(discord.ui.Select):
('pack_type_id', 8), ('team_id', self.owner_team['id']), ('opened', False), ('limit', 1),
('exact_match', True)
]
p_query = db_get('packs', params=params)
p_query = await db_get('packs', params=params)
if p_query['count'] == 0:
logging.error(f'open-packs - no packs found with params: {params}')
raise ValueError(f'Unable to open packs')
this_pack = db_patch('packs', object_id=p_query['packs'][0]['id'], params=[('pack_team_id', team_id)])
this_pack = await db_patch('packs', object_id=p_query['packs'][0]['id'], params=[('pack_team_id', team_id)])
await open_choice_pack(this_pack, self.owner_team, interaction)
@ -578,7 +578,7 @@ class SelectOpenPack(discord.ui.Select):
pack_vals = self.values[0].split('-')
# Get the owner's team
owner_team = get_team_by_owner(interaction.user.id)
owner_team = await get_team_by_owner(interaction.user.id)
# Get the selected packs
params = [('team_id', owner_team['id']), ('opened', False), ('limit', 5), ('exact_match', True)]
@ -624,7 +624,7 @@ class SelectOpenPack(discord.ui.Select):
elif 'Cardset' in pack_vals:
params.append(('pack_cardset_id', pack_vals[2]))
p_query = db_get('packs', params=params)
p_query = await db_get('packs', params=params)
if p_query['count'] == 0:
logging.error(f'open-packs - no packs found with params: {params}')
raise ValueError(f'Unable to open packs')
@ -672,10 +672,13 @@ class SelectPaperdexCardset(discord.ui.Select):
elif self.values[0] == '2023 Season':
cardset_id = 9
c_query = db_get('cardsets', object_id=cardset_id, none_okay=False)
c_query = await db_get('cardsets', object_id=cardset_id, none_okay=False)
await interaction.response.edit_message(content=f'Okay, sifting through your cards...', view=None)
cardset_embeds = paperdex_cardset_embed(team=get_team_by_owner(interaction.user.id), this_cardset=c_query)
cardset_embeds = await paperdex_cardset_embed(
team=await get_team_by_owner(interaction.user.id),
this_cardset=c_query
)
await embed_pagination(cardset_embeds, interaction.channel, interaction.user)
@ -785,10 +788,10 @@ class SelectPaperdexTeam(discord.ui.Select):
elif self.values[0] == 'Washington Nationals':
team_id = 30
t_query = db_get('teams', object_id=team_id, none_okay=False)
t_query = await db_get('teams', object_id=team_id, none_okay=False)
await interaction.response.edit_message(content=f'Okay, sifting through your cards...', view=None)
team_embeds = paperdex_team_embed(team=get_team_by_owner(interaction.user.id), mlb_team=t_query)
team_embeds = await paperdex_team_embed(team=await get_team_by_owner(interaction.user.id), mlb_team=t_query)
await embed_pagination(team_embeds, interaction.channel, interaction.user)
@ -853,8 +856,8 @@ class SelectBuyPacksCardset(discord.ui.Select):
'pack_type_id': self.pack_type_id,
'pack_cardset_id': cardset_id
}
db_post('packs', payload={'packs': [p_model for x in range(self.quantity)]})
db_post(f'teams/{self.team["id"]}/money/-{self.cost}')
await db_post('packs', payload={'packs': [p_model for x in range(self.quantity)]})
await db_post(f'teams/{self.team["id"]}/money/-{self.cost}')
await question.edit(
content=f'{"They are" if self.quantity > 1 else "It is"} all yours! Go rip \'em with `/open-packs`',
@ -1003,8 +1006,8 @@ class SelectBuyPacksTeam(discord.ui.Select):
'pack_type_id': self.pack_type_id,
'pack_team_id': team_id
}
db_post('packs', payload={'packs': [p_model for x in range(self.quantity)]})
db_post(f'teams/{self.team["id"]}/money/-{self.cost}')
await db_post('packs', payload={'packs': [p_model for x in range(self.quantity)]})
await db_post(f'teams/{self.team["id"]}/money/-{self.cost}')
await question.edit(
content=f'{"They are" if self.quantity > 1 else "It is"} all yours! Go rip \'em with `/open-packs`',
@ -1268,7 +1271,7 @@ async def get_player_photo(player):
return None
if resp.status_code == 200 and resp.json()['player']:
if resp.json()['player'][0]['strSport'] == 'Baseball':
db_patch('players', object_id=player['player_id'],
await db_patch('players', object_id=player['player_id'],
params=[('headshot', resp.json()['player'][0]['strThumb'])])
return resp.json()['player'][0]['strThumb']
return None
@ -1283,7 +1286,7 @@ async def get_player_headshot(player):
soup = BeautifulSoup(resp, 'html.parser')
for item in soup.find_all('img'):
if 'headshot' in item['src']:
db_patch('players', object_id=player['player_id'], params=[('headshot', item['src'])])
await db_patch('players', object_id=player['player_id'], params=[('headshot', item['src'])])
return item['src']
except:
pass
@ -1433,8 +1436,8 @@ def get_team_embed(title, team=None, thumbnail: bool = True):
return embed
def get_team_by_owner(owner_id: int):
team = db_get('teams', params=[('gm_id', owner_id)])
async def get_team_by_owner(owner_id: int):
team = await db_get('teams', params=[('gm_id', owner_id)])
if not team['count']:
return None
@ -1530,7 +1533,7 @@ async def get_card_embeds(card) -> list:
embed.add_field(name='Player Page', value=f'{player_pages}')
# all_dex = card['player']['paperdex']
all_dex = db_get('paperdex', params=[("player_id", card["player"]["player_id"]), ('flat', True)])
all_dex = await db_get('paperdex', params=[("player_id", card["player"]["player_id"]), ('flat', True)])
count = all_dex['count']
if card['team']['lname'] != 'Paper Dynasty':
bool_list = [True for elem in all_dex['paperdex'] if elem['team'] == card['team']['id']]
@ -1549,7 +1552,7 @@ async def get_card_embeds(card) -> list:
# TODO: check for dupes with the included paperdex data
# if card['team']['lname'] != 'Paper Dynasty':
# team_dex = db_get('cards', params=[("player_id", card["player"]["player_id"]), ('team_id', card['team']['id'])])
# team_dex = await db_get('cards', params=[("player_id", card["player"]["player_id"]), ('team_id', card['team']['id'])])
# count = 1 if not team_dex['count'] else team_dex['count']
# embed.add_field(name='# Dupes', value=f'{count - 1} dupe{"s" if count - 1 != 1 else ""}')
@ -1793,16 +1796,19 @@ def get_channel(ctx, name) -> Optional[discord.TextChannel]:
async def get_test_pack(ctx, team):
pull_notifs = []
this_pack = db_post('packs/one', payload={
this_pack = await db_post('packs/one', payload={
'team_id': team['id'], 'pack_type_id': 1,
'open_time': int(datetime.datetime.timestamp(datetime.datetime.now())*1000)
})
first_three = db_get('players/random', params=[('max_rarity', 1), ('limit', 3)])['players']
fourth = db_get('players/random', params=[('min_rarity', 1), ('max_rarity', 3), ('limit', 1)])['players']
fifth = db_get('players/random', params=[('min_rarity', 5), ('max_rarity', 5), ('limit', 1)])['players']
ft_query = await db_get('players/random', params=[('max_rarity', 1), ('limit', 3)])
four_query = await db_get('players/random', params=[('min_rarity', 1), ('max_rarity', 3), ('limit', 1)])
five_query = await db_get('players/random', params=[('min_rarity', 5), ('max_rarity', 5), ('limit', 1)])
first_three = ft_query['players']
fourth = four_query['players']
fifth = five_query['players']
all_cards = [*first_three, *fourth, *fifth]
success = db_post('cards', timeout=10, payload={'cards': [{
success = await db_post('cards', timeout=10, payload={'cards': [{
'player_id': x['player_id'], 'team_id': team['id'], 'pack_id': this_pack['id']} for x in all_cards]
})
if not success:
@ -1814,7 +1820,7 @@ async def get_test_pack(ctx, team):
pull_notifs.append(x)
for pull in pull_notifs:
db_post('notifs', payload={
await db_post('notifs', payload={
'created': int(datetime.datetime.timestamp(datetime.datetime.now())*1000),
'title': 'Rare Pull',
'field_name': f'{pull["description"]} ({pull["rarity"]["name"]})',
@ -2021,7 +2027,7 @@ async def roll_for_cards(all_packs: list, extra_val=None) -> list:
elif all_packs[0]['pack_cardset'] is not None:
params.append(('cardset_id', all_packs[0]['pack_cardset']['id']))
pl = db_get('players/random', params=params)
pl = await db_get('players/random', params=params)
if pl['count'] != counts[key]['count']:
mvp_flag = counts[key]['count'] - pl['count']
@ -2034,13 +2040,13 @@ async def roll_for_cards(all_packs: list, extra_val=None) -> list:
pull_notifs.append(x)
if mvp_flag:
pl = db_get('players/random', params=[('min_rarity', 5), ('limit', mvp_flag)])
pl = await db_get('players/random', params=[('min_rarity', 5), ('limit', mvp_flag)])
for x in pl['players']:
this_pack_players.append(x)
all_players.append(x)
success = db_post(
success = await db_post(
'cards',
payload={'cards': [{
'player_id': x['player_id'], 'team_id': pack['team']['id'], 'pack_id': pack['id']} for x in this_pack_players]
@ -2050,14 +2056,14 @@ async def roll_for_cards(all_packs: list, extra_val=None) -> list:
if not success:
raise ConnectionError(f'Failed to create this pack of cards.')
db_patch('packs', object_id=pack['id'], params=[
await db_patch('packs', object_id=pack['id'], params=[
('open_time', int(datetime.datetime.timestamp(datetime.datetime.now())*1000))
])
pack_ids.append(pack['id'])
for pull in pull_notifs:
logging.info(f'good pull: {pull}')
db_post('notifs', payload={
await db_post('notifs', payload={
'created': int(datetime.datetime.timestamp(datetime.datetime.now())*1000),
'title': 'Rare Pull',
'field_name': f'{pull["description"]} ({pull["rarity"]["name"]})',
@ -2068,7 +2074,7 @@ async def roll_for_cards(all_packs: list, extra_val=None) -> list:
return pack_ids
def give_packs(team: dict, num_packs: int, pack_type: dict = None) -> dict:
async def give_packs(team: dict, num_packs: int, pack_type: dict = None) -> dict:
"""
Parameters
----------
@ -2081,11 +2087,11 @@ def give_packs(team: dict, num_packs: int, pack_type: dict = None) -> dict:
{ 'count': int, 'packs': [ all team packs ] }
"""
pt_id = pack_type['id'] if pack_type is not None else 1
db_post(
await db_post(
'packs',
payload={'packs': [{'team_id': team['id'], 'pack_type_id': pt_id} for x in range(num_packs)]}
)
total_packs = db_get('packs', params=[
total_packs = await db_get('packs', params=[
('team_id', team['id']), ('opened', False)
])
@ -2181,12 +2187,12 @@ def get_pos_abbrev(pos_name):
raise KeyError(f'{pos_name} is not a recognized position name')
def cardset_search(cardset: str, cardset_list: list) -> Optional[dict]:
async def cardset_search(cardset: str, cardset_list: list) -> Optional[dict]:
cardset_name = fuzzy_search(cardset, cardset_list)
if not cardset_name:
return None
c_query = db_get('cardsets', params=[('name', cardset_name)])
c_query = await db_get('cardsets', params=[('name', cardset_name)])
if c_query['count'] == 0:
return None
return c_query['cardsets'][0]
@ -2315,14 +2321,14 @@ def get_role(ctx, role_name):
return discord.utils.get(ctx.guild.roles, name=role_name)
def team_summary_embed(team, ctx, include_roster: bool = True):
async def team_summary_embed(team, ctx, include_roster: bool = True):
embed = get_team_embed(f'{team["lname"]} Overview', team)
embed.add_field(name='General Manager', value=team['gmname'], inline=False)
embed.add_field(name='Wallet', value=f'{team["wallet"]}')
# embed.add_field(name='Collection Value', value=team['collection_value'])
p_query = db_get('packs', params=[('team_id', team['id']), ('opened', False)])
p_query = await db_get('packs', params=[('team_id', team['id']), ('opened', False)])
if p_query['count'] > 0:
all_packs = {}
for x in p_query['packs']:
@ -2339,7 +2345,7 @@ def team_summary_embed(team, ctx, include_roster: bool = True):
embed.add_field(name='Unopened Packs', value=pack_string)
embed.add_field(name='Team Rating', value=f'{team["ranking"]}')
r_query = db_get(f'results/team/{team["id"]}?season={PD_SEASON}')
r_query = await db_get(f'results/team/{team["id"]}?season={PD_SEASON}')
if r_query:
embed.add_field(
name='Record',
@ -2348,7 +2354,7 @@ def team_summary_embed(team, ctx, include_roster: bool = True):
)
# try:
# r_query = db_get('rosters', params=[('team_id', team['id'])])
# r_query = await db_get('rosters', params=[('team_id', team['id'])])
# if r_query['count']:
# embed.add_field(name=f'Rosters', value=f'** **', inline=False)
# for roster in r_query['rosters']:
@ -2387,25 +2393,26 @@ def team_summary_embed(team, ctx, include_roster: bool = True):
return embed
def give_cards_to_team(team, players: list = None, player_ids: list = None, pack_id=None):
async def give_cards_to_team(team, players: list = None, player_ids: list = None, pack_id=None):
if not pack_id:
pack_id = db_post(
p_query = await db_post(
'packs/one',
payload={
'team_id': team['id'],
'pack_type_id': 4,
'open_time': datetime.datetime.timestamp(datetime.datetime.now()) * 1000}
)['id']
)
pack_id = p_query['id']
if not players and not player_ids:
raise ValueError('One of players or player_ids must be provided to distribute cards')
if players:
db_post('cards', payload={'cards': [
await db_post('cards', payload={'cards': [
{'player_id': x['player_id'], 'team_id': team['id'], 'pack_id': pack_id} for x in players
]}, timeout=10)
elif player_ids:
db_post('cards', payload={'cards': [
await db_post('cards', payload={'cards': [
{'player_id': x, 'team_id': team['id'], 'pack_id': pack_id} for x in player_ids
]}, timeout=10)
@ -2465,8 +2472,8 @@ def get_ratings_guide(sheets):
}
def paperdex_cardset_embed(team: dict, this_cardset: dict) -> [discord.Embed]:
all_dex = db_get(
async def paperdex_cardset_embed(team: dict, this_cardset: dict) -> [discord.Embed]:
all_dex = await db_get(
'paperdex',
params=[('team_id', team['id']), ('cardset_id', this_cardset['id']), ('flat', True)]
)
@ -2519,7 +2526,7 @@ def paperdex_cardset_embed(team: dict, this_cardset: dict) -> [discord.Embed]:
'total_owned': 0
}
set_players = db_get(
set_players = await db_get(
'players',
params=[('cardset_id', this_cardset['id']), ('flat', True), ('inc_dex', False)],
timeout=5
@ -2578,19 +2585,19 @@ def paperdex_cardset_embed(team: dict, this_cardset: dict) -> [discord.Embed]:
return display_embeds
def paperdex_team_embed(team: dict, mlb_team: dict) -> [discord.Embed]:
all_dex = db_get(
async def paperdex_team_embed(team: dict, mlb_team: dict) -> [discord.Embed]:
all_dex = await db_get(
'paperdex',
params=[('team_id', team['id']), ('franchise', mlb_team['lname']), ('flat', True)]
)
dex_player_list = [x['player'] for x in all_dex['paperdex']]
c_query = db_get('cardsets')
c_query = await db_get('cardsets')
coll_data = {'total_owned': 0}
total_players = 0
for x in c_query['cardsets']:
set_players = db_get(
set_players = await db_get(
'players',
params=[('cardset_id', x['id']), ('franchise', mlb_team['lname']), ('flat', True), ('inc_dex', False)]
)
@ -2685,7 +2692,7 @@ async def open_st_pr_packs(all_packs: list, team: dict, context):
all_cards = []
for p_id in pack_ids:
new_cards = db_get('cards', params=[('pack_id', p_id)])
new_cards = await db_get('cards', params=[('pack_id', p_id)])
all_cards.extend(new_cards['cards'])
if not all_cards:
@ -2811,7 +2818,7 @@ async def open_choice_pack(this_pack, team: dict, context):
rarity_id = 3
else:
rarity_id = 2
pl = db_get(
pl = await db_get(
'players/random',
params=[
('cardset_id', 8), ('min_rarity', rarity_id), ('max_rarity', rarity_id), ('limit', 4)
@ -2830,7 +2837,7 @@ async def open_choice_pack(this_pack, team: dict, context):
rarity_id = 3
else:
rarity_id = 2
pl = db_get(
pl = await db_get(
'players/random',
params=[
('min_rarity', rarity_id), ('max_rarity', rarity_id), ('limit', 4), ('in_packs', True),
@ -2845,7 +2852,7 @@ async def open_choice_pack(this_pack, team: dict, context):
elif pack_type == 'All Star':
rarity_id = 3
pl = db_get('players/random', params=[
pl = await db_get('players/random', params=[
('min_rarity', rarity_id), ('max_rarity', rarity_id), ('limit', 4), ('in_packs', True)
])
@ -2897,12 +2904,12 @@ async def open_choice_pack(this_pack, team: dict, context):
await msg.edit(view=None)
try:
give_cards_to_team(team, players=[players[page_num - 1]], pack_id=this_pack['id'])
await give_cards_to_team(team, players=[players[page_num - 1]], pack_id=this_pack['id'])
except Exception as e:
logging.error(f'failed to create cards: {e}')
raise ConnectionError(f'Failed to distribute these cards.')
db_patch('packs', object_id=this_pack['id'], params=[
await db_patch('packs', object_id=this_pack['id'], params=[
('open_time', int(datetime.datetime.timestamp(datetime.datetime.now()) * 1000))
])
await tmp_msg.edit(