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