Beispiel #1
0
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/')
Beispiel #2
0
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)
Beispiel #3
0
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/')
Beispiel #4
0
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)