157 lines
5.3 KiB
Python
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']
|
|
# ]
|
|
# )
|
|
#
|
|
#
|