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))
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)
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))
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))
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))
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)
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)
def get_picture_by_id(uid): user = User.gql('WHERE user_id = :1', uid).get() return user.picture
def get_name_by_id(id): tmpUser = User.gql("WHERE user_id = :1", id).get() return tmpUser.realname
def get_uid_by_fbid(fbid): user = User.gql("WHERE facebook_id = :1", fbid).get() return user.user_id
def get_picture_by_id(uid): user = User.gql("WHERE user_id = :1", uid).get() return user.picture