Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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