def leaderboard(): scores = QuizBowl.get_scores() sorted_scores = sorted(scores.items(), key=itemgetter(1), reverse=True) num_questions = QuizBowl.num_questions() return flask.render_template('leaderboard.html', scores=sorted_scores, num_questions=num_questions)
def get(self): parser = reqparse.RequestParser() parser.add_argument('api_key', type=str) parser.add_argument('user_id', type=int) args = parser.parse_args() check_auth(args['user_id'], args['api_key']) return jsonify({'question_statuses': QuizBowl.question_statuses(args['user_id'])})
def post(self, question_id, position): """Handle word requests""" print("Question_id: {} Position: {}".format(repr(question_id), repr(position))) user_id = int(request.form['user_id']) api_key = request.form['api_key'] check_auth(user_id, api_key) word = QuizBowl.handle_word_request(user_id, question_id, position) return jsonify({'word': word})
def get(self): parser = reqparse.RequestParser() parser.add_argument('api_key', type=str) parser.add_argument('user_id', type=int) args = parser.parse_args() check_auth(args['user_id'], args['api_key']) return jsonify( {'question_statuses': QuizBowl.question_statuses(args['user_id'])})
def post(self, question_id): """Handle answers""" user_id = int(request.form['user_id']) api_key = request.form['api_key'] guess = request.form['guess'] check_auth(user_id, api_key) answer, correct = QuizBowl.submit_guess(user_id, question_id, guess) return jsonify({'correct': correct, 'answer': answer})
def register(): if 'credentials' not in flask.session: return flask.redirect(flask.url_for('oauth2callback')) credentials = client.OAuth2Credentials.from_json(flask.session['credentials']) if credentials.access_token_expired: return flask.redirect(flask.url_for('oauth2callback')) else: http_auth = credentials.authorize(httplib2.Http()) account_service = discovery.build('oauth2', 'v2', http=http_auth) email = account_service.userinfo().get().execute()['email'] api_key = generate_api_key() user = QuizBowl.create_user(email, api_key) return jsonify(**user)
def register(): if 'credentials' not in flask.session: return flask.redirect(flask.url_for('oauth2callback')) credentials = client.OAuth2Credentials.from_json( flask.session['credentials']) if credentials.access_token_expired: return flask.redirect(flask.url_for('oauth2callback')) else: http_auth = credentials.authorize(httplib2.Http()) account_service = discovery.build('oauth2', 'v2', http=http_auth) email = account_service.userinfo().get().execute()['email'] api_key = generate_api_key() user = QuizBowl.create_user(email, api_key) return jsonify(**user)
def get(self): return jsonify({'count': QuizBowl.num_questions()})
def get(self, question_id): return jsonify({'length': QuizBowl.question_length(question_id)})
def check_auth(user_id, api_key): if not QuizBowl.check_auth(user_id, api_key): abort(401)
def list_questions(): return jsonify(**QuizBowl.list_questions())
from database import QuizBowl if __name__ == "__main__": buzzes = QuizBowl.get_buzzes() with open('data/buzzes.csv', 'w') as f: for ii in sorted(buzzes): val = buzzes[ii] print("%i\t%i\t%i\t%s" % (ii[0], ii[1], val[0], val[1]), file=f)