diff --git a/apps/push/models.py b/apps/push/models.py index ec98e6e1e..8462e9788 100644 --- a/apps/push/models.py +++ b/apps/push/models.py @@ -116,8 +116,10 @@ class PushSubscription(models.Model): hub_url = self.hub self_url = self.topic for link in parsed.feed.links: - if 'wp-admin' in link['href']: + href = link.get('href', '') + if any(w in href for w in ['wp-admin', 'wp-cron']): continue + if link['rel'] == 'hub': hub_url = link['href'] elif link['rel'] == 'self': diff --git a/apps/push/views.py b/apps/push/views.py index 3f1aca49a..9d26d1d20 100644 --- a/apps/push/views.py +++ b/apps/push/views.py @@ -31,12 +31,14 @@ def push_callback(request, push_id): return HttpResponse(challenge, content_type='text/plain') elif request.method == 'POST': subscription = get_object_or_404(PushSubscription, pk=push_id) + # XXX TODO: Optimize this by removing feedparser. It just needs to find out + # the hub_url or topic has changed. ElementTree could do it. parsed = feedparser.parse(request.raw_post_data) subscription.check_urls_against_pushed_data(parsed) updated.send(sender=subscription, update=parsed) - # subscription.feed.queue_pushed_feed_xml(request.raw_post_data) # Don't give fat ping, just fetch. + # subscription.feed.queue_pushed_feed_xml(request.raw_post_data) subscription.feed.queue_pushed_feed_xml("Fetch me") return HttpResponse('') diff --git a/config/hosts b/config/hosts index 208abe60d..72fcf07d8 100644 --- a/config/hosts +++ b/config/hosts @@ -2,6 +2,8 @@ 199.15.250.228 app01 app01.newsblur.com 199.15.250.229 app02 app02.newsblur.com +199.15.252.156 app03 app03.newsblur.com +199.15.252.156 dev dev.newsblur.com 199.15.253.218 db01 db01.newsblur.com 199.15.252.50 db02 db02.newsblur.com 199.15.253.226 db03 db03.newsblur.com diff --git a/fabfile.py b/fabfile.py index 09a12af96..49df17543 100644 --- a/fabfile.py +++ b/fabfile.py @@ -31,14 +31,19 @@ env.VENDOR_PATH = "~/projects/code" env.user = 'sclay' env.roledefs ={ 'local': ['localhost'], - 'app': ['app01.newsblur.com', 'app02.newsblur.com'], - 'web': ['www.newsblur.com', 'app02.newsblur.com'], - 'db': ['db01.newsblur.com', 'db02.newsblur.com', 'db03.newsblur.com'], + 'app': ['app01.newsblur.com', + 'app02.newsblur.com'], + 'dev': ['dev.newsblur.com'], + 'web': ['www.newsblur.com', + 'app02.newsblur.com'], + 'db': ['db01.newsblur.com', + 'db02.newsblur.com', + 'db03.newsblur.com', + 'db04.newsblur.com'], 'task': ['task01.newsblur.com', 'task02.newsblur.com', 'task03.newsblur.com', - 'task04.newsblur.com', - ], + 'task04.newsblur.com'], } # ================ @@ -52,6 +57,10 @@ def server(): def app(): server() env.roles = ['app'] + +def dev(): + server() + env.roles = ['dev'] def web(): server()