paper-dynasty-database/sheets.py
2023-02-21 15:58:01 -06:00

157 lines
5.3 KiB
Python

import logging
from db_engine import Player, Card, Team, Cardset
PD_SHEET_KEY = '1xqPOrJIjdUWfDSFNnUiecRgo8DDKFKk2Pf1iQ4pTREM'
def send_to_sheets(sheets, sheet_key: str, worksheet_title: str, data_list: list, data_range: str):
this_sheet = sheets.open_by_key(sheet_key)
this_ws = this_sheet.worksheet_by_title(worksheet_title)
this_ws.update_values(
crange=data_range,
values=data_list
)
return this_sheet
def update_all_players(sheets):
player_list = Player.select()
logging.debug(f'send to sheets player_list: {player_list}')
player_data = []
for x in player_list:
player_data.append(
[
x.player_id, x.p_name, x.cost, x.image,
x.image2, x.mlbclub, x.franchise,
x.cardset.name, x.rarity.name, x.pos_1, x.pos_2,
x.pos_3, x.pos_4, x.pos_5, x.pos_6,
x.pos_7, x.pos_8, x.headshot, x.vanity_card,
x.strat_code, x.bbref_id,
x.description, x.cardset.for_purchase, x.cardset.in_packs
]
)
return send_to_sheets(
sheets,
sheet_key=PD_SHEET_KEY,
worksheet_title='All Players',
data_list=player_data,
data_range='A2'
)
def send_ai_cards(sheets):
card_list = Card.select().join(Team).where(Card.team.is_ai)
logging.debug(f'send to sheets card_list: {card_list}')
card_data = []
for x in card_list:
card_data.append([
x.player.cardset.name, x.player.p_name, x.player.rarity.name, x.player.image, x.player.image2,
x.player.pos_1,
x.player.pos_2, x.player.pos_3, x.player.pos_4, x.player.pos_5, x.player.pos_6, x.player.pos_7,
x.player.pos_8, x.player.cost, x.player.mlbclub, x.player.franchise, x.player.set_num, x.player.bbref_id,
x.player_id, x.id, x.team.id
])
return send_to_sheets(
sheets,
sheet_key=PD_SHEET_KEY,
worksheet_title='AI Cards',
data_list=card_data,
data_range='A2'
)
def post_new_cards(sheets, starting_id: int):
card_list = Card.select().where(Card.id >= starting_id)
logging.debug(f'post_new_cards to sheets card_list: {card_list}')
card_data = []
count = starting_id
for x in card_list:
while count < x.id:
card_data.append(['', '', '', '', ''])
count += 1
card_data.append([
x.player.cardset.name, x.player.p_name, x.player.rarity.name, x.player.image, x.player.image2,
x.player.pos_1,
x.player.pos_2, x.player.pos_3, x.player.pos_4, x.player.pos_5, x.player.pos_6, x.player.pos_7,
x.player.pos_8, x.player.cost, x.player.mlbclub, x.player.franchise, x.player.set_num, x.player.bbref_id,
x.player_id, x.id, x.team.id
])
count += 1
return send_to_sheets(
sheets,
sheet_key=PD_SHEET_KEY,
worksheet_title='All Cards',
data_list=card_data,
data_range=f'A{starting_id + 1}'
)
def post_deletion(sheets, del_ids: list):
del_data = []
deletion_ids = [int(x) for x in del_ids]
deletion_ids.sort()
logging.info(f'sorted: {deletion_ids}')
x = deletion_ids[0]
while x <= deletion_ids[-1]:
if x in deletion_ids:
del_data.append(['TRUE'])
else:
del_data.append([''])
x += 1
return send_to_sheets(
sheets,
sheet_key=PD_SHEET_KEY,
worksheet_title='All Cards',
data_list=del_data,
data_range=f'V{deletion_ids[0] + 1}'
)
# def update_one_player(sheets, this_player):
# logging.debug(f'send to sheets this_player: {this_player}')
# player_data = [[
# this_player['player_id'], this_player['p_name'], this_player['cost'], this_player['image'],
# this_player['image2'], this_player['mlbclub'], this_player['franchise'],
# this_player['cardset']['name'], this_player['rarity']['name'], this_player['pos_1'], this_player['pos_2'],
# this_player['pos_3'], this_player['pos_4'], this_player['pos_5'], this_player['pos_6'],
# this_player['pos_7'], this_player['pos_8'], this_player['headshot'], this_player['vanity_card'],
# this_player['strat_code'], this_player['bbref_id'],
# this_player['description'], this_player['cardset']['for_purchase'], this_player['cardset']['in_packs']
# ]]
#
# return send_to_sheets(
# sheets,
# sheet_key=PD_SHEET_KEY,
# worksheet_title='All Cards',
# data_list=player_data,
# data_range=f'A{this_player["player_id"] + 1}'
# )
# def update_many_players(sheets, player_list):
# logging.debug(f'send to sheets player_list: {player_list}')
# player_data = []
# for x in player_list:
# player_data.append(
# [
# x['player_id'], x['p_name'], x['cost'], x['image'],
# x['image2'], x['mlbclub'], x['franchise'],
# x['cardset']['name'], x['rarity']['name'], x['pos_1'], x['pos_2'],
# x['pos_3'], x['pos_4'], x['pos_5'], x['pos_6'],
# x['pos_7'], x['pos_8'], x['headshot'], x['vanity_card'],
# x['strat_code'], x['bbref_id'],
# x['description'], x['cardset']['for_purchase'], x['cardset']['in_packs']
# ]
# )
#
#