NewsBlur/utils/archive/bootstrap_story_hash.py

32 lines
1,018 B
Python
Raw Normal View History

import time
2024-04-24 09:50:42 -04:00
2013-03-28 15:15:24 -07:00
import pymongo
from django.conf import settings
2024-04-24 09:50:42 -04:00
from apps.rss_feeds.models import Feed, MStory
db = settings.MONGODB
batch = 0
start = 0
2024-04-24 09:43:56 -04:00
for f in range(start, Feed.objects.latest("pk").pk):
if f < batch * 100000:
continue
start = time.time()
try:
cp1 = time.time() - start
# if feed.active_premium_subscribers < 1: continue
2024-04-24 09:43:56 -04:00
stories = (
MStory.objects.filter(story_feed_id=f, story_hash__exists=False)
.only("id", "story_feed_id", "story_guid")
.read_preference(pymongo.ReadPreference.SECONDARY)
)
cp2 = time.time() - start
count = 0
for story in stories:
count += 1
2024-04-24 09:43:56 -04:00
db.newsblur.stories.update({"_id": story.id}, {"$set": {"story_hash": story.feed_guid_hash}})
cp3 = time.time() - start
2020-06-15 05:09:10 -04:00
print(("%s: %3s stories (%s/%s/%s)" % (f, count, round(cp1, 2), round(cp2, 2), round(cp3, 2))))
except Exception as e:
print((" ***> (%s) %s" % (f, e)))