Exemplo n.º 1
0
def home(request):
    from json import dumps
    #d={}
    #t = loader.get_template('base/index.html')
    #c = Context({'d':d})
    #return HttpResponse(t.render(c))
    #return render_to_response("base/index.html", context_instance=RequestContext(request))
    if request.user.is_authenticated():
        user=request.user.get_profile()
        log_activity(user.facebook_id, 'view_home')
        #return render_to_response(request,context_instance=RequestContext(request))
        friends = FacebookUser.objects.filter(user_id=user.user_id)
        likes = FacebookLike.objects.filter(user_id=user.user_id)
        #import pdb; pdb.set_trace()
        
        friends_json = []
        for friend in friends:
            fr = {}
            fr['label'] = friend.name
            fr['id'] = friend.facebook_id
            friends_json.append(fr)
        
        uiconf_rows = UIConfig.objects.filter(user=request.user.id)
        if uiconf_rows:
            uiconf = uiconf_rows[0]
        else:
            uiconf = UIConfig(user=request.user.id)
            uiconf.save()
            
        d={'name':user.facebook_name, 'friends': friends, 'likes':likes, 'friends_json':dumps(friends_json), 'uiconfig':uiconf}
        return render_to_response("base/home.html", d,context_instance=RequestContext(request))
    else:
        return HttpResponse("Sorry problem with authentication.")
Exemplo n.º 2
0
def suggestPeople(request):
    user=request.user.get_profile()
    log_activity(user.facebook_id, 'click_suggest')
    friends = FacebookUser.objects.filter(user_id=user.user_id)
    import random
    #import time
    suggestedfr = random.sample(friends, 5)
    suggestedfr.append(FacebookUser(user_id=None, facebook_id=None, name="More..."))
    #time.sleep(5)
    return render_to_response("recommender/suggestPeople.html", {'friends': suggestedfr})
Exemplo n.º 3
0
def suggestPeople(request):
    user = request.user.get_profile()
    log_activity(user.facebook_id, 'click_suggest')
    friends = FacebookUser.objects.filter(user_id=user.user_id)
    import random
    #import time
    suggestedfr = random.sample(friends, 5)
    suggestedfr.append(
        FacebookUser(user_id=None, facebook_id=None, name="More..."))
    #time.sleep(5)
    return render_to_response("recommender/suggestPeople.html",
                              {'friends': suggestedfr})
Exemplo n.º 4
0
def view_profile(request):
    fbuser = request.user.get_profile()
    log_activity(fbuser.facebook_id, 'view_profile')
    userprofile = UserProfile.objects.get(facebook_id = fbuser.facebook_id)
    #graph = get_facebook_graph(request)
    #config = RecConfig(max_items=5)
    #algo = RecOwnLikes(request.user, graph, config)
    #likes = algo.recommend()
    #print likes
    likes=None
    suggests = Suggestion.objects.filter(source_user=fbuser.facebook_id)
    #print suggests
    #return HttpResponse(likes)
    return render_to_response('base/userprofile.html', {'userprofile':userprofile, 'likes':likes, 'suggests':suggests}, context_instance=RequestContext(request))
Exemplo n.º 5
0
def view_notifications(request):
    curr_uid = request.user.get_profile().facebook_id
    log_activity(curr_uid, 'view_notifications')
    res = Suggestion.objects.filter(target_user=curr_uid)
    notifications = []
    for curr_notify in res:
            curr_entry = {}
            if curr_notify.target_user is not None:
                curr_entry['target_user'] = UserProfile.objects.filter(facebook_id=int(curr_notify.target_user))[0].facebook_name
            if curr_notify.source_user is not None:
                curr_entry['source_user'] = FacebookUser.objects.filter(facebook_id=int(curr_notify.source_user))[0].name
            curr_entry['item_name'] =  FacebookFriendLike.objects.filter(facebook_id=int(curr_notify.item_id))[0].name
            notifications.append(curr_entry)
    return render_to_response('base/notifications.html', {'suggestions':notifications})    
Exemplo n.º 6
0
def view_notifications(request):
    curr_uid = request.user.get_profile().facebook_id
    log_activity(curr_uid, 'view_notifications')
    res = Suggestion.objects.filter(target_user=curr_uid)
    notifications = []
    for curr_notify in res:
        curr_entry = {}
        if curr_notify.target_user is not None:
            curr_entry['target_user'] = UserProfile.objects.filter(
                facebook_id=int(curr_notify.target_user))[0].facebook_name
        if curr_notify.source_user is not None:
            curr_entry['source_user'] = FacebookUser.objects.filter(
                facebook_id=int(curr_notify.source_user))[0].name
        curr_entry['item_name'] = FacebookFriendLike.objects.filter(
            facebook_id=int(curr_notify.item_id))[0].name
        notifications.append(curr_entry)
    return render_to_response('base/notifications.html',
                              {'suggestions': notifications})
Exemplo n.º 7
0
def view_profile(request):
    fbuser = request.user.get_profile()
    log_activity(fbuser.facebook_id, 'view_profile')
    userprofile = UserProfile.objects.get(facebook_id=fbuser.facebook_id)
    #graph = get_facebook_graph(request)
    #config = RecConfig(max_items=5)
    #algo = RecOwnLikes(request.user, graph, config)
    #likes = algo.recommend()
    #print likes
    likes = None
    suggests = Suggestion.objects.filter(source_user=fbuser.facebook_id)
    #print suggests
    #return HttpResponse(likes)
    return render_to_response('base/userprofile.html', {
        'userprofile': userprofile,
        'likes': likes,
        'suggests': suggests
    },
                              context_instance=RequestContext(request))
Exemplo n.º 8
0
def home(request):
    from json import dumps
    #d={}
    #t = loader.get_template('base/index.html')
    #c = Context({'d':d})
    #return HttpResponse(t.render(c))
    #return render_to_response("base/index.html", context_instance=RequestContext(request))
    if request.user.is_authenticated():
        user = request.user.get_profile()
        log_activity(user.facebook_id, 'view_home')
        #return render_to_response(request,context_instance=RequestContext(request))
        friends = FacebookUser.objects.filter(user_id=user.user_id)
        likes = FacebookLike.objects.filter(user_id=user.user_id)
        #import pdb; pdb.set_trace()

        friends_json = []
        for friend in friends:
            fr = {}
            fr['label'] = friend.name
            fr['id'] = friend.facebook_id
            friends_json.append(fr)

        uiconf_rows = UIConfig.objects.filter(user=request.user.id)
        if uiconf_rows:
            uiconf = uiconf_rows[0]
        else:
            uiconf = UIConfig(user=request.user.id)
            uiconf.save()

        d = {
            'name': user.facebook_name,
            'friends': friends,
            'likes': likes,
            'friends_json': dumps(friends_json),
            'uiconfig': uiconf
        }
        return render_to_response("base/home.html",
                                  d,
                                  context_instance=RequestContext(request))
    else:
        return HttpResponse("Sorry problem with authentication.")
Exemplo n.º 9
0
def content(request):
    print "Entering recommender.views.content"
    config = None
    BUFFER_MULTIPLIER = 4
    user = request.user.get_profile()
    max_items = int(request.REQUEST['maxitems'])
    algorithm = request.REQUEST['algorithm']
    postprocess_params = {}
    recency = request.REQUEST['recency']
    postprocess_params['popularity'] = int(request.REQUEST['popularity'])
    postprocess_params['close_friends'] = int(request.REQUEST['closefriends'])
    postprocess_params['trending'] = int(request.REQUEST['trending'])
    postprocess_params['acclaimed'] = int(request.REQUEST['acclaimed'])
    graph = get_facebook_graph(request)
    type_dict = {
        'movie_choose': 'MOVIE',
        'music_choose': 'MUSICIAN/BAND',
        'book_choose': 'BOOK'
    }
    freq = None
    item_category = None
    if algorithm == "queue":
        log_activity(user.facebook_id, 'view_queue')
    else:
        log_activity(user.facebook_id, 'view_recs')
    if 'category' in request.REQUEST:
        item_category = type_dict[request.REQUEST['category']]
    else:
        freq = {}
        try:
            freq['MOVIE'] = int(request.REQUEST['movieseq'])
            freq['TV SHOW'] = int(request.REQUEST['tvshowseq'])
            freq['BOOK'] = int(request.REQUEST['bookseq'])
            freq['MUSICIAN/BAND'] = int(request.REQUEST['musiceq'])
        except:
            #print "Error in converting parameters eq to integers"
            pass

    print freq

    flags = RuntimeFlags.objects.filter(user=request.user.id).filter(
        app_name=settings.POPCORE_APP_NAME)[0]
    tries = 0
    if flags.needs_update:
        while flags.tasks_barrier < RUNTIME_TASKBARRIER and tries < 2:
            #print "waiting"
            time.sleep(3)
            flags = RuntimeFlags.objects.filter(user=request.user.id).filter(
                app_name=settings.POPCORE_APP_NAME)[0]
            tries += 1
        if flags.tasks_barrier < RUNTIME_TASKBARRIER:
            return HttpResponse("Processing your information from Facebook...")

        flags.needs_update = False
        flags.save()

    config = RecConfig(max_items, item_category, BUFFER_MULTIPLIER, freq,
                       recency, postprocess_params)
    if algorithm == "random":
        algo = RecFriendSim(request.user, graph, config, request.session)
    elif algorithm == "queue":
        algo = RecQueue(request.user, graph, config, request.session)

    algo.saveConfig()
    arr = algo.recommend()
    arr = algo.postProcess()
    #friends = FacebookUser.objects.filter(user_id=user.user_id)
    #likes = FacebookLike.objects.filter(user_id=user.user_tionid)
    d = {'name': user.facebook_name, 'items': arr, 'algorithm': algorithm}
    return render_to_response("recommender/content.html",
                              d,
                              context_instance=RequestContext(request))
Exemplo n.º 10
0
        #items = [{"label":'amitaaa', "category":"cat", 'desc':1000}, {"label":'amitiaaaa', "category": 'cat2', 'desc':1000}]
        return HttpResponse(json.dumps(filtered_list))
    return HttpResponse(None)


@csrf_exempt
def showItem(request):
    try:
        fbid = request.REQUEST['id']
        name = request.REQUEST['name']
        category = request.REQUEST['category']
    except KeyError, e:
        return HttpResponse("Bad parameters")
    if request.user.is_authenticated():
        log_activity(request.user.get_profile().facebook_id, 'search_item',
                     name)
    url = "http://www.facebook.com/profile.php?id=" + fbid
    query_results = FacebookConnection.request(fbid)
    #query_results = graph.get(fbid)
    pic_url = None
    if 'cover' in query_results:
        pic_url = query_results['cover']['source']
    elif 'picture' in query_results:
        pic_url = query_results['picture']

    d = {
        'url': url,
        'name': name,
        'pic': pic_url,
        'category': category,
        'item_id': fbid
Exemplo n.º 11
0
def content(request):
    print "Entering recommender.views.content"
    config = None
    BUFFER_MULTIPLIER = 4
    user=request.user.get_profile()
    max_items = int(request.REQUEST['maxitems'])
    algorithm = request.REQUEST['algorithm']
    postprocess_params = {}
    recency = request.REQUEST['recency']
    postprocess_params['popularity'] = int(request.REQUEST['popularity'])
    postprocess_params['close_friends'] = int(request.REQUEST['closefriends'])
    postprocess_params['trending'] = int(request.REQUEST['trending'])
    postprocess_params['acclaimed'] = int(request.REQUEST['acclaimed'])
    graph = get_facebook_graph(request)
    type_dict = {'movie_choose': 'MOVIE', 'music_choose': 'MUSICIAN/BAND', 'book_choose': 'BOOK'}
    freq = None
    item_category = None
    if algorithm == "queue":
        log_activity(user.facebook_id, 'view_queue')
    else:
        log_activity(user.facebook_id, 'view_recs')
    if 'category' in request.REQUEST:
        item_category = type_dict[request.REQUEST['category']]
    else:
        freq = {}
        try:
            freq['MOVIE'] = int(request.REQUEST['movieseq'])
            freq['TV SHOW'] = int(request.REQUEST['tvshowseq'])
            freq['BOOK'] = int(request.REQUEST['bookseq'])
            freq['MUSICIAN/BAND'] = int(request.REQUEST['musiceq'])
        except:
            #print "Error in converting parameters eq to integers"
            pass
    
    print freq
    
    flags = RuntimeFlags.objects.filter(user=request.user.id).filter(app_name=settings.POPCORE_APP_NAME)[0]
    tries = 0
    if flags.needs_update:
        while flags.tasks_barrier < RUNTIME_TASKBARRIER and tries <2:
            #print "waiting"
            time.sleep(3)
            flags = RuntimeFlags.objects.filter(user=request.user.id).filter(app_name=settings.POPCORE_APP_NAME)[0]
            tries += 1
        if flags.tasks_barrier < RUNTIME_TASKBARRIER:
            return HttpResponse("Processing your information from Facebook...")
    
        flags.needs_update = False
        flags.save()       
    
    config = RecConfig(max_items, item_category,BUFFER_MULTIPLIER, freq, recency,postprocess_params)
    if algorithm == "random":
        algo = RecFriendSim(request.user, graph, config, request.session)
    elif algorithm == "queue":
        algo = RecQueue(request.user, graph, config, request.session)
    
    algo.saveConfig()
    arr= algo.recommend()  
    arr = algo.postProcess()          
    #friends = FacebookUser.objects.filter(user_id=user.user_id)
    #likes = FacebookLike.objects.filter(user_id=user.user_tionid)
    d={'name':user.facebook_name, 'items':arr, 'algorithm': algorithm}
    return render_to_response("recommender/content.html", d, context_instance=RequestContext(request))
Exemplo n.º 12
0
                filtered_list.append(item) 
                
        #items = [{"label":'amitaaa', "category":"cat", 'desc':1000}, {"label":'amitiaaaa', "category": 'cat2', 'desc':1000}]
        return HttpResponse(json.dumps(filtered_list))
    return HttpResponse(None)    

@csrf_exempt
def showItem(request):
    try:
        fbid = request.REQUEST['id']
        name = request.REQUEST['name']
        category = request.REQUEST['category']
    except KeyError, e:
        return HttpResponse("Bad parameters")
    if request.user.is_authenticated():    
        log_activity(request.user.get_profile().facebook_id, 'search_item', name)    
    url = "http://www.facebook.com/profile.php?id=" + fbid;
    query_results = FacebookConnection.request(fbid)
    #query_results = graph.get(fbid)
    pic_url = None
    if 'cover' in query_results:
        pic_url = query_results['cover']['source']
    elif 'picture' in query_results:
        pic_url = query_results['picture']
        
    d = {'url': url, 'name':name, 'pic':pic_url, 'category':category, 'item_id':fbid}
    return render_to_response("recommender/showItem.html", d, context_instance=RequestContext(request));

def suggestPeople(request):
    user=request.user.get_profile()
    log_activity(user.facebook_id, 'click_suggest')