summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <yuv.adm@gmail.com>2014-01-24 15:41:34 +0100
committerYuval Adam <yuv.adm@gmail.com>2014-01-24 15:41:34 +0100
commit920b3d9d6731ac66bc8abb682cf932cd7568eb5d (patch)
tree496b2647bfe2b1e01ae9ed9f009ddb0aca602fff
parent1fb5a63e8ef5ee7441a48dfe823bdc09d04d23d0 (diff)
Add parsing tasks
-rw-r--r--newsdiff/core/parsers/base.py3
-rw-r--r--newsdiff/core/tasks.py15
-rw-r--r--newsdiff/settings/base.py4
3 files changed, 20 insertions, 2 deletions
diff --git a/newsdiff/core/parsers/base.py b/newsdiff/core/parsers/base.py
index 7270ed9..dae2949 100644
--- a/newsdiff/core/parsers/base.py
+++ b/newsdiff/core/parsers/base.py
@@ -20,8 +20,7 @@ class HtmlSoupParser(object):
def process_homepage(self):
soup = self.get_page(self.HOMEPAGE_URL)
articles = self.parse_homepage(soup)
- for article_url in articles:
- self.process_article(article_url)
+ return articles
def process_article(self, url):
soup = self.get_page(url)
diff --git a/newsdiff/core/tasks.py b/newsdiff/core/tasks.py
index 223aea5..34e12ac 100644
--- a/newsdiff/core/tasks.py
+++ b/newsdiff/core/tasks.py
@@ -1 +1,16 @@
+import logging
+
from newsdiff.celery import app
+from newsdiff.core.parsers.haaretz import HaaretzParser
+
+@app.task()
+def process_haaretz_homepage():
+ hp = HaaretzParser()
+ articles = hp.process_homepage()
+ for article_url in articles:
+ process_haaretz_article.delay(article_url)
+
+@app.task(rate_limit='12/m')
+def process_haaretz_article(url):
+ hp = HaaretzParser()
+ hp.process_article(url)
diff --git a/newsdiff/settings/base.py b/newsdiff/settings/base.py
index 493384f..6c3f7ad 100644
--- a/newsdiff/settings/base.py
+++ b/newsdiff/settings/base.py
@@ -132,4 +132,8 @@ CELERYBEAT_SCHEDULE = {
'task': 'newsdiff.rain.tasks.import_rain_radar_image',
'schedule': timedelta(minutes=10)
},
+ 'haaretz_homepage': {
+ 'task': 'newsdiff.core.tasks.process_haaretz_homepage',
+ 'schedule': timedelta(minutes=15)
+ }
}