diff --git a/apps/reader/models.py b/apps/reader/models.py index 6b6d1fb3f..5ea970123 100644 --- a/apps/reader/models.py +++ b/apps/reader/models.py @@ -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 diff --git a/apps/rss_feeds/management/commands/refresh_feeds.py b/apps/rss_feeds/management/commands/refresh_feeds.py index b257aab71..57cc86d55 100644 --- a/apps/rss_feeds/management/commands/refresh_feeds.py +++ b/apps/rss_feeds/management/commands/refresh_feeds.py @@ -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) diff --git a/apps/rss_feeds/models.py b/apps/rss_feeds/models.py index dab5fdaa3..190d4ee89 100644 --- a/apps/rss_feeds/models.py +++ b/apps/rss_feeds/models.py @@ -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 diff --git a/fabfile.py b/fabfile.py index e1b110873..a4f350ce4 100644 --- a/fabfile.py +++ b/fabfile.py @@ -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) diff --git a/utils/feed_fetcher.py b/utils/feed_fetcher.py index 00525d04e..4209c2162 100644 --- a/utils/feed_fetcher.py +++ b/utils/feed_fetcher.py @@ -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: