Ejemplo n.º 1
0
 def get(self, id):
     m_user = User.gql('WHERE user_id = :1', id).get()
     query = Friends.gql('WHERE user_id2 = :1', id)
     follower_ids = [item.user_id1 for item in query]
     query = User.gql('WHERE user_id IN :1', follower_ids)
     followers = [item for item in query]
     self.render('user_followers.html',
                 followers = followers,
                 user = m_user,
                 is_friend = self.is_friend(id))
Ejemplo n.º 2
0
 def get(self):
     query = PendingRequest.gql('WHERE receiver_id = :1', self.user.user_id)
     pending_uids = [item.sender_id for item in query]
     query = User.gql('WHERE user_id IN :1', pending_uids) #IN may have a problem exceeding 30
     reqs = [user for user in query]
     self.render('friendrequest.html',
                 reqs = reqs)
Ejemplo n.º 3
0
 def get(self, id):
     m_user = User.gql('WHERE user_id = :1', id).get()
     query = Rating.gql('WHERE user_id = :1 ORDER BY time DESC', id)
     ratings = [rating for rating in query]
     self.render('user_ratings.html',
                 ratings = ratings,
                 user = m_user,
                 is_friend = self.is_friend(id))
Ejemplo n.º 4
0
 def get(self, id):
     m_user = User.gql('WHERE user_id = :1', id).get()
     query = Friends.gql('WHERE user_id1 = :1', id)
     friend_ids = [friend.user_id2 for friend in query]
     CW_friends = []
     for uid in friend_ids:
         f = User.get_by_key_name(uid)
         CW_friends.append(f)
     self.render('user_friends.html',
                 user = m_user,
                 CW_friends = CW_friends,
                 is_friend = self.is_friend(id))
Ejemplo n.º 5
0
 def get(self, id):
     m_user =  User.gql('WHERE user_id = :1', id).get()
     cw_profile = ExUserInfo.gql('WHERE user_id = :1', m_user.user_id).get()
     fb_profile = None
     if m_user.facebook_id:
         fb_profile = FacebookProfile.gql('WHERE facebook_id = :1', m_user.facebook_id).get()
     tw_profile = None
     if m_user.twitter_id:
         tw_profile = TwitterProfile.gql('WHERE twitter_id = :1', m_user.twitter_id).get()
     self.render('user_profile.html',
                 user = m_user,
                 cw_profile = cw_profile,
                 fb_profile = fb_profile,
                 tw_profile = tw_profile,
                 is_friend = self.is_friend(id))
Ejemplo n.º 6
0
    def getTWFriend(self, reload):
        client = memcache.Client()
#        friend_ids = client.get(self.user.user_id+'tw_fids')
        m_friends = TWFriends.gql('WHERE twitter_id = :1', self.user.twitter_id).get()
        friend_ids = m_friends.friends
        cursor = client.get(self.user.user_id+'tw_cursor')
#        if not friend_ids or reload:
        if reload:
#            params = {'user_id':self.user.twitter_id,
#                      'cursor':'-1'}
#            response = call_api.twitter_api('GET', '/1.1/friends/ids.json', params, 
#                                 self.user.tw_access_token, 
#                                 self.user.tw_token_secret)
#            friend_ids = response['ids']
            cursor = 0
#            client.add(self.user.user_id+'tw_fids', friend_ids)
#            client.add(self.user.user_id+'tw_cursor', cursor)
        
        if cursor >= len(friend_ids):
            return ({}, 0, m_friends.num_on_cw)
        if cursor + FRIENDS_EACH_BULK > len(friend_ids):
            next_part = friend_ids[cursor:]
        else:
            next_part = friend_ids[cursor:(cursor + FRIENDS_EACH_BULK)]
        cursor += FRIENDS_EACH_BULK
        
        params = {'user_id':','.join([str(id) for id in next_part])}
        response = call_api.twitter_api('GET', '/1.1/users/lookup.json', params, 
                                        self.user.tw_access_token, 
                                        self.user.tw_token_secret)
        TW_friends = []
        current_cws = 0
        for friend in response:
            tw_friend = {'id':friend['id_str'],
                         'name':friend['name'],
                         'picture':friend['profile_image_url']}
            if friend['id_str'] in friend_ids[:m_friends.num_on_cw]:
                tmpuser = User.gql('WHERE twitter_id = :1', friend['id_str']).get()
                tw_friend['uid'] = tmpuser.user_id
                TW_friends.insert(0, tw_friend)
                current_cws += 1
            else:
                TW_friends.append(tw_friend)
        client.set(self.user.user_id+'tw_cursor', cursor)
        return (TW_friends, current_cws,  m_friends.num_on_cw)
Ejemplo n.º 7
0
    def getFBFriend(self, reload):
        client = memcache.Client()
#        friend_ids = client.get(self.user.user_id+'fb_fids')
        m_friends = FBFriends.gql('WHERE facebook_id = :1', self.user.facebook_id).get()
        friend_ids = m_friends.friends
        cursor = client.get(self.user.user_id+'fb_cursor')
        logging.info('reload:  '+str(reload))
        logging.info('cursor:  '+str(cursor))
#        if not friend_ids or reload:
        if reload:
#            params = {'fields':'friends', 'access_token': self.user.fb_access_token}
#            response = call_api.facebook_api('GET', '/me', params)
#            friend_ids = [friend['id'] for friend in response['friends']['data']]
            cursor = 0
#            client.add(self.user.user_id+'fb_fids', friend_ids)
#            client.add(self.user.user_id+'fb_cursor', cursor)
        
        if cursor >= len(friend_ids):
            return ({}, 0, m_friends.num_on_cw)
            
        if cursor + FRIENDS_EACH_BULK > len(friend_ids):
            next_part = friend_ids[cursor:]
        else:
            next_part = friend_ids[cursor:(cursor + FRIENDS_EACH_BULK)]
        cursor += FRIENDS_EACH_BULK
        
        params = {'ids':','.join([str(id) for id in next_part]), 
                  'fields':'id,name,picture'}
        response = call_api.facebook_api('GET', '/', params)
        FB_friends = []
        current_cws = 0
        for id, friendInfo in response.items():
            fb_friend = {'id':friendInfo['id'], 
                         'name':friendInfo['name'], 
                         'picture':friendInfo['picture']['data']['url']}
            if id in friend_ids[:m_friends.num_on_cw]:
                tmpuser = User.gql('WHERE facebook_id = :1', id).get()
                fb_friend['uid'] = tmpuser.user_id
                FB_friends.insert(0, fb_friend)
                current_cws += 1
            else:
                FB_friends.append(fb_friend)
        client.set(self.user.user_id+'fb_cursor', cursor)
        return (FB_friends, current_cws, m_friends.num_on_cw)
Ejemplo n.º 8
0
def get_picture_by_id(uid):
    user = User.gql('WHERE user_id = :1', uid).get()
    return user.picture
Ejemplo n.º 9
0
def get_name_by_id(id):
    tmpUser = User.gql("WHERE user_id = :1", id).get()
    return tmpUser.realname
Ejemplo n.º 10
0
def get_uid_by_fbid(fbid):
    user = User.gql("WHERE facebook_id = :1", fbid).get()
    return user.user_id
Ejemplo n.º 11
0
def get_picture_by_id(uid):
    user = User.gql("WHERE user_id = :1", uid).get()
    return user.picture