diff --git a/utils/bootstrap_mongo.py b/utils/bootstrap_mongo.py index 0763d4de3..244ad305f 100644 --- a/utils/bootstrap_mongo.py +++ b/utils/bootstrap_mongo.py @@ -115,23 +115,24 @@ def bootstrap_feedpages(): print "FeedPages: %s" % MFeedPage.objects().count() pprint(db.feed_pages.index_information()) - feeds = Feed.objects.filter(average_stories_per_month=0).order_by('-average_stories_per_month') + feeds = Feed.objects.all().order_by('-average_stories_per_month') feed_count = feeds.count() i = 0 for feed in feeds: i += 1 print "%s/%s: %s" % (i, feed_count, feed,) sys.stdout.flush() - - feed_page = FeedPage.objects.filter(feed=feed).values() - if feed_page: - del feed_page[0]['id'] - feed_page[0]['feed_id'] = feed.pk - try: - MFeedPage(**feed_page[0]).save() - except: - print '\n\n!\n\n' - continue + + if not MFeedPage.objects(feed_id=feed.pk): + feed_page = FeedPage.objects.filter(feed=feed).values() + if feed_page: + del feed_page[0]['id'] + feed_page[0]['feed_id'] = feed.pk + try: + MFeedPage(**feed_page[0]).save() + except: + print '\n\n!\n\n' + continue print "\nMongo DB feed_pages: %s" % MFeedPage.objects().count() @@ -141,12 +142,21 @@ def compress_stories(): print "Mongo DB stories: %s" % count p = 0.0 i = 0 - for story in MStory.objects(): - i += 1.0 - if round(i / count * 100) != p: - p = round(i / count * 100) - print '%s%%' % p - story.save() + + feeds = Feed.objects.all().order_by('-average_stories_per_month') + feed_count = feeds.count() + f = 0 + for feed in feeds: + f += 1 + print "%s/%s: %s" % (f, feed_count, feed,) + sys.stdout.flush() + + for story in MStory.objects(story_feed_id=feed.pk): + i += 1.0 + if round(i / count * 100) != p: + p = round(i / count * 100) + print '%s%%' % p + story.save() if __name__ == '__main__':