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))
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))
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()