コード例 #1
0
ファイル: data.py プロジェクト: rieger07/pubg_stat_scraper
def fillOutMatch(SESSION, match, name, id):
    user = SESSION.query(User).filter(User.id == id).filter(
        User.name == name).one()

    d = datetime.strptime(match['started_at'], "%Y-%m-%dT%H:%M:%S%z")

    _m = SESSION.query(Match).filter(Match.user_id==user.id).\
                            filter(Match.user_name==user.name).\
                            filter(Match.date==d).\
                            filter(Match.id==match['match_id']).all()

    #Don't add duplicate data
    if len(_m) > 0:
        #my_print("duplicate data!")
        return True

    participant = match['participant']
    stats = participant['stats']
    combat = stats['combat']

    m = Match()

    m.pubg_id = participant['_id']

    # 2018-01-24T03:10:17+0000

    m.date = d
    m.id = match['match_id']
    m.mode = match['mode']
    m.queue_size = match['queue_size']

    m.rank = stats['rank']
    m.rating_delta = stats['rating_delta']

    m.boosts = combat['boosts']
    m.damage = combat['damage']['damage_dealt']
    m.knocks = combat['dbno']['knock_downs']
    m.revives = combat['dbno']['revives']
    m.death_type = combat['death_type']

    m.ride_distance = combat['distance_traveled']['ride_distance']
    m.walk_distance = combat['distance_traveled']['walk_distance']
    m.distance_traveled = m.ride_distance + m.walk_distance

    m.heals = combat['heals']

    m.assists = combat['kda']['assists']
    m.headshot_kills = combat['kda']['headshot_kills']
    m.kill_steaks = combat['kda']['kill_steaks']
    m.kills = combat['kda']['kills']
    m.longest_kill = combat['kda']['longest_kill']
    m.road_kills = combat['kda']['road_kills']
    m.team_kills = combat['kda']['team_kills']
    m.kda = m.kills + m.assists

    m.kill_place = combat['kill_place']
    m.most_damage = combat['most_damage']
    m.time_survived = combat['time_survived']
    m.vehicle_destroys = combat['vehicle_destroys']
    m.weapon_acquired = combat['weapon_acquired']
    m.win_place = combat['win_place']

    m.user_id = user.id
    m.user_name = user.name

    m.user.append(user)

    user.matches.append(m)

    SESSION.add(m)
    return False