diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2013-12-09 00:23:12 +0200 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2013-12-09 00:23:12 +0200 |
| commit | 93fb1da1688ef767c364a4b7e66ad346a925314c (patch) | |
| tree | 90db802824f9cc8bf1b3ee1eb2f8e68a96a01c6b | |
| parent | 47a78fda1269c51ec28dc851946baaf67fa6b869 (diff) | |
Versioning stuff
| -rw-r--r-- | newsdiff/core/admin.py | 10 | ||||
| -rw-r--r-- | newsdiff/core/tasks.py | 37 | ||||
| -rw-r--r-- | newsdiff/settings/base.py | 1 |
3 files changed, 36 insertions, 12 deletions
diff --git a/newsdiff/core/admin.py b/newsdiff/core/admin.py index ab4b576..74b457d 100644 --- a/newsdiff/core/admin.py +++ b/newsdiff/core/admin.py @@ -1,6 +1,14 @@ +import reversion + from django.contrib import admin + from .models import * + +class HaaretzArticleAdmin(reversion.VersionAdmin): + pass + +admin.site.register(HaaretzArticle, HaaretzArticleAdmin) admin.site.register(NewsDiffUser) -admin.site.register(HaaretzArticle) admin.site.register(HaaretzImage) + diff --git a/newsdiff/core/tasks.py b/newsdiff/core/tasks.py index 1a3cf1c..d22de2b 100644 --- a/newsdiff/core/tasks.py +++ b/newsdiff/core/tasks.py @@ -26,16 +26,31 @@ def get_haaretz_article(url): article_body = soup.find('div', id='article-box').find_all('p') article_text = '\n\n'.join([p.text.strip() for p in article_body]) - article = HaaretzArticle(url=url, title=title, subtitle=subtitle, text=article_text, date=article_date) - article.save() + existing_article = HaaretzArticle.objects.get(url=url) + if existing_article: + changed = False + if title != existing_article.title: + existing_article.title = title + changed = True + if subtitle != existing_article.subtitle: + existing_article.subtitle = subtitle + changed = True + if article_text != existing_article.text: + existing_article.text = text + changed = True + if changed: + existing_article.save() + else: + article = HaaretzArticle(url=url, title=title, subtitle=subtitle, text=article_text, date=article_date) + article.save() - images = soup.find('div', id='article-box').find_all('div', class_='inArticleHoldImage') - for image in images: - img = image.find('img') - img_url = 'http://www.haaretz.co.il{}'.format(img['src'].split('_gen')[0]) - caption = img.title + images = soup.find('div', id='article-box').find_all('div', class_='inArticleHoldImage') + for image in images: + img = image.find('img') + img_url = 'http://www.haaretz.co.il{}'.format(img['src'].split('_gen')[0]) + caption = img.title - name, image_file = get_image_from_url(img_url) - article_image = HaaretzImage(article=article, origin_url=url, caption=caption) - article_image.image.save(name, image_file) - article_image.save() + name, image_file = get_image_from_url(img_url) + article_image = HaaretzImage(article=article, origin_url=url, caption=caption) + article_image.image.save(name, image_file) + article_image.save() diff --git a/newsdiff/settings/base.py b/newsdiff/settings/base.py index 75ab332..9f372d4 100644 --- a/newsdiff/settings/base.py +++ b/newsdiff/settings/base.py @@ -83,6 +83,7 @@ INSTALLED_APPS = ( 'south', 'storages', 'celery', + 'reversion', 'newsdiff.core' ) |
