2010-06-30 13:36:51 -04:00
import datetime
2011-05-08 19:25:58 -04:00
import re
2010-08-16 15:45:35 -04:00
from utils import log as logging
2011-01-17 14:20:36 -05:00
from django . conf import settings
2011-05-08 19:25:58 -04:00
from django . db import connection
from django . template import Template , Context
2010-06-30 13:36:51 -04:00
2011-05-08 19:25:58 -04:00
class LastSeenMiddleware ( object ) :
2010-06-30 13:36:51 -04:00
def process_response ( self , request , response ) :
2011-09-25 09:53:57 -07:00
if ( ( request . path in ( ' / ' , ' /reader/refresh_feeds ' , ' /reader/load_feeds ' ) )
2010-06-30 14:09:16 -04:00
and hasattr ( request , ' user ' )
and request . user . is_authenticated ( ) ) :
2010-10-10 23:55:00 -04:00
hour_ago = datetime . datetime . utcnow ( ) - datetime . timedelta ( minutes = 60 )
2011-05-08 19:25:58 -04:00
# SUBSCRIBER_EXPIRE = datetime.datetime.utcnow() - datetime.timedelta(days=settings.SUBSCRIBER_EXPIRE)
2010-07-21 23:26:26 -04:00
if request . user . profile . last_seen_on < hour_ago :
2011-09-30 18:02:48 -07:00
logging . user ( request , " ~FG~BBRepeat visitor: ~SB %s ( %s ) " % (
request . user . profile . last_seen_on , request . META [ ' REMOTE_ADDR ' ] ) )
2011-05-07 12:06:51 -04:00
# if request.user.profile.last_seen_on < SUBSCRIBER_EXPIRE:
# request.user.profile.refresh_stale_feeds()
2010-10-10 23:55:00 -04:00
request . user . profile . last_seen_on = datetime . datetime . utcnow ( )
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 ( )
2011-05-08 19:25:58 -04:00
return response
class SQLLogToConsoleMiddleware :
def process_response ( self , request , response ) :
if settings . DEBUG and connection . queries :
time = sum ( [ float ( q [ ' time ' ] ) for q in connection . queries ] )
queries = connection . queries
for query in queries :
2012-04-06 18:28:26 -07:00
if query . get ( ' mongo ' ) :
query [ ' sql ' ] = " %s : %s " % ( query [ ' mongo ' ] [ ' collection ' ] , query [ ' mongo ' ] [ ' query ' ] )
else :
query [ ' sql ' ] = re . sub ( r ' SELECT (.*?) FROM ' , ' SELECT * FROM ' , query [ ' sql ' ] )
query [ ' sql ' ] = re . sub ( r ' SELECT ' , ' ~FYSELECT ' , query [ ' sql ' ] )
query [ ' sql ' ] = re . sub ( r ' INSERT ' , ' ~FGINSERT ' , query [ ' sql ' ] )
query [ ' sql ' ] = re . sub ( r ' UPDATE ' , ' ~FY~SBUPDATE ' , query [ ' sql ' ] )
query [ ' sql ' ] = re . sub ( r ' DELETE ' , ' ~FR~SBDELETE ' , query [ ' sql ' ] )
2012-04-17 12:12:05 -07:00
t = Template ( " { % f or sql in sqllog % } { % i f not forloop.first % } { % e ndif % }[ {{ forloop.counter}}] ~FC {{ sql.time}}s~FW: {{ sql.sql|safe}} { % i f not forloop.last % } \n { % e ndif % } { % e ndfor % } " )
2011-05-08 19:25:58 -04:00
logging . debug ( t . render ( Context ( { ' sqllog ' : queries , ' count ' : len ( queries ) , ' time ' : time } ) ) )
2010-06-30 13:36:51 -04:00
return response