From 32c9aa010cb6a82daa06f3b5f890a2d757324249 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Tue, 21 Feb 2023 15:58:01 -0600 Subject: [PATCH] Create sheets.py --- sheets.py | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 sheets.py diff --git a/sheets.py b/sheets.py new file mode 100644 index 0000000..b134f26 --- /dev/null +++ b/sheets.py @@ -0,0 +1,156 @@ +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'] +# ] +# ) +# +#