def save_box(report): global session, Base, Classes game_id = report.game_id skaterlogs = Classes.gamelogs_skaters goalielogs = Classes.gamelogs_goalies for team, positions in report.logs.items(): for pos, logs in positions.items(): for log in logs: params = { 'season': report.season, 'game_id': report.game_id, 'player_id': log['Player ID'], 'team': team, } if pos == 'G': params['evenstrength_saves'] = log['EV'][0] params['evenstrength_att'] = log['EV'][1] params['powerplay_saves'] = log['PP'][0] params['powerplay_att'] = log['PP'][1] params['shorthanded_saves'] = log['SH'][0] params['shorthanded_att'] = log['SH'][1] params['saves'] = log['Saves - Shots'][0] params['att'] = log['Saves - Shots'][1] if log['Sv%']: params['save_pct'] = log['Sv%'].replace('%', '') else: params['save_pct'] = None params['pim'] = log['PIM'] params['toi'] = parse_time(log['TOI']) real = {key: check(value) for key, value in params.items()} if params['toi'] > 0: session.merge(goalielogs(**real)) elif pos == 'S': params['g'] = log['G'] params['a'] = log['A'] params['p'] = log['P'] params['plusminus'] = log['+/-'] params['shots'] = log['S'] params['hits'] = log['Hits'] params['blocks'] = log['BkS'] params['giveaways'] = log['GvA'] params['takeaways'] = log['TkA'] if log['FO%']: params['faceoff_pct'] = log['FO%'].replace('-', '').replace('%', '') else: params['faceoff_pct'] = None params['pp_toi'] = parse_time(log['PP TOI']) params['sh_toi'] = parse_time(log['SH TOI']) params['toi'] = parse_time(log['TOI']) real = {key: check(value) for key, value in params.items()} session.merge(skaterlogs(**real))
def save_toi(report): global session, Base, Classes logger = logging.getLogger("nhlcom") game_id = report.game_id toi = Classes.games_toi for team, players in report.toi.items(): for player, shifts in players.items(): player_id = get_player_id(player) if not player_id: logger.log(logging.ERROR, 'Cannot find player ID for name %s' % player.upper()) continue for shift in shifts: shift['season'] = report.season shift['game_id'] = report.game_id shift['player_id'] = player_id for key in ['duration', 'end_elapsed', 'end_game', 'start_elapsed', 'start_game']: shift[key] = parse_time(shift[key]) session.merge(toi(**shift))