63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
# Create your views here.
|
|
from django.http import HttpResponse
|
|
from django.http import Http404
|
|
from django.conf import settings
|
|
import json
|
|
|
|
import tempfile
|
|
|
|
directory = tempfile.mkdtemp(prefix = settings.TRACK_DIR)
|
|
|
|
logfile = None
|
|
file_index = 0
|
|
log_index = 0
|
|
MAXLOG = 5
|
|
|
|
def make_file():
|
|
global logfile, log_index, file_index
|
|
if logfile != None:
|
|
logfile.close()
|
|
logfile = open(directory+"/%05i"%(file_index), "w")
|
|
file_index = file_index + 1
|
|
log_index = 0
|
|
|
|
def log_event(event):
|
|
global logfile, log_index
|
|
if settings.TRACK_DIR == None:
|
|
print event
|
|
return
|
|
|
|
if logfile == None or log_index >= MAXLOG:
|
|
make_file()
|
|
|
|
event_str = json.dumps(event)
|
|
logfile.write(event_str+'\n')
|
|
log_index = log_index + 1
|
|
|
|
def user_track(request):
|
|
event = {
|
|
"username" : request.user.username,
|
|
"session" : request.META['HTTP_COOKIE'],
|
|
"ip" : request.META['REMOTE_ADDR'],
|
|
"event_source" : "browser",
|
|
"event_type" : request.GET['event_type'],
|
|
"event" : request.GET['event'],
|
|
"agent" : request.META['HTTP_USER_AGENT'],
|
|
"page" : request.GET['page'],
|
|
}
|
|
log_event(event)
|
|
return HttpResponse('success')
|
|
|
|
def server_track(request, event_type, event, page=None):
|
|
event = {
|
|
"username" : request.user.username,
|
|
"ip" : request.META['REMOTE_ADDR'],
|
|
"ip" : request.META['REMOTE_ADDR'],
|
|
"event_source" : "server",
|
|
"event_type" : event_type,
|
|
"event" : event,
|
|
"agent" : request.META['HTTP_USER_AGENT'],
|
|
"page" : page,
|
|
}
|
|
log_event(event)
|