2010-06-30 13:36:51 -04:00
|
|
|
import datetime
|
2010-08-15 12:04:26 -04:00
|
|
|
import logging
|
2010-06-30 13:36:51 -04:00
|
|
|
|
|
|
|
class LastSeenMiddleware(object):
|
|
|
|
|
|
|
|
def process_response(self, request, response):
|
2010-07-06 19:01:25 -04:00
|
|
|
if (request.path == '/'
|
|
|
|
and not request.is_ajax()
|
2010-06-30 14:09:16 -04:00
|
|
|
and hasattr(request, 'user')
|
|
|
|
and request.user.is_authenticated()):
|
2010-07-21 23:26:26 -04:00
|
|
|
hour_ago = datetime.datetime.now() - datetime.timedelta(minutes=60)
|
|
|
|
if request.user.profile.last_seen_on < hour_ago:
|
2010-08-15 12:04:26 -04:00
|
|
|
logging.info(" ---> Repeat visitor: %s" % request.user)
|
2010-06-30 13:36:51 -04:00
|
|
|
request.user.profile.last_seen_on = datetime.datetime.now()
|
2010-06-30 14:09:16 -04:00
|
|
|
request.user.profile.last_seen_ip = request.META['REMOTE_ADDR']
|
2010-06-30 13:36:51 -04:00
|
|
|
request.user.profile.save()
|
|
|
|
|
|
|
|
return response
|