diff options
-rw-r--r-- | aggregator/fixtures/initial_data.json | 10 | ||||
-rw-r--r-- | aggregator/management/commands/loadfeeds.py | 12 |
2 files changed, 18 insertions, 4 deletions
diff --git a/aggregator/fixtures/initial_data.json b/aggregator/fixtures/initial_data.json index 36e1d3f..eaa1d70 100644 --- a/aggregator/fixtures/initial_data.json +++ b/aggregator/fixtures/initial_data.json @@ -52,5 +52,15 @@ "feed_url": "~ryuslash/feed.atom", "profile_url": "~ryuslash" } + }, + { + "model": "aggregator.Feed", + "pk": 6, + "fields": { + "name": "Github", + "base_url": "http://ryuslash.github.com/", + "feed_url": "atom.xml", + "uses_title": true + } } ] diff --git a/aggregator/management/commands/loadfeeds.py b/aggregator/management/commands/loadfeeds.py index aff1799..04316b3 100644 --- a/aggregator/management/commands/loadfeeds.py +++ b/aggregator/management/commands/loadfeeds.py @@ -14,7 +14,9 @@ class Command(BaseCommand): for feed in feeds: parsed = feedparser.parse(feed.get_feed_url()) - feed.title = parsed.feed.title + + if 'title' in parsed.feed: + feed.title = parsed.feed.title for entry in parsed.entries: if not Post.objects.filter(post_id=entry.id).exists(): @@ -44,7 +46,9 @@ class Command(BaseCommand): post.save() - last_updated = Post.objects.filter(feed=feed)\ - .order_by('-updated')[0].updated - feed.updated = last_updated + if feed.post_set.count() > 0: + last_updated = feed.post_set.order_by('-updated')[0]\ + .updated + feed.updated = last_updated + feed.save() |