def get_active_users(request): """ Retrieves a list of active users which is returned as plain JSON for easier manipulation with JavaScript. """ if request.is_ajax(): active = Visitor.objects.active().reverse() now = datetime.now() # we don't put the session key or IP address here for security reasons try: data = {'users': [{ 'id': v.id, #'user': uc(v.user), 'user_agent': uc(v.user_agent), 'referrer': uc(v.referrer), 'url': uc(v.url), 'page_views': v.page_views, 'geoip': v.geoip_data_json, 'last_update': (now - v.last_update).seconds, 'friendly_time': ', '.join(friendly_time((now - v.last_update).seconds)), } for v in active]} except: log.error('There was a problem putting all of the visitor data together:\n%s\n\n%s' % (traceback.format_exc(), locals())) return HttpResponse(content='{}', mimetype='text/javascript') response = HttpResponse(content=JSONEncoder().encode(data), mimetype='text/javascript') response['Content-Length'] = len(response.content) return response # if the request was not made via AJAX, raise a 404 raise Http404
def get_active_users(request): """ Retrieves a list of active users which is returned as plain JSON for easier manipulation with JavaScript. """ if request.is_ajax(): active = Visitor.objects.active().reverse() now = get_now() # we don't put the session key or IP address here for security reasons try: data = {'users': [{ 'id': v.id, #'user': uc(v.user), 'user_agent': uc(v.user_agent), 'referrer': uc(v.referrer), 'url': uc(v.url), 'page_views': v.page_views, 'geoip': v.geoip_data_json, 'last_update': (now - v.last_update).seconds, 'friendly_time': ', '.join(friendly_time((now - v.last_update).seconds)), } for v in active]} except: log.error('There was a problem putting all of the visitor data together:\n%s\n\n%s' % (traceback.format_exc(), locals())) return HttpResponse(content='{}', mimetype='text/javascript') response = HttpResponse(content=JSONEncoder().encode(data), mimetype='text/javascript') response['Content-Length'] = len(response.content) return response # if the request was not made via AJAX, raise a 404 raise Http404
def get_active_users(request): """ Retrieves a list of active users which is returned as plain JSON for easier manipulation with JavaScript. """ if request.is_ajax(): active = Visitor.objects.active().reverse() now = datetime.now() # we don't put the session key or IP address here for security reasons data = {'users': [{ 'id': v.id, #'user': uc(v.user), 'user_agent': uc(v.user_agent), 'referrer': uc(v.referrer), 'url': uc(v.url), 'page_views': v.page_views, 'geoip': v.geoip_data_json, 'last_update': (now - v.last_update).seconds, 'friendly_time': ', '.join(friendly_time((now - v.last_update).seconds)), } for v in active]} #print data response = HttpResponse(content=JSONEncoder().encode(data), mimetype='text/javascript') response['Content-Length'] = len(response.content) return response # if the request was not made via AJAX, raise a 404 raise Http404
def get_all_ips(request): """ Retrieves a list of active users which is returned as plain JSON for easier manipulation with JavaScript. """ if True:#request.is_ajax(): active = Visitor.objects.all() now = datetime.now() maps = {} for v in active: ip = uc(v.ip_address) if not ip in maps: maps[ip]=0 maps[ip]+=v.page_views # we don't put the session key or IP address here for security reasons try: data = {'ips': [{'ip':ip,'page_views':maps[ip]} for ip in maps],'num':len(maps)} except: log.error('There was a problem putting all of the visitor data together:\n%s\n\n%s' % (traceback.format_exc(), locals())) return HttpResponse(content='{}', mimetype='text/javascript') response = HttpResponse(content=JSONEncoder().encode(data), mimetype='text/javascript') response['Content-Length'] = len(response.content) return response # if the request was not made via AJAX, raise a 404 raise Http404
def get_active_users(request): """ Retrieves a list of active users which is returned as plain JSON for easier manipulation with JavaScript. """ if request.is_ajax(): active = Visitor.objects.active().reverse() now = datetime.now() # we don't put the session key or IP address here for security reasons try: data = { "users": [ { "id": v.id, #'user': uc(v.user), "user_agent": uc(v.user_agent), "referrer": uc(v.referrer), "url": uc(v.url), "page_views": v.page_views, "geoip": v.geoip_data_json, "last_update": (now - v.last_update).seconds, "friendly_time": ", ".join(friendly_time((now - v.last_update).seconds)), } for v in active ] } except: log.error( "There was a problem putting all of the visitor data together:\n%s\n\n%s" % (traceback.format_exc(), locals()) ) return HttpResponse(content="{}", mimetype="text/javascript") response = HttpResponse(content=JSONEncoder().encode(data), mimetype="text/javascript") response["Content-Length"] = len(response.content) return response # if the request was not made via AJAX, raise a 404 raise Http404