Fixing icon fetching error when the page is corrupted.

This commit is contained in:
Samuel Clay 2012-04-24 17:40:34 -07:00
parent d209aa5e25
commit c1b5aef983
5 changed files with 18 additions and 11 deletions

View file

@ -167,12 +167,13 @@ class UserSubscription(models.Model):
now = datetime.datetime.utcnow()
# Use the latest story to get last read time.
if MStory.objects(story_feed_id=self.feed.pk).first():
latest_story_date = MStory.objects(story_feed_id=self.feed.pk).order_by('-story_date').only('story_date')[0]['story_date']\
latest_story = MStory.objects(story_feed_id=self.feed.pk).order_by('-story_date').only('story_date')
if latest_story:
latest_story_date = latest_story[0]['story_date']\
+ datetime.timedelta(seconds=1)
else:
latest_story_date = now
self.last_read_date = latest_story_date
self.mark_read_date = latest_story_date
self.unread_count_negative = 0

View file

@ -67,7 +67,7 @@ class Command(BaseCommand):
num_workers = 1
options['compute_scores'] = True
options['quick'] = ".5"
options['quick'] = "0"
disp = feed_fetcher.Dispatcher(options, num_workers)

View file

@ -1193,7 +1193,9 @@ class MFeedPage(mongo.Document):
data = None
feed_page = cls.objects(feed_id=feed_id)
if feed_page:
data = feed_page[0].page_data and zlib.decompress(feed_page[0].page_data)
page_data_z = feed_page[0].page_data
if page_data_z:
data = zlib.decompress(page_data_z)
if not data:
dupe_feed = DuplicateFeed.objects.filter(duplicate_feed_id=feed_id)
@ -1201,7 +1203,9 @@ class MFeedPage(mongo.Document):
feed = dupe_feed[0].feed
feed_page = MFeedPage.objects.filter(feed_id=feed.pk)
if feed_page:
data = feed_page[0].page_data and zlib.decompress(feed_page[0].page_data)
page_data_z = feed_page[0].page_data
if page_data_z:
data = zlib.decompress(feed_page[0].page_data)
return data

9
fabfile.py vendored
View file

@ -199,12 +199,13 @@ def backup_postgresql():
# ===============
def sync_time():
sudo("/etc/init.d/ntp stop", warn_only=True)
sudo("ntpdate pool.ntp.org")
sudo("/etc/init.d/ntp start", warn_only=True)
with settings(warn_only=True):
sudo("/etc/init.d/ntp stop")
sudo("ntpdate pool.ntp.org")
sudo("/etc/init.d/ntp start")
def setup_time_calibration():
sudo('apt-get -y remove ntp')
sudo('apt-get -y install ntp')
put('config/ntpdate.cron', env.NEWSBLUR_PATH)
sudo('chmod 755 %s/ntpdate.cron' % env.NEWSBLUR_PATH)
sudo('mv %s/ntpdate.cron /etc/cron.hourly/ntpdate' % env.NEWSBLUR_PATH)

View file

@ -410,7 +410,8 @@ class Dispatcher:
feed.save_page_history(550, "Page Error", tb)
fetched_feed = None
mail_feed_error_to_admin(feed, e, local_vars=locals())
feed = self.refresh_feed(feed.pk)
logging.debug(u' ---> [%-30s] ~FYFetching icon: %s' % (unicode(feed)[:30], feed.feed_link))
icon_importer = IconImporter(feed, force=self.options['force'])
try: