def convert_activities_to_loves(activities): ''' Turns our activities into loves ''' from entity.models import Love from entity.cache_objects import entity_cache user_ids = [a.actor_id for a in activities] entity_ids = [a.extra_context['entity_id'] for a in activities] user_dict = User.objects.get_cached_users(user_ids) entity_dict = entity_cache[entity_ids] loves = [] def complete(activity): missing = dict() actor = user_dict.get(activity.actor_id, missing) entity_id = activity.extra_context.get('entity_id') entity = entity_dict.get(entity_id, missing) return actor is not missing and entity is not missing for activity in filter(complete, activities): activity.actor = user_dict[activity.actor_id] entity_id = activity.extra_context['entity_id'] activity.entity = entity_dict[entity_id] love = Love( id=activity.object_id, user_id=activity.actor_id, entity_id=entity_id, created_at=activity.time ) love.activity = activity loves.append(love) return loves
def convert_activities_to_loves(activities): ''' Turns our activities into loves ''' from entity.models import Love from entity.cache_objects import entity_cache user_ids = [a.actor_id for a in activities] entity_ids = [a.extra_context['entity_id'] for a in activities] user_dict = User.objects.get_cached_users(user_ids) entity_dict = entity_cache[entity_ids] loves = [] def complete(activity): missing = dict() actor = user_dict.get(activity.actor_id, missing) entity_id = activity.extra_context.get('entity_id') entity = entity_dict.get(entity_id, missing) return actor is not missing and entity is not missing for activity in filter(complete, activities): activity.actor = user_dict[activity.actor_id] entity_id = activity.extra_context['entity_id'] activity.entity = entity_dict[entity_id] love = Love(id=activity.object_id, user_id=activity.actor_id, entity_id=entity_id, created_at=activity.time) love.activity = activity loves.append(love) return loves
def get_many_from_database(self, missing_keys): ''' Return a dictionary with the serialized values for the missing keys ''' database_results = {} if missing_keys: from entity.models import Love ids = [k.split(',') for k in missing_keys] love_ids = [int(love_id) for verb_id, love_id in ids] values = Love.objects.filter(id__in=love_ids).values_list( 'id', 'user_id', 'created_at', 'entity_id', 'influencer_id') for value_tuple in values: love_id = int(value_tuple[0]) user_id, created_at, entity_id, influencer_id = value_tuple[1:] # influencer_id can sometimes be none if influencer_id: influencer_id = int(influencer_id) love = Love(user_id=int(user_id), created_at=created_at, entity_id=entity_id, id=love_id, influencer_id=influencer_id) activity = love.create_activity() serializer = LoveActivitySerializer() serialized_activity = serializer.dumps(activity) key = ','.join(map(str, [LoveVerb.id, love_id])) database_results[key] = serialized_activity return database_results
def convert_activities_to_loves(activities): ''' Turns our activities into loves ''' from entity.models import Love user_ids = [a.actor_id for a in activities] entity_ids = [a.extra_context['entity_id'] for a in activities] user_dict = User.objects.get_cached_users(user_ids) entity_dict = entity_cache[entity_ids] loves = [] for activity in activities: activity.actor = user_dict[activity.actor_id] entity_id = activity.extra_context['entity_id'] activity.entity = entity_dict[entity_id] love = Love( id=activity.object_id, user_id=activity.actor_id, entity_id=entity_id, created_at=activity.time ) love.activity = activity loves.append(love) return loves