예제 #1
0
파일: love_feed.py 프로젝트: atefzed/Feedly
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
예제 #2
0
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
예제 #3
0
파일: love_feed.py 프로젝트: atefzed/Feedly
    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
예제 #4
0
    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
예제 #5
0
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