def search(request): #get current user user = request.user result_list = [] #create game avatar avatar = GameAvatar('Search') if request.user.is_authenticated(): avatar.update(user=user) if request.COOKIES.has_key('game_id'): ds = EngineFactory("bing", api_key=BING_API_KEY) gm = GameMechanic(ds) game_id = request.COOKIES.get('game_id') gm.retrieve_game(user, game_id) if request.method == 'GET': query = request.GET['query'].strip() #Augement query #this limits querying to www.gla.ac.uk #query += ' site:gla.ac.uk ' if query: result_list = gm.get_search_results(query,top=10) gm.handle_query(query) gm.update_game() avatar.update(current_game=gm.game) # get the last query score objects = [] for item in result_list: objects.append({"title": item.title, "link": item.url, "summary": item.summary}) json_objects = json.dumps(objects) last_score = gm.get_last_query_score() current_score = gm.get_current_score() msg = avatar.get() if gm.is_game_over(): gm.handle_game_over() Json_results = { "results": json_objects, "score": last_score, "is_game_over": 1, "url_to_find":gm.get_current_page().url, "no_round": gm.get_round_no(), "no_successful_round": gm.get_no_rounds_completed(), "no_of_queries_issued_for_current_page": gm.get_no_of_queries_issued_for_current_page(), "no_remaining_rounds": gm.get_remaining_rounds(), "current_score": current_score, "avatar": msg } else: Json_results = { "results": json_objects, "score": last_score, "is_game_over": 0, "url_to_find":gm.get_current_page().url, "no_round": gm.get_round_no(), "no_successful_round": gm.get_no_rounds_completed(), "no_of_queries_issued_for_current_page": gm.get_no_of_queries_issued_for_current_page(), "no_remaining_rounds": gm.get_remaining_rounds(), "current_score": current_score, "avatar": msg } data = json.dumps(Json_results) return HttpResponse(data, mimetype='application/json') else: # the game has not been created yet # redirect to play view return HttpResponseRedirect('/pagefetch/cat_picker/')
def game_over(request): print 'I am a cookie and I am dying because the game is over' context = RequestContext(request, {}) user = request.user if request.COOKIES.has_key('game_id'): game_id = request.COOKIES.get('game_id') ds = EngineFactory("bing", api_key=BING_API_KEY) gm = GameMechanic(ds) #handle game over when request for this view made by jquery timer gm.retrieve_game(user, game_id) gm.game_over = 1 nac = gm.handle_game_over() gm.retrieve_game(user, game_id) statistics = [] if user.is_authenticated(): user_profile = user.get_profile() user_profile.no_games_played += 1 user_profile.save() statistics.append({ 'score': gm.get_current_score(), 'no_queries': gm.get_no_of_queries_issued(), 'no_successful_queries': gm.get_no_of_successful_queries_issued(), 'category': gm.get_game_category_name(), 'no_round': gm.get_final_round_no(), 'no_successful_round': gm.get_no_rounds_completed() }) response = render_to_response('pagefetch/game_over.html', { 'statistics': statistics, 'nac': nac }, context) response.delete_cookie('game_id') return response else: return render_to_response('pagefetch/game_over.html', context)
def search(request): #get current user user = request.user result_list = [] #create game avatar avatar = GameAvatar('Search') if request.user.is_authenticated(): avatar.update(user=user) if request.COOKIES.has_key('game_id'): ds = EngineFactory("bing", api_key=BING_API_KEY) gm = GameMechanic(ds) game_id = request.COOKIES.get('game_id') gm.retrieve_game(user, game_id) if request.method == 'GET': query = request.GET['query'].strip() #Augement query #this limits querying to www.gla.ac.uk #query += ' site:gla.ac.uk ' if query: result_list = gm.get_search_results(query, top=10) gm.handle_query(query) gm.update_game() avatar.update(current_game=gm.game) # get the last query score objects = [] for item in result_list: objects.append({ "title": item.title, "link": item.url, "summary": item.summary }) json_objects = json.dumps(objects) last_score = gm.get_last_query_score() current_score = gm.get_current_score() msg = avatar.get() if gm.is_game_over(): gm.handle_game_over() Json_results = { "results": json_objects, "score": last_score, "is_game_over": 1, "url_to_find": gm.get_current_page().url, "no_round": gm.get_round_no(), "no_successful_round": gm.get_no_rounds_completed(), "no_of_queries_issued_for_current_page": gm.get_no_of_queries_issued_for_current_page(), "no_remaining_rounds": gm.get_remaining_rounds(), "current_score": current_score, "avatar": msg } else: Json_results = { "results": json_objects, "score": last_score, "is_game_over": 0, "url_to_find": gm.get_current_page().url, "no_round": gm.get_round_no(), "no_successful_round": gm.get_no_rounds_completed(), "no_of_queries_issued_for_current_page": gm.get_no_of_queries_issued_for_current_page(), "no_remaining_rounds": gm.get_remaining_rounds(), "current_score": current_score, "avatar": msg } data = json.dumps(Json_results) return HttpResponse(data, mimetype='application/json') else: # the game has not been created yet # redirect to play view return HttpResponseRedirect('/pagefetch/cat_picker/')
def game_over(request): print 'I am a cookie and I am dying because the game is over' context = RequestContext(request, {}) user = request.user if request.COOKIES.has_key('game_id'): game_id = request.COOKIES.get('game_id') ds = EngineFactory("bing", api_key=BING_API_KEY) gm = GameMechanic(ds) #handle game over when request for this view made by jquery timer gm.retrieve_game(user, game_id) gm.game_over = 1 nac = gm.handle_game_over() gm.retrieve_game(user, game_id) statistics =[] if user.is_authenticated(): user_profile = user.get_profile() user_profile.no_games_played += 1 user_profile.save() statistics.append({'score': gm.get_current_score(), 'no_queries':gm.get_no_of_queries_issued(), 'no_successful_queries': gm.get_no_of_successful_queries_issued(), 'category':gm.get_game_category_name(), 'no_round': gm.get_final_round_no(), 'no_successful_round': gm.get_no_rounds_completed() }) response = render_to_response('pagefetch/game_over.html', {'statistics': statistics, 'nac': nac}, context) response.delete_cookie('game_id') return response else: return render_to_response('pagefetch/game_over.html', context)