From cf4bebcd8340a7dc20d8cbd11e74d870d546cee7 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Thu, 4 Apr 2013 17:13:06 -0700 Subject: [PATCH] Fixing feed address change by feed link when colliding with existing feed. --- apps/rss_feeds/models.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/rss_feeds/models.py b/apps/rss_feeds/models.py index ada143959..49a25c905 100644 --- a/apps/rss_feeds/models.py +++ b/apps/rss_feeds/models.py @@ -199,6 +199,9 @@ class Feed(models.Model): logging.debug(" ---> ~FRFeed save collision (%s), checking dupe..." % e) duplicate_feeds = Feed.objects.filter(feed_address=self.feed_address, feed_link=self.feed_link) + if not duplicate_feeds: + hash_address_and_link = hashlib.sha1(self.feed_address+self.feed_link).hexdigest() + duplicate_feeds = Feed.objects.filter(hash_address_and_link=hash_address_and_link) if not duplicate_feeds: # Feed has been deleted. Just ignore it. logging.debug(" ***> Changed to: %s - %s: %s" % (self.feed_address, self.feed_link, duplicate_feeds)) @@ -385,7 +388,7 @@ class Feed(models.Model): if feed_address: if feed_address.endswith('feedburner.com/atom.xml'): logging.debug(" ---> Feed points to 'Wierdo', ignoring.") - return False + return False, self try: self.feed_address = feed_address feed = self.save() @@ -402,7 +405,7 @@ class Feed(models.Model): return feed_address, feed if self.feed_address_locked: - return + return False, self try: feed_address, feed = _1()