aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--aggregator/fixtures/initial_data.json10
-rw-r--r--aggregator/management/commands/loadfeeds.py12
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()