def unsubscribe(self, topic, hub=None, **kwargs): if hub is None: hub = get_hub(topic) try: subscription = Subscription.objects.get(topic=topic, hub=hub) except self.model.DoesNotExist: return subscription.send_request(mode='unsubscribe', **kwargs)
def unsubscribe(self, topic, hub=None): if hub is None: hub = get_hub(topic) try: subscription = Subscription.objects.get(topic=topic, hub=hub) except self.model.DoesNotExist: return subscription.send_request(mode='unsubscribe')
def subscribe(self, topic, hub=None, **kwargs): if hub is None: hub = get_hub(topic) subscription, created = self.get_or_create( hub=hub, topic=topic, defaults={'secret': generate_random_string(), } ) if (not created and subscription.verified and not subscription.has_expired()): return subscription subscription.send_request(mode='subscribe', **kwargs) return subscription
def subscribe(self, topic, hub=None, lease_seconds=None): logger.debug(u'Subscription subscribe: %s | %s', topic, hub) if lease_seconds is None: lease_seconds = getattr(settings, 'PUSH_LEASE_SECONDS', None) if hub is None: hub = get_hub(topic) subscription, created = self.get_or_create(hub=hub, topic=topic) if not created: if subscription.verified and not subscription.has_expired(): return subscription if subscription.secret: secret = subscription.secret else: chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)' secret = ''.join([random.choice(chars) for i in range(50)]) params = { 'mode': 'subscribe', 'callback': subscription.callback_url, 'topic': topic, 'verify': ('async', 'sync'), 'verify_token': subscription.generate_token('subscribe'), 'secret': secret, } if lease_seconds is not None: params['lease_seconds'] = lease_seconds # If not present, the lease duration is decided by the hub response = self.subscription_request(hub, params) status = response.code logger.debug(u'Subscription subscribe response: %s', response) if status in (202, 204): # 202: deferred verification logger.debug(u'Subscription subscribe verified!') subscription.verified = True else: error = response.read() logger.debug(u'Subscription subscribe error: %s', error) raise SubscriptionError(u'Subscription error on %s: %s' % (topic, error)) subscription.secret = secret subscription.save() return subscription
def subscribe(self, topic, hub=None): if hub is None: hub = get_hub(topic) subscription, created = self.get_or_create( hub=hub, topic=topic, defaults={'secret': generate_random_string(), } ) if (not created and subscription.verified and not subscription.has_expired()): return subscription subscription.send_request(mode='subscribe') return subscription
def unsubscribe(self, topic, hub=None): if hub is None: hub = get_hub(topic) subscription = Subscription.objects.get(topic=topic, hub=hub) params = { 'mode': 'unsubscribe', 'callback': subscription.callback_url, 'topic': topic, 'verify': ('async', 'sync'), 'verify_token': subscription.generate_token('unsubscribe'), } response = self.subscription_request(hub, params) if not response.code in (202, 204): error = response.read() raise SubscriptionError(u'Unsubscription error on %s: %s' % (topic, error))