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'] # ] # ) # #