mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Refreshing stale feeds for old users returning.
This commit is contained in:
parent
1dc86f3ae8
commit
7fdd173ac0
4 changed files with 31 additions and 3 deletions
|
@ -1,5 +1,6 @@
|
|||
import datetime
|
||||
from utils import log as logging
|
||||
from django.conf import settings
|
||||
|
||||
class LastSeenMiddleware(object):
|
||||
|
||||
|
@ -9,8 +10,11 @@ class LastSeenMiddleware(object):
|
|||
and hasattr(request, 'user')
|
||||
and request.user.is_authenticated()):
|
||||
hour_ago = datetime.datetime.utcnow() - datetime.timedelta(minutes=60)
|
||||
SUBSCRIBER_EXPIRE = datetime.datetime.utcnow() - datetime.timedelta(days=settings.SUBSCRIBER_EXPIRE)
|
||||
if request.user.profile.last_seen_on < hour_ago:
|
||||
logging.info(" ---> [%s] ~FG~BBRepeat visitor: ~SB%s" % (request.user, request.user.profile.last_seen_on))
|
||||
if request.user.profile.last_seen_on < SUBSCRIBER_EXPIRE:
|
||||
request.user.profile.refresh_stale_feeds()
|
||||
request.user.profile.last_seen_on = datetime.datetime.utcnow()
|
||||
request.user.profile.last_seen_ip = request.META['REMOTE_ADDR']
|
||||
request.user.profile.save()
|
||||
|
|
|
@ -50,6 +50,21 @@ Sincerely,
|
|||
NewsBlur""" % {'user': self.user.username, 'feeds': subs.count()}
|
||||
mail_admins('New premium account', message, fail_silently=True)
|
||||
|
||||
def refresh_stale_feeds(self):
|
||||
stale_cutoff = datetime.datetime.now() - datetime.timedelta(days=7)
|
||||
stale_feeds = UserSubscription.objects.filter(user=self.user, active=True, feed__last_update__lte=stale_cutoff)
|
||||
all_feeds = UserSubscription.objects.filter(user=self.user, active=True)
|
||||
|
||||
logging.info(" ---> [%s] ~FG~BBRefreshing stale feeds: ~SB%s/%s" % (
|
||||
self.user, stale_feeds.count(), all_feeds.count()))
|
||||
|
||||
for sub in stale_feeds:
|
||||
sub.feed.fetched_once = False
|
||||
sub.feed.save()
|
||||
|
||||
queue_new_feeds(self.user)
|
||||
|
||||
|
||||
def create_profile(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
Profile.objects.create(user=instance)
|
||||
|
|
|
@ -1456,7 +1456,7 @@ background: transparent;
|
|||
#story_pane .NB-feed-story-header-info {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
padding: 0 200px 0 28px;
|
||||
padding: 0 250px 0 28px;
|
||||
background: #dadada url('../theme/images/dadada_40x100_textures_03_highlight_soft_75.png') 0 50% repeat-x;
|
||||
border-bottom: 1px solid #ADADAD;
|
||||
position: relative;
|
||||
|
|
|
@ -330,8 +330,17 @@ class Dispatcher:
|
|||
|
||||
logging.debug(u' ---> [%-30s] Fetching page' % (unicode(feed)[:30]))
|
||||
page_importer = PageImporter(feed.feed_link, feed)
|
||||
page_importer.fetch_page()
|
||||
|
||||
try:
|
||||
page_importer.fetch_page()
|
||||
except Exception, e:
|
||||
logging.debug('[%d] ! -------------------------' % (feed_id,))
|
||||
tb = traceback.format_exc()
|
||||
logging.error(tb)
|
||||
logging.debug('[%d] ! -------------------------' % (feed_id,))
|
||||
ret_feed = FEED_ERREXC
|
||||
feed.save_feed_history(550, "Page Error", tb)
|
||||
fetched_feed = None
|
||||
|
||||
feed = self.refresh_feed(feed_id)
|
||||
delta = datetime.datetime.utcnow() - start_time
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue