NewsBlur/apps/profile/middleware.py
2011-01-17 14:20:36 -05:00

22 lines
No EOL
1 KiB
Python

import datetime
from utils import log as logging
from django.conf import settings
class LastSeenMiddleware(object):
def process_response(self, request, response):
if (request.path == '/'
and not request.is_ajax()
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()
return response