mirror of
https://github.com/viq/NewsBlur.git
synced 2025-09-18 21:43:31 +00:00
Merge branch 'master' into social
* master: Fixing icon fetching error when the page is corrupted. Writing a glorious hack that forces a count of unread scores. Conflicts: apps/reader/models.py apps/rss_feeds/management/commands/refresh_feeds.py fabfile.py utils/feed_fetcher.py
This commit is contained in:
commit
b5c5cdeda3
4 changed files with 30 additions and 17 deletions
|
@ -179,12 +179,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_id).first():
|
||||
latest_story_date = MStory.objects(story_feed_id=self.feed_id).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
|
||||
|
|
|
@ -2,9 +2,11 @@ from django.core.management.base import BaseCommand
|
|||
from apps.reader.models import UserSubscription
|
||||
from django.conf import settings
|
||||
from optparse import make_option
|
||||
from django.contrib.auth.models import User
|
||||
import os
|
||||
import errno
|
||||
import re
|
||||
import datetime
|
||||
|
||||
class Command(BaseCommand):
|
||||
option_list = BaseCommand.option_list + (
|
||||
|
@ -18,20 +20,25 @@ class Command(BaseCommand):
|
|||
settings.LOG_TO_STREAM = True
|
||||
if options['daemonize']:
|
||||
daemonize()
|
||||
|
||||
if options['all']:
|
||||
feeds = UserSubscription.objects.all()
|
||||
else:
|
||||
feeds = UserSubscription.objects.filter(needs_unread_recalc=True)
|
||||
|
||||
if options['user']:
|
||||
if re.match(r"([0-9]+)", options['user']):
|
||||
feeds = feeds.filter(user=int(options['user']))
|
||||
users = User.objects.filter(pk=int(options['user']))
|
||||
else:
|
||||
feeds = feeds.filter(user__username=options['user'])
|
||||
|
||||
for f in feeds:
|
||||
f.calculate_feed_scores(silent=options['silent'])
|
||||
users = User.objects.filter(username=options['user'])
|
||||
else:
|
||||
users = User.objects.filter(profile__last_seen_on__gte=datetime.datetime.now()-datetime.timedelta(days=1))
|
||||
|
||||
user_count = users.count()
|
||||
for i, u in enumerate(users):
|
||||
if options['all']:
|
||||
usersubs = UserSubscription.objects.filter(user=u, active=True)
|
||||
else:
|
||||
usersubs = UserSubscription.objects.filter(user=u, needs_unread_recalc=True)
|
||||
print " ---> %s has %s feeds (%s/%s)" % (u.username, usersubs.count(), i+1, user_count)
|
||||
|
||||
for sub in usersubs:
|
||||
sub.calculate_feed_scores(silent=options['silent'])
|
||||
|
||||
def daemonize():
|
||||
"""
|
||||
|
|
|
@ -1220,7 +1220,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)
|
||||
|
@ -1228,7 +1230,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
|
||||
|
||||
|
|
|
@ -150,7 +150,7 @@ class ProcessFeed:
|
|||
self.feed.save_feed_history(self.fpf.status, "HTTP Redirect")
|
||||
return FEED_ERRHTTP, ret_values
|
||||
if self.fpf.status >= 400:
|
||||
logging.debug(" ---> [%-30s] ~SB~FRHTTP Status code: %s.%s Checking address..." % (self.feed.title[:30], self.fpf.status))
|
||||
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()
|
||||
|
@ -411,7 +411,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' % (feed.title[:30], feed.feed_link))
|
||||
icon_importer = IconImporter(feed, force=self.options['force'])
|
||||
try:
|
||||
|
|
Loading…
Add table
Reference in a new issue