コード例 #1
0
ファイル: views.py プロジェクト: micahstrube/homerunner
def show_teams():
    """Show menu of teams and players on teams"""
    #if 'credentials' not in flask.session:
    #    return flask.redirect('auth')
    #flask.session['logged_in'] = True
    # Refresh credentials from the session.
    credentials = google.oauth2.credentials.Credentials(
        **flask.session['credentials'])

    picture_url = flask.session['picture_url']

    db = get_db()
    cur = db.execute(
        textwrap.dedent("""\
      select name, team_id, home_runs from players 
      where team_id is not null
      """))
    players = cur.fetchall()
    cur = db.execute('select name, id from teams order by name')
    teams = cur.fetchall()
    cur = db.execute(
        textwrap.dedent("""\
      select teams.id as id,
      teams.name as name,
      SUM(players.home_runs) as score
      from teams inner join players on teams.id=players.team_id
      group by teams.id
      """))
    team_scores = cur.fetchall()

    return flask.render_template('show_teams.html',
                                 picture_url=picture_url,
                                 players=players,
                                 teams=teams,
                                 team_scores=team_scores)
コード例 #2
0
ファイル: views.py プロジェクト: micahstrube/homerunner
def add_player_to_team(team_id):
    """Add player to specified team"""
    flask.session['logged_in'] = True
    # Refresh credentials from the session.
    credentials = google.oauth2.credentials.Credentials(
        **flask.session['credentials'])

    db = get_db()
    cur = db.execute('select id from players where name = ?',
                     [flask.request.form['player_name']])
    player = cur.fetchone()
    if player is not None:
        db.execute('update players set team_id = ? where id = ?',
                   [team_id, player['id']])
        db.commit()
    else:
        db.execute('insert into players (name, team_id) values (?, ?)',
                   [flask.request.form['player_name'], team_id])
        db.commit()
    flask.flash('{player} was successfully added to team {team}'.format(
        player=flask.request.form['player_name'], team=team_id))
    return flask.redirect(
        flask.url_for('team',
                      picture_url=flask.session['picture_url'],
                      team_id=team_id))
コード例 #3
0
ファイル: views.py プロジェクト: micahstrube/homerunner
def show_dashboard():
    """Show dashboard of ranked teams and scores"""
    # If user not logged in, redirect to auth35ddd
    if 'credentials' not in flask.session:
        return flask.redirect('auth')
    flask.session['logged_in'] = True
    # Refresh credentials from the session.
    credentials = google.oauth2.credentials.Credentials(
        **flask.session['credentials'])

    # Save credentials back to session in case access token was refreshed.
    # TODO: In a production app, you likely want to save these
    #       credentials in a persistent database instead.
    flask.session['credentials'] = credentials_to_dict(credentials)

    db = get_db()
    cur = db.execute('select id from teams')
    ranked_teams = cur.fetchall()
    for team in ranked_teams:
        cur = db.execute(
            'select SUM(home_runs) from players where team_id = ?',
            [team['id']])
        score = cur.fetchone()[0]
        db.execute('update teams set score = ? where id = ?',
                   [score, team['id']])
        db.commit()

    cur = db.execute('select name, id, score from teams order by score desc')
    ranked_teams = cur.fetchall()

    return flask.render_template('dashboard.html',
                                 ranked_teams=ranked_teams,
                                 picture_url=flask.session['picture_url'])
コード例 #4
0
ファイル: views.py プロジェクト: micahstrube/homerunner
def add_team():
    """Create new team"""
    db = get_db()
    db.execute('insert into teams (name) values (?)',
               [flask.request.form['team_name']])
    db.commit()
    flask.flash('New team {team} successfully created'.format(
        team=flask.request.form['team_name']))
    return flask.redirect(flask.url_for('show_teams'))
コード例 #5
0
def scraper():
    """Launches the scraper process to continually update the players
    home runs count
    """
    app.logger.info('Starting stats scraper.')
    scrape_interval = app.config['STATS_SCRAPE_INTERVAL']
    app.logger.debug('STATS_SCRAPE_INTERVAL=%s' % scrape_interval)
    db = get_db()
    while True:
        update_player_database(db, get_all_players_home_runs())
        app.logger.info('Retrieved latest player stats and updated database.')
        sleep(scrape_interval)
コード例 #6
0
ファイル: views.py プロジェクト: micahstrube/homerunner
def team(team_id):
    """Page for team details and editing team"""
    if 'credentials' not in flask.session:
        return flask.redirect('auth')
    flask.session['logged_in'] = True
    # Refresh credentials from the session.
    credentials = google.oauth2.credentials.Credentials(
        **flask.session['credentials'])
    db = get_db()
    cur = db.execute('select name, id from teams where id=?', [team_id])
    team = cur.fetchone()
    cur = db.execute(
        'select name, id, home_runs from players where team_id=(?)', [team_id])
    players = cur.fetchall()
    return flask.render_template('team.html',
                                 picture_url=flask.session['picture_url'],
                                 team=team,
                                 players=players)