mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-11-01 09:09:51 +00:00
Fixing feed address change by feed link when colliding with existing feed.
This commit is contained in:
parent
92c4cc7d1a
commit
8a7ea248fd
2 changed files with 18 additions and 19 deletions
|
|
@ -381,41 +381,34 @@ class Feed(models.Model):
|
|||
|
||||
if feed_address:
|
||||
if feed_address.endswith('feedburner.com/atom.xml'):
|
||||
# message = """
|
||||
# %s - %s - %s
|
||||
# """ % (feed_address, self.__dict__, pprint(self.__dict__))
|
||||
# mail_admins('Wierdo alert', message, fail_silently=True)
|
||||
logging.debug(" ---> Feed points to 'Wierdo', ignoring.")
|
||||
return False
|
||||
try:
|
||||
self.feed_address = feed_address
|
||||
self.schedule_feed_fetch_immediately()
|
||||
self.has_feed_exception = False
|
||||
self.active = True
|
||||
self.save()
|
||||
feed = self.save()
|
||||
feed.schedule_feed_fetch_immediately()
|
||||
feed.has_feed_exception = False
|
||||
feed.active = True
|
||||
feed = feed.save()
|
||||
except IntegrityError:
|
||||
original_feed = Feed.objects.get(feed_address=feed_address, feed_link=self.feed_link)
|
||||
original_feed.has_feed_exception = False
|
||||
original_feed.active = True
|
||||
original_feed.save()
|
||||
merge_feeds(original_feed.pk, self.pk)
|
||||
return feed_address
|
||||
return feed_address, feed
|
||||
|
||||
if self.feed_address_locked:
|
||||
return
|
||||
|
||||
try:
|
||||
feed_address = _1()
|
||||
feed_address, feed = _1()
|
||||
except TimeoutError:
|
||||
logging.debug(' ---> [%-30s] Feed address check timed out...' % (unicode(self)[:30]))
|
||||
self.save_feed_history(505, 'Timeout', '')
|
||||
feed_address = None
|
||||
|
||||
if feed_address:
|
||||
self.has_feed_exception = True
|
||||
self.schedule_feed_fetch_immediately()
|
||||
|
||||
return not not feed_address
|
||||
|
||||
return bool(feed_address), feed
|
||||
|
||||
def save_feed_history(self, status_code, message, exception=None):
|
||||
MFeedFetchHistory(feed_id=self.pk,
|
||||
|
|
|
|||
|
|
@ -160,9 +160,11 @@ class ProcessFeed:
|
|||
logging.debug(" ---> [%-30s] ~SB~FRHTTP Status code: %s. Checking address..." % (self.feed.title[:30], self.fpf.status))
|
||||
fixed_feed = None
|
||||
if not self.feed.known_good:
|
||||
fixed_feed = self.feed.check_feed_link_for_feed_address()
|
||||
fixed_feed, feed = self.feed.check_feed_link_for_feed_address()
|
||||
if not fixed_feed:
|
||||
self.feed.save_feed_history(self.fpf.status, "HTTP Error")
|
||||
else:
|
||||
self.feed = feed
|
||||
self.feed = self.feed.save()
|
||||
return FEED_ERRHTTP, ret_values
|
||||
|
||||
|
|
@ -171,18 +173,22 @@ class ProcessFeed:
|
|||
logging.debug(" ---> [%-30s] ~SB~FRFeed is Non-XML. %s entries. Checking address..." % (self.feed.title[:30], len(self.fpf.entries)))
|
||||
fixed_feed = None
|
||||
if not self.feed.known_good:
|
||||
fixed_feed = self.feed.check_feed_link_for_feed_address()
|
||||
fixed_feed, feed = self.feed.check_feed_link_for_feed_address()
|
||||
if not fixed_feed:
|
||||
self.feed.save_feed_history(552, 'Non-xml feed', self.fpf.bozo_exception)
|
||||
else:
|
||||
self.feed = feed
|
||||
self.feed = self.feed.save()
|
||||
return FEED_ERRPARSE, ret_values
|
||||
elif self.fpf.bozo and isinstance(self.fpf.bozo_exception, xml.sax._exceptions.SAXException):
|
||||
logging.debug(" ---> [%-30s] ~SB~FRFeed has SAX/XML parsing issues. %s entries. Checking address..." % (self.feed.title[:30], len(self.fpf.entries)))
|
||||
fixed_feed = None
|
||||
if not self.feed.known_good:
|
||||
fixed_feed = self.feed.check_feed_link_for_feed_address()
|
||||
fixed_feed, feed = self.feed.check_feed_link_for_feed_address()
|
||||
if not fixed_feed:
|
||||
self.feed.save_feed_history(553, 'SAX Exception', self.fpf.bozo_exception)
|
||||
else:
|
||||
self.feed = feed
|
||||
self.feed = self.feed.save()
|
||||
return FEED_ERRPARSE, ret_values
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue