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")
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))
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