Exemple #1
0
def callback():
    """
    Haetaan providerilta url-parametrien Request Tokenia vastaava Access Token.

    Tälle sivulle ohjataan, kun sovellukselle on myönnetty
    käyttöoikeudet OAuth-providerin sivuilla.
    """
    oauth_token = request.args.get("oauth_token", "")
    oauth_verifier = request.args.get("oauth_verifier", "")

    oauth_token_secret = None
    try:
        oauth_token_secret = session["req_token_secret"]
    except KeyError:
        return "req_token_secretiä ei löydy sessiosta", 503

    assert all(x for x in [oauth_token, oauth_verifier,
               oauth_token_secret])  # TODO

    # Haetaan Access Token:
    resp = fetch_from_api_signed(
        base_url=ACCESS_TOKEN_URL,
        token=oauth_token,
        secret=oauth_token_secret,
        verifier=oauth_verifier)
    if resp.status_code not in [200, 302]:
        return str(resp.status_code)  # TODO

    # Tallennetaan access token & secret sessioon:
    query_params = parse_qs(resp.content)
    session["acc_token"] = query_params["oauth_token"][0]
    session["acc_token_secret"] = query_params["oauth_token_secret"][0]

    # Haetaan käyttäjän seuraamat pelaajan/joukkueet sekä käyttäjänimi:
    followed = get_followed(ids_only=True)
    if not followed:
        time.sleep(2)
        followed = get_followed(ids_only=True)

    session["players"] = followed["players"]
    session["teams"] = followed["teams"]
    session["name"] = followed["name"]
    return redirect("/")
Exemple #2
0
def callback():
    """
    Haetaan providerilta url-parametrien Request Tokenia vastaava Access Token.

    Tälle sivulle ohjataan, kun sovellukselle on myönnetty
    käyttöoikeudet OAuth-providerin sivuilla.
    """
    oauth_token = request.args.get("oauth_token", "")
    oauth_verifier = request.args.get("oauth_verifier", "")

    oauth_token_secret = None
    try:
        oauth_token_secret = session["req_token_secret"]
    except KeyError:
        return "req_token_secretiä ei löydy sessiosta", 503

    assert all(
        x for x in [oauth_token, oauth_verifier, oauth_token_secret])  # TODO

    # Haetaan Access Token:
    resp = fetch_from_api_signed(base_url=ACCESS_TOKEN_URL,
                                 token=oauth_token,
                                 secret=oauth_token_secret,
                                 verifier=oauth_verifier)
    if resp.status_code not in [200, 302]:
        return str(resp.status_code)  # TODO

    # Tallennetaan access token & secret sessioon:
    query_params = parse_qs(resp.content)
    session["acc_token"] = query_params["oauth_token"][0]
    session["acc_token_secret"] = query_params["oauth_token_secret"][0]

    # Haetaan käyttäjän seuraamat pelaajan/joukkueet sekä käyttäjänimi:
    followed = get_followed(ids_only=True)
    if not followed:
        time.sleep(2)
        followed = get_followed(ids_only=True)

    session["players"] = followed["players"]
    session["teams"] = followed["teams"]
    session["name"] = followed["name"]
    return redirect("/")
Exemple #3
0
def index():
    """
    Kirjautuneelle käyttäjälle näytetään "oma sivu", jossa seurattujen
    pelaajien/joukkueiden kauden tilastot sekä uusimpien otteluiden tiedot.

    Kirjautumatonta käyttäjää kehotetaan kirjautumaan sisään.
    """
    if logged_in():
        user_data = get_followed(ids_only=False)
        if not user_data:
            # TODO tähän parempi virheenkäsittely
            return render_template(
                "error.html", e="Jotain mystista tapahtui..")

        # Joukkueet viimeisimmän ottelun mukaan järjestettyyn listaan
        # Lista sisältää vain templatelle olennaisen datan
        teams = []
        for k, v in user_data['teams'].iteritems():
            if v['games'] and v['stats']:
                latest_game = get_latest_game(v['games'])
                stats = v['stats']
                new_team = {
                    'id': k,
                    'stats': v['stats'],
                    'latest_game': get_latest_game(v['games'])}
                teams.append(new_team)
        teams.sort(key=lambda v: v['latest_game']['date'], reverse=True)

        # Samoin pelaajat
        players = []
        for k, v in user_data['players'].iteritems():
            if v['games'] and v['stats']:
                latest_game = get_latest_game(v['games'])
                stats = v['stats']

                new_player = {
                    'id': k,
                    'stats': stats,
                    'latest_game': latest_game}
                players.append(new_player)

        players.sort(key=lambda v: v['latest_game']['date'], reverse=True)

        return render_template("index.html", teams=teams, players=players)
    else:
        return render_template("login.html")