Exemplo n.º 1
0
def Upload(request):

    try:
        decompressed = zlib.decompress(request.body)
    except zlib.error:
        return HttpResponseBadRequest('Invalid POST data.\n',
                                      content_type='text/plain')

    POST = QueryDict(decompressed)

    try:
        user_id = POST['user_id']
        generation_date = datetime.datetime.utcfromtimestamp(int(POST['time']))
        data_type = POST['type']
        data_version = int(POST['version'])
        data = POST['data']
    except KeyError as e:
        return HttpResponseBadRequest('Missing required fields.\n',
                                      content_type='text/plain')

    uploader = request.META['REMOTE_ADDR']
    # Fix the IP address if running via proxy on localhost
    if uploader == '127.0.0.1':
        try:
            uploader = request.META['HTTP_X_FORWARDED_FOR']\
                              .split(',')[0].strip()
        except KeyError:
            pass

    user_id_bytes = user_id.encode('utf-8')
    user_id_hash = hashlib.sha1(user_id_bytes).hexdigest()

    report = UserReport(
        uploader=uploader,
        user_id_hash=user_id_hash,
        generation_date=generation_date,
        data_type=data_type,
        data_version=data_version,
        data=data
    )
    report.save()

    return HttpResponse('OK', content_type='text/plain')
Exemplo n.º 2
0
                                      content_type='text/plain')

    uploader = request.META['REMOTE_ADDR']
    # Fix the IP address if running via proxy on localhost
    if uploader == '127.0.0.1':
        try:
            uploader = request.META['HTTP_X_FORWARDED_FOR'].split(
                ',')[0].strip()
        except KeyError:
            pass

    user_id_hash = hashlib.sha1(user_id).hexdigest()

    report = UserReport(uploader=uploader,
                        user_id_hash=user_id_hash,
                        generation_date=generation_date,
                        data_type=data_type,
                        data_version=data_version,
                        data=data)
    report.save()

    return HttpResponse('OK', content_type='text/plain')


def index(request):
    return render_to_response('index.html')


def report_cpu(request):
    reports = UserReport_hwdetect.objects
    reports = reports.filter(data_type='hwdetect',
                             data_version__gte=4,