Example #1
0
File: run.py Project: dngl0/py-nhl
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))
Example #2
0
File: run.py Project: dngl0/py-nhl
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))