예제 #1
0
def connect_signals():
    """Подключает обработчики сигналов, связанных с рассылками
    оповещений.

    :return:
    """

    def unsubscribe_failed(*args, **kwargs):
        messages.error(kwargs['request'], 'К сожалению, отменить подписку не удалось.', 'danger error')
    sig_unsubscribe_failed.connect(unsubscribe_failed, weak=False)

    def unsubscribe_success(*args, **kwargs):
        messages.success(kwargs['request'], 'Подписка успешно отменена. Спасибо, что читали!', 'success')
    sig_unsubscribe_success.connect(unsubscribe_success, weak=False)

    # Новый материал.
    notify_handler = lambda sender, **kwargs: PythonzEmailNewEntity.create(kwargs['entity'])
    sig_entity_new.connect(notify_handler, dispatch_uid='cfg_new_entity', weak=False)

    # Поиск без результатов.
    notify_handler = (
        lambda sender, **kwargs: PythonzEmailOneliner.create('Поиск без результатов', kwargs['search_term']))
    sig_search_failed.connect(notify_handler, dispatch_uid='cfg_search_failed', weak=False)

    # Ошибка интеграции со сторонними сервисами.
    notify_handler = (
        lambda sender, **kwargs: PythonzEmailOneliner.create('Ошибка интеграции', kwargs['description']))
    sig_integration_failed.connect(notify_handler, dispatch_uid='cfg_integration_failed', weak=False)

    if settings.DEBUG:  # На всякий случай, чем чёрт не шутит.
        return False

    notify_handler = lambda sender, **kwargs: PythonzTwitterMessage.create(kwargs['entity'])
    sig_entity_published.connect(notify_handler, dispatch_uid='cfg_entity_published', weak=False)
예제 #2
0
def connect_signals():
    """Подключает обработчики сигналов, связанных с рассылками оповещений."""
    def unsubscribe_failed(*args, **kwargs):
        messages.error(kwargs['request'],
                       'К сожалению, отменить подписку не удалось.',
                       'danger error')

    sig_unsubscribe_failed.connect(unsubscribe_failed, weak=False)

    def unsubscribe_success(*args, **kwargs):
        messages.success(kwargs['request'],
                         'Подписка успешно отменена. Спасибо, что читали!',
                         'success')

    sig_unsubscribe_success.connect(unsubscribe_success, weak=False)

    # Новый материал.
    notify_handler = lambda sender, **kwargs: PythonzEmailNewEntity.create(
        kwargs['entity'])
    sig_entity_new.connect(notify_handler,
                           dispatch_uid='cfg_new_entity',
                           weak=False)

    # Ошибка интеграции со сторонними сервисами.
    notify_handler = (lambda sender, **kwargs: PythonzEmailOneliner.create(
        'Ошибка интеграции', kwargs['description']))
    sig_integration_failed.connect(notify_handler,
                                   dispatch_uid='cfg_integration_failed',
                                   weak=False)

    # Сообщение в Телеграм.
    notify_handler = lambda sender, **kwargs: PythonzTelegramMessage.create(
        kwargs['text'])
    sig_send_generic_telegram.connect(notify_handler,
                                      dispatch_uid='cfg_telegram_generic',
                                      weak=False)

    # Материал опубликован.
    def notify_published(sender, **kwargs):

        entity = kwargs['entity']

        if not entity.notify_on_publish:
            return False

        try:
            PythonzTwitterMessage.create_published(entity)
            PythonzTelegramMessage.create_published(entity)
            PythonzFacebookMessage.create_published(entity)
            PythonzVkontakteMessage.create_published(entity)

        except UnknownMessengerError:
            # В режиме разработки рассльные могут быть не сконфигурированы.

            if settings.IN_PRODUCTION:
                raise

    sig_entity_published.connect(notify_published,
                                 dispatch_uid='cfg_entity_published',
                                 weak=False)
예제 #3
0
def connect_signals():
    """Подключает обработчики сигналов, связанных с рассылками
    оповещений.

    :return:
    """
    def unsubscribe_failed(*args, **kwargs):
        messages.error(kwargs['request'],
                       'К сожалению, отменить подписку не удалось.',
                       'danger error')

    sig_unsubscribe_failed.connect(unsubscribe_failed, weak=False)

    def unsubscribe_success(*args, **kwargs):
        messages.success(kwargs['request'],
                         'Подписка успешно отменена. Спасибо, что читали!',
                         'success')

    sig_unsubscribe_success.connect(unsubscribe_success, weak=False)

    notify_handler = lambda sender, **kwargs: PythonzEmailNewEntity.create(
        kwargs['entity'])
    sig_entity_new.connect(notify_handler,
                           dispatch_uid='cfg_new_entity',
                           weak=False)

    if settings.DEBUG:  # На всякий случай, чем чёрт не шутит.
        return False

    notify_handler = lambda sender, **kwargs: PythonzTwitterMessage.create(
        kwargs['entity'])
    sig_entity_published.connect(notify_handler,
                                 dispatch_uid='cfg_entity_published',
                                 weak=False)
예제 #4
0
def connect_signals():
    """Подключает обработчики сигналов, связанных с рассылками
    оповещений.

    :return:
    """

    def unsubscribe_failed(*args, **kwargs):
        messages.error(kwargs['request'], 'К сожалению, отменить подписку не удалось.', 'danger error')
    sig_unsubscribe_failed.connect(unsubscribe_failed, weak=False)

    def unsubscribe_success(*args, **kwargs):
        messages.success(kwargs['request'], 'Подписка успешно отменена. Спасибо, что читали!', 'success')
    sig_unsubscribe_success.connect(unsubscribe_success, weak=False)

    # Новый материал.
    notify_handler = lambda sender, **kwargs: PythonzEmailNewEntity.create(kwargs['entity'])
    sig_entity_new.connect(notify_handler, dispatch_uid='cfg_new_entity', weak=False)

    # Поиск без результатов.
    notify_handler = (
        lambda sender, **kwargs: PythonzEmailOneliner.create('Поиск без результатов', kwargs['search_term']))
    sig_search_failed.connect(notify_handler, dispatch_uid='cfg_search_failed', weak=False)

    # Ошибка интеграции со сторонними сервисами.
    notify_handler = (
        lambda sender, **kwargs: PythonzEmailOneliner.create('Ошибка интеграции', kwargs['description']))
    sig_integration_failed.connect(notify_handler, dispatch_uid='cfg_integration_failed', weak=False)

    # Сообщение в Телеграм.
    notify_handler = lambda sender, **kwargs: PythonzTelegramMessage.create(kwargs['text'])
    sig_send_generic_telegram.connect(notify_handler, dispatch_uid='cfg_telegram_generic', weak=False)

    # Материал опубликован.
    def notify_published(sender, **kwargs):
        entity = kwargs['entity']
        if not entity.notify_on_publish:
            return False

        try:
            PythonzTwitterMessage.create_published(entity)
            PythonzTelegramMessage.create_published(entity)
            PythonzFacebookMessage.create_published(entity)
            PythonzVkontakteMessage.create_published(entity)

        except UnknownMessengerError:
            # В режиме разработки рассльные могут быть не сконфигурированы.

            if settings.IN_PRODUCTION:
                raise

    sig_entity_published.connect(notify_published, dispatch_uid='cfg_entity_published', weak=False)
예제 #5
0
def connect_signals():
    """Подключает обработчики сигналов, связанных с рассылками
    оповещений.

    :return:
    """
    def unsubscribe_failed(*args, **kwargs):
        messages.error(kwargs['request'],
                       'К сожалению, отменить подписку не удалось.',
                       'danger error')

    sig_unsubscribe_failed.connect(unsubscribe_failed, weak=False)

    def unsubscribe_success(*args, **kwargs):
        messages.success(kwargs['request'],
                         'Подписка успешно отменена. Спасибо, что читали!',
                         'success')

    sig_unsubscribe_success.connect(unsubscribe_success, weak=False)

    # Новый материал.
    notify_handler = lambda sender, **kwargs: PythonzEmailNewEntity.create(
        kwargs['entity'])
    sig_entity_new.connect(notify_handler,
                           dispatch_uid='cfg_new_entity',
                           weak=False)

    # Поиск без результатов.
    notify_handler = (lambda sender, **kwargs: PythonzEmailOneliner.create(
        'Поиск без результатов', kwargs['search_term']))
    sig_search_failed.connect(notify_handler,
                              dispatch_uid='cfg_search_failed',
                              weak=False)

    # Ошибка интеграции со сторонними сервисами.
    notify_handler = (lambda sender, **kwargs: PythonzEmailOneliner.create(
        'Ошибка интеграции', kwargs['description']))
    sig_integration_failed.connect(notify_handler,
                                   dispatch_uid='cfg_integration_failed',
                                   weak=False)

    if settings.DEBUG:  # На всякий случай, чем чёрт не шутит.
        return False

    notify_handler = lambda sender, **kwargs: PythonzTwitterMessage.create(
        kwargs['entity'])
    sig_entity_published.connect(notify_handler,
                                 dispatch_uid='cfg_entity_published',
                                 weak=False)
예제 #6
0
    def test_unsubscribe(self, setup):
        self.view_name = 'sitemessage_unsubscribe'

        sig_unsubscribe_success.connect(self.catcher_success, weak=False)
        sig_unsubscribe_failed.connect(self.catcher_fail, weak=False)

        self.generic_view_test()

        subscr = Subscription(
            message_cls=self.msg_type, messenger_cls=MessengerForTest.alias, recipient=self.user
        )
        subscr.save()
        assert len(Subscription.objects.all()) == 1

        self.send_request(self.msg_model.id, self.dispatch.id, self.dispatch_hash, self.STATUS_SUCCESS)
        assert len(Subscription.objects.all()) == 0
예제 #7
0
    def test_unsubscribe(self, setup):
        self.view_name = 'sitemessage_unsubscribe'

        sig_unsubscribe_success.connect(self.catcher_success, weak=False)
        sig_unsubscribe_failed.connect(self.catcher_fail, weak=False)

        self.generic_view_test()

        subscr = Subscription(message_cls=self.msg_type,
                              messenger_cls=MessengerForTest.alias,
                              recipient=self.user)
        subscr.save()
        assert len(Subscription.objects.all()) == 1

        self.send_request(self.msg_model.id, self.dispatch.id,
                          self.dispatch_hash, self.STATUS_SUCCESS)
        assert len(Subscription.objects.all()) == 0
예제 #8
0
def connect_signals():
    """Подключает обработчики сигналов, связанных с рассылками
    оповещений.

    :return:
    """

    def unsubscribe_failed(*args, **kwargs):
        messages.error(kwargs['request'], 'К сожалению, отменить подписку не удалось.', 'danger error')
    sig_unsubscribe_failed.connect(unsubscribe_failed, weak=False)

    def unsubscribe_success(*args, **kwargs):
        messages.success(kwargs['request'], 'Подписка успешно отменена. Спасибо, что читали!', 'success')
    sig_unsubscribe_success.connect(unsubscribe_success, weak=False)

    notify_handler = lambda sender, **kwargs: PythonzEmailNewEntity.create(kwargs['entity'])
    sig_entity_new.connect(notify_handler, dispatch_uid='cfg_new_entity', weak=False)

    if settings.DEBUG:  # На всякий случай, чем чёрт не шутит.
        return False

    notify_handler = lambda sender, **kwargs: PythonzTwitterMessage.create(kwargs['entity'])
    sig_entity_published.connect(notify_handler, dispatch_uid='cfg_entity_published', weak=False)