Exemple #1
0
def dispatch_action(uid, data, dispatch=True):
    from sequere.backends.redis.connection import manager
    from sequere.models import get_followers

    from . import Timeline, Action

    logger = dispatch_action.get_logger()

    instance = manager.get_from_uid(uid)

    if not instance:
        logger.error('No instance found for uid: %s' % uid)
    else:
        action = Action.from_data(data)

        paginator = Paginator(get_followers(instance), 10)

        logger.info('Dispatch action %s to %s followers' %
                    (action, paginator.count))

        for num_page in paginator.page_range:
            page = paginator.page(num_page)

            for obj, timestamp in page.object_list:
                if action.actor == obj:
                    continue

                timeline = Timeline(obj)
                timeline.save(action, dispatch=dispatch)
Exemple #2
0
def dispatch_action(uid, data, dispatch=True):
    from sequere.backends.redis.connection import manager
    from sequere.models import get_followers

    from . import Timeline, Action

    logger = dispatch_action.get_logger()

    instance = manager.get_from_uid(uid)

    if not instance:
        logger.error('No instance found for uid: %s' % uid)
    else:
        action = Action.from_data(data)

        paginator = Paginator(get_followers(instance), 10)

        logger.info('Dispatch action %s to %s followers' % (action, paginator.count))

        for num_page in paginator.page_range:
            page = paginator.page(num_page)

            for obj, timestamp in page.object_list:
                if action.actor == obj:
                    continue

                timeline = Timeline(obj)
                timeline.save(action, dispatch=dispatch)
Exemple #3
0
def populate_actions(from_uid, to_uid, method):
    from sequere.backends.redis.connection import manager

    from . import Timeline

    from_instance = manager.get_from_uid(from_uid)

    to_instance = manager.get_from_uid(to_uid)

    paginator = Paginator(Timeline(from_instance).get_public(), 10)

    timeline = Timeline(to_instance)

    for num_page in paginator.page_range:
        page = paginator.page(num_page)

        for action in page.object_list:
            getattr(timeline, method)(action, dispatch=False)
Exemple #4
0
def populate_actions(from_uid, to_uid, method, logger=None):
    from sequere.backends.redis.connection import manager

    from . import Timeline

    from_instance = manager.get_from_uid(from_uid)

    to_instance = manager.get_from_uid(to_uid)

    paginator = Paginator(Timeline(from_instance).get_public(), 10)

    timeline = Timeline(to_instance)

    if logger:
        logger.info('Populate (%s) %s with %s items from %s' %
                    (method, to_instance, paginator.count, from_instance))

    for num_page in paginator.page_range:
        page = paginator.page(num_page)

        for action in page.object_list:
            getattr(timeline, method)(action, dispatch=False)
Exemple #5
0
def populate_actions(from_uid, to_uid, method, logger=None):
    from sequere.backends.redis.connection import manager

    from . import Timeline

    from_instance = manager.get_from_uid(from_uid)

    to_instance = manager.get_from_uid(to_uid)

    paginator = Paginator(Timeline(from_instance).get_public(), 10)

    timeline = Timeline(to_instance)

    if logger:
        logger.info('Populate (%s) %s with %s items from %s' % (method,
                                                                to_instance,
                                                                paginator.count,
                                                                from_instance))

    for num_page in paginator.page_range:
        page = paginator.page(num_page)

        for action in page.object_list:
            getattr(timeline, method)(action, dispatch=False)
Exemple #6
0
    def from_data(cls, data):
        verb = data['verb']

        actions = get_actions()

        action_class = actions.get(verb, None)

        if action_class is None:
            raise ActionDoesNotExist('Action %s does not exist' % verb)

        for attr_name in ('actor', 'target', ):
            if data.get(attr_name, None):
                data[attr_name] = backend.get_from_uid(data[attr_name])
            else:
                data[attr_name] = None

        data['date'] = from_timestamp(float(data.pop('timestamp')))

        return action_class(**data)
Exemple #7
0
    def from_data(cls, data):
        verb = data['verb']

        actions = get_actions()

        action_class = actions.get(verb, None)

        if action_class is None:
            raise ActionDoesNotExist('Action %s does not exist' % verb)

        for attr_name in (
                'actor',
                'target',
        ):
            if data.get(attr_name, None):
                data[attr_name] = backend.get_from_uid(data[attr_name])
            else:
                data[attr_name] = None

        data['date'] = from_timestamp(float(data.pop('timestamp')))

        return action_class(**data)