コード例 #1
0
def dashboard(request):
    dbsession = DBSession()
    settings = request.registry.settings
    cookie = facebook.get_user_from_cookie(request.cookies,
                                           settings['facebook.app.id'],
                                           settings['facebook.app.secret'])
    if cookie:
        graph = _get_graph(cookie['access_token'])
        profile = graph.get_object('me')
        fb_id = profile['id']
        user = dbsession.query(User).filter(User.fb_id == fb_id).first()
        if not user:
            user = User(
                fb_id, cookie['access_token'], profile['updated_time'],
                profile['name'], 'gender' in profile and profile['gender']
                or None, 'location' in profile and profile['location']['name']
                or None, _get_lifescore(profile))
            dbsession.add(user)
            dbsession.commit()
            return dict(profile=profile,
                        score=user.score,
                        friends_id=_get_friends_id(graph).encode(
                            'ascii', 'ignore'),
                        world_rank=_get_world_rank()[0:20])
        elif user.fb_access_token != cookie['access_token']:
            user.fb_access_token = cookie['access_token']
            if user.fb_updated_time != profile['update_time']:
                user.score = _get_lifescore(profile)
            dbsession.merge(user)
            dbsession.commit()

        try:
            debug = request.GET['debug']
            return dict(profile=profile,
                        score=user.score,
                        friends_id=_get_friends_id(graph).encode(
                            'ascii', 'ignore'),
                        world_rank=_get_world_rank()[0:20])
        except KeyError:
            pass

        return dict(profile=profile,
                    score=user.score,
                    friends_rank=_get_friends(user)[0:20],
                    world_rank=_get_world_rank()[0:20])
    else:
        return HTTPFound(location=route_url('home', request))
コード例 #2
0
ファイル: views.py プロジェクト: benzheren/lifescore
def dashboard(request):
    dbsession = DBSession()
    settings = request.registry.settings
    cookie = facebook.get_user_from_cookie(request.cookies,
                                           settings['facebook.app.id'],
                                           settings['facebook.app.secret'])
    if cookie:
        graph = _get_graph(cookie['access_token'])
        profile = graph.get_object('me')
        fb_id = profile['id']
        user = dbsession.query(User).filter(User.fb_id==fb_id).first()
        if not user:
            user = User(fb_id, cookie['access_token'], profile['updated_time'], 
                       profile['name'], 'gender' in profile and
                        profile['gender'] or None, 'location' in profile and
                        profile['location']['name'] or None, 
                        _get_lifescore(profile))
            dbsession.add(user)
            dbsession.commit()
            return dict(profile=profile, score=user.score,
                        friends_id=_get_friends_id(graph).encode('ascii','ignore'),
                        world_rank=_get_world_rank()[0:20])
        elif user.fb_access_token != cookie['access_token']:
            user.fb_access_token = cookie['access_token']
            if user.fb_updated_time != profile['update_time']:
                user.score = _get_lifescore(profile)
            dbsession.merge(user)
            dbsession.commit()

        try:
            debug = request.GET['debug']
            return dict(profile=profile, score=user.score,
                        friends_id=_get_friends_id(graph).encode('ascii','ignore'),
                        world_rank=_get_world_rank()[0:20])
        except KeyError:
            pass
        
        return dict(profile=profile, score=user.score, 
                    friends_rank=_get_friends(user)[0:20], 
                    world_rank=_get_world_rank()[0:20])
    else:
        return HTTPFound(location=route_url('home', request))
コード例 #3
0
 def _addUsersAndFriends(self):
     from lifescore.models import User, Friend
     user_1 = User(1, None, None, 'user_1', None, None, 850)
     user_2 = User(2, None, None, 'user_2', None, None, 840)
     friends_1 = [Friend(i, 'name_%d' % i) for i in range(2, 32)]
     friends_2 = [Friend(i, 'name_%d' % i) for i in range(32, 51)]
     user_1.friends = friends_1
     user_2.friends = friends_2
     self.session.add(user_1)
     self.session.add(user_2)
     self.session.flush()