コード例 #1
0
def main_form():

    if request.form:
        # print(request.form)
        # print(request.form['name'])

        # add new record
        new_data = Roster(
            name=request.form['name'], 
            age=request.form['age']) 
            # joined=request.form['joined'])

        db.session.add(new_data)
        db.session.commit()

        flash('New data was successfully added!')
        return redirect(url_for('index'))

    return render_template("form.html")    
コード例 #2
0
def process_roster(data, match_id, team_id=None, guild_id=None):
    test = db.session.query(Roster).get(data['id'])
    if not test:
        r = Roster(id=data['id'], match_id=match_id,
                   acesEarned=data['attributes']['stats']['acesEarned'],
                   gold=data['attributes']['stats']['gold'],
                   heroKills=data['attributes']['stats']['heroKills'],
                   krakenCaptures=data['attributes']['stats']['krakenCaptures'],
                   side=data['attributes']['stats']['side'],
                   turrentKills=data['attributes']['stats']['turretKills'],
                   turrentsRemaining=data['attributes']['stats']['turretsRemaining'],
                   team_api=data['relationships']['team']['data'])
        if team_id:
            r.team_id = team_id
        if guild_id:
            r.guild_id = guild_id

        db.session.add(r)

        try:
            db.session.commit()
        except SQLAlchemyError as e:
            db.session.rollback()
            app.logger.error('ERROR: Session rollback - reason "%s"' % str(e))
コード例 #3
0
ファイル: schema.py プロジェクト: Shiqan/Ambrosius
def transform(data):
    response = []
    matches = data['data']
    for match in matches:
        telemetry_id = match['relationships']['assets']['data'][0]['id']
        telemetry_data = [
            i for i in data['included'] if i['id'] == telemetry_id
        ][0]
        processed_telemetry_data = TelemetryData(
            telemetry_id=telemetry_data['id'],
            name=telemetry_data['attributes']['name'],
            url=telemetry_data['attributes']['URL'],
            createdAt=datetime.datetime.strptime(
                telemetry_data['attributes']['createdAt'],
                '%Y-%m-%dT%H:%M:%SZ'))
        logging.error(telemetry_data)

        # TODO use api
        events = requests.get(processed_telemetry_data.url).json()
        processed_telemetry = transform_telemetry(events)
        # logging.error(processed_telemetry)

        processed_match = Match(
            match_id=match['id'],
            createdAt=datetime.datetime.strptime(
                match['attributes']['createdAt'], '%Y-%m-%dT%H:%M:%SZ'),
            duration=match['attributes']['duration'],
            gameMode=match['attributes']['gameMode'],
            shardId=match['attributes']['shardId'],
            patchVersion=match['attributes']['patchVersion'],
            endGameReason=match['attributes']['stats']['endGameReason'],
            queue=match['attributes']['stats']['queue'],
            rosters=[],
            telemetry_data=processed_telemetry_data,
            telemetry=processed_telemetry)

        rosters = []
        for roster in match['relationships']['rosters']['data']:
            roster_data = [
                i for i in data['included'] if i['id'] == roster['id']
            ][0]
            processed_roster = Roster(
                roster_id=roster_data['id'],
                aces_earned=roster_data['attributes']['stats']['acesEarned'],
                gold=roster_data['attributes']['stats']['gold'],
                heroKills=roster_data['attributes']['stats']['heroKills'],
                krakenCaptures=roster_data['attributes']['stats']
                ['krakenCaptures'],
                side=roster_data['attributes']['stats']['side'],
                turretKills=roster_data['attributes']['stats']['turretKills'],
                turretsRemaining=roster_data['attributes']['stats']
                ['turretsRemaining'],
                participants=[])

            participants = []
            for participant in roster_data['relationships']['participants'][
                    'data']:
                participant_data = [
                    i for i in data['included'] if i['id'] == participant['id']
                ][0]
                player_data = [
                    i for i in data['included'] if i['id'] ==
                    participant_data['relationships']['player']['data']['id']
                ][0]
                processed_player = transform_player(player_data)

                processed_participant = Participant(
                    participant_id=participant_data['id'],
                    player=processed_player,
                    actor=participant_data['attributes']['actor'],
                    kills=participant_data['attributes']['stats']['kills'],
                    assists=participant_data['attributes']['stats']['assists'],
                    deaths=participant_data['attributes']['stats']['deaths'],
                    crystalMineCaptures=participant_data['attributes']['stats']
                    ['crystalMineCaptures'],
                    goldMindCaptures=participant_data['attributes']['stats']
                    ['crystalMineCaptures'],
                    krakenCaptures=participant_data['attributes']['stats']
                    ['krakenCaptures'],
                    turretCaptures=participant_data['attributes']['stats']
                    ['turretCaptures'],
                    winner=participant_data['attributes']['stats']['winner'],
                    farm=participant_data['attributes']['stats']['farm'],
                    minionKills=participant_data['attributes']['stats']
                    ['minionKills'],
                    nonJungleMinionKills=participant_data['attributes']
                    ['stats']['nonJungleMinionKills'],
                    jungleKills=participant_data['attributes']['stats']
                    ['jungleKills'],
                    firstAfkTime=participant_data['attributes']['stats']
                    ['firstAfkTime'],
                    wentAfk=participant_data['attributes']['stats']['wentAfk'],
                    skinKey=participant_data['attributes']['stats']['skinKey'],
                    karmaLevel=participant_data['attributes']['stats']
                    ['karmaLevel'],
                    level=participant_data['attributes']['stats']['level'],
                    skillTier=participant_data['attributes']['stats']
                    ['skillTier'],
                    itemGrants=[
                        Item(name=i, uses=j)
                        for i, j in participant_data['attributes']['stats']
                        ['itemGrants'].items()
                    ],
                    itemSells=[
                        Item(name=i, uses=j)
                        for i, j in participant_data['attributes']['stats']
                        ['itemSells'].items()
                    ],
                    itemUses=[
                        Item(name=i, uses=j)
                        for i, j in participant_data['attributes']['stats']
                        ['itemUses'].items()
                    ],
                    items=[
                        Item(name=i) for i in participant_data['attributes']
                        ['stats']['items']
                    ],
                )
                participants.append(processed_participant)

            processed_roster.participants = participants
            rosters.append(processed_roster)

        processed_match.rosters = rosters
        response.append(processed_match)
    return response