def refresh_container_friends(self, container_user): ''' gets container friends via REST API and saves to data store ''' #container_user.friend_ids = self.get_friend_ids_v08(container_user.container_user_id) logging.info('in load container friends, id is %s' % container_user.container_user_id) friends = self.get_friends_v08(container_user.container_user_id) logging.info('friends: %s' % friends) user_friends = set(container_user.friend_ids) simple_users = {} friend_keys = set() for friend in friends['Friends']: domain = 'myspace.com' user_id = str(friend['userId']) user_key = domain + ":" + user_id; user = Container_user.get_by_key_name(user_key) if user == None: logging.debug('user not found at friend %s' % friend) logging.debug('user not found at userid %s' % user_id) #raise Exception('no user? wtf?') user = Container_user(key_name = user_key, display_name = self.make_safe(friend['name']), container_user_id = user_id, domain = domain, profile_url = db.Link(friend['webUri']), profile_image_url = db.Link(friend['largeImage']), character = None) else: if user.character: friend_keys.add(user.character.key()) user.ip_address = "1.2.3.4" if friend.has_key('hasAppInstalled'): user.has_app = friend['hasAppInstalled'] else: user.has_app = False user.friend_ids = [] user.put() user_friends.add(user.container_user_id) simple_user = {} simple_user['user_id'] = user.container_user_id simple_user['domain'] = user.domain simple_user['display_name'] = user.display_name simple_user['has_app'] = user.has_app simple_users[user.container_user_id] = simple_user container_user.friend_ids = list(user_friends) container_user.friend_count = len(user_friends) container_user.put() if container_user.character: container_user.character.friend_count = len(friend_keys) container_user.character.friend_keys = list(friend_keys) container_user.character.put() # todo: popuplate character friends logging.debug('exit container friends') return simple_users #for json serialization
if viewer_info: if 'display_name' in viewer_info and container_user.display_name != viewer_info['display_name']: container_user.display_name = viewer_info['display_name'] if 'profile_image_url' in viewer_info and container_user.profile_image_url != viewer_info['profile_image_url']: container_user.profile_image_url = viewer_info['profile_image_url'] if 'profile_url' in viewer_info and container_user.profile_url != viewer_info['profile_url']: container_user.profile_url = viewer_info['profile_url'] else: #associate container user with pyramid user logging.info('no container user found, creating one') if viewer_info: container_user = Container_user(key_name = container_user_key, container_user_id = viewer_info['container_user_id'], character = None, domain = viewer_info['domain'], display_name = viewer_info['display_name'], profile_url = viewer_info['profile_url'], profile_image_url = viewer_info['profile_image_url'], ip_address = "1.2.3.4", link_date = datetime.now(), first_install_date = datetime.now(), first_use_date = datetime.now(), last_install_date = datetime.now(), last_use_date = datetime.now(), has_app = True) container_user.put() else: logging.info('no viewer info') return container_user
if 'profile_image_url' in viewer_info and container_user.profile_image_url != viewer_info[ 'profile_image_url']: container_user.profile_image_url = viewer_info[ 'profile_image_url'] if 'profile_url' in viewer_info and container_user.profile_url != viewer_info[ 'profile_url']: container_user.profile_url = viewer_info['profile_url'] else: #associate container user with pyramid user logging.info('no container user found, creating one') if viewer_info: container_user = Container_user( key_name=container_user_key, container_user_id=viewer_info['container_user_id'], character=None, domain=viewer_info['domain'], display_name=viewer_info['display_name'], profile_url=viewer_info['profile_url'], profile_image_url=viewer_info['profile_image_url'], ip_address="1.2.3.4", link_date=datetime.now(), first_install_date=datetime.now(), first_use_date=datetime.now(), last_install_date=datetime.now(), last_use_date=datetime.now(), has_app=True) container_user.put() else: logging.info('no viewer info') return container_user
def refresh_container_friends(self, container_user): ''' gets container friends via REST API and saves to data store ''' #container_user.friend_ids = self.get_friend_ids_v08(container_user.container_user_id) logging.info('in load container friends, id is %s' % container_user.container_user_id) friends = self.get_friends_v08(container_user.container_user_id) logging.info('friends: %s' % friends) user_friends = set(container_user.friend_ids) simple_users = {} friend_keys = set() for friend in friends['Friends']: domain = 'myspace.com' user_id = str(friend['userId']) user_key = domain + ":" + user_id user = Container_user.get_by_key_name(user_key) if user == None: logging.debug('user not found at friend %s' % friend) logging.debug('user not found at userid %s' % user_id) #raise Exception('no user? wtf?') user = Container_user( key_name=user_key, display_name=self.make_safe(friend['name']), container_user_id=user_id, domain=domain, profile_url=db.Link(friend['webUri']), profile_image_url=db.Link(friend['largeImage']), character=None) else: if user.character: friend_keys.add(user.character.key()) user.ip_address = "1.2.3.4" if friend.has_key('hasAppInstalled'): user.has_app = friend['hasAppInstalled'] else: user.has_app = False user.friend_ids = [] user.put() user_friends.add(user.container_user_id) simple_user = {} simple_user['user_id'] = user.container_user_id simple_user['domain'] = user.domain simple_user['display_name'] = user.display_name simple_user['has_app'] = user.has_app simple_users[user.container_user_id] = simple_user container_user.friend_ids = list(user_friends) container_user.friend_count = len(user_friends) container_user.put() if container_user.character: container_user.character.friend_count = len(friend_keys) container_user.character.friend_keys = list(friend_keys) container_user.character.put() # todo: popuplate character friends logging.debug('exit container friends') return simple_users #for json serialization