From 50e80c72419312530f59d9713b15b61e04ff7ce9 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Fri, 3 Feb 2012 13:02:26 -0800 Subject: [PATCH] Handling duplicate feed saving much more gracefully by finding the correct dupe. --- apps/rss_feeds/models.py | 8 ++++++-- media/js/newsblur/assetmodel.js | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/rss_feeds/models.py b/apps/rss_feeds/models.py index 13362dcba..7aa363311 100644 --- a/apps/rss_feeds/models.py +++ b/apps/rss_feeds/models.py @@ -142,15 +142,19 @@ class Feed(models.Model): super(Feed, self).save(*args, **kwargs) return self except IntegrityError, e: - duplicate_feed = Feed.objects.filter(feed_address=self.feed_address) + duplicate_feed = Feed.objects.filter(feed_address=self.feed_address, feed_link=self.feed_link) logging.debug("%s: %s" % (self.feed_address, duplicate_feed)) logging.debug(' ***> [%-30s] Feed deleted. Could not save: %s' % (unicode(self)[:30], e)) - if duplicate_feed: + if duplicate_feeds: merge_feeds(self.pk, duplicate_feed[0].pk) return duplicate_feed[0] # Feed has been deleted. Just ignore it. return + @classmethod + def merge_feeds(cls, *args, **kwargs): + merge_feeds(*args, **kwargs) + @property def favicon_fetching(self): return bool(not (self.favicon_not_found or self.favicon_color)) diff --git a/media/js/newsblur/assetmodel.js b/media/js/newsblur/assetmodel.js index 8ee938851..4c5331da3 100644 --- a/media/js/newsblur/assetmodel.js +++ b/media/js/newsblur/assetmodel.js @@ -133,7 +133,7 @@ NEWSBLUR.AssetModel.Reader.prototype = { }, null, null, { 'ajax_group': 'queue_clear', 'beforeSend': function() { - self.queued_read_stories[feed_id] = []; + self.queued_read_stories = {}; } }); }