diff --git a/scripts/fix_pitcher_pos.py b/scripts/fix_pitcher_pos.py new file mode 100644 index 0000000..57a2af2 --- /dev/null +++ b/scripts/fix_pitcher_pos.py @@ -0,0 +1,49 @@ +import asyncio +import datetime +import logging +import sys + +from db_calls import db_get, db_patch + +date = f'{datetime.datetime.now().year}-{datetime.datetime.now().month}-{datetime.datetime.now().day}' +log_level = logging.INFO +logging.basicConfig( + filename=f'logs/{date}.log', + format='%(asctime)s - retrosheet_data - %(levelname)s - %(message)s', + level=log_level +) + + +async def main(args): + p_query = await db_get('players', params=[('pos_include', 'P')]) + if p_query['count'] == 0: + print(f'No players found.') + return + + errors = [] + + for player in p_query['players']: + c_query = await db_get('pitchingcards/player', object_id=player['player_id']) + + if c_query['count'] == 0: + errors.append(player) + else: + sr = c_query['cards'][0]['starter_rating'] + cr = c_query['cards'][0]['closer_rating'] + + params = [] + + if sr >= 4: + params.append(('pos_1', 'SP')) + else: + params.append(('pos_1', 'RP')) + if cr is not None: + params.append(('pos_2', 'CP')) + + logging.info(f'Player: {player["p_name"]}, positions: {params}') + await db_patch('players', object_id=player['player_id'], params=params) + + + +if __name__ == '__main__': + asyncio.run(main(sys.argv[1:])) \ No newline at end of file