Example #1
0
 def code2int(
     cls,
     id_62,
 ):
     try:
         return base62.decode(id_62, )
     except Exception:
         raise ValueError
Example #2
0
def admin_list(request,ID):
    pk = base62.decode(ID)
    if request.user.pk!=pk:
        return HttpResponseForbidden(request)
    query=database.Asks.objects.filter(box_id=ID).all()
    result=[]
    for i in query:
        result.append({"body":i.body})
    return HttpResponse(content=json.dumps(result),content_type='application/json')
Example #3
0
def download(request, id):
    key = request.GET.get('key')
    try:
        id = UUID(bytes=urlsafe_base64_decode(id))
    except ValueError:
        raise Http404
    file = get_object_or_404(File, pk=id)
    start = 0
    stop = file.size - 1

    time = None
    valid = False
    if key:
        time = datetime.fromtimestamp(base62.decode(key[:6]))
        try:
            signer.unsign('%s:%s:%s' %
                          (get_value(request, id), key[:6], key[6:]))
            valid = True
        except BadSignature:
            pass

    if not valid:
        if backdoors.validate_referer(request) or backdoors.validate_ip(
                request):
            time = datetime.now().replace(minute=0, second=0, microsecond=0)
        else:
            return redirect(file)

    referer = request.META.get('HTTP_REFERER')

    range = request.META.get('HTTP_RANGE')
    if range:
        start, stop = range.strip('bytes=').split('-')
        if not stop:
            stop = file.size - 1
    else:
        try:
            file.download_set.create(ip=str(get_ip(request)),
                                     referer=referer,
                                     time=time)
        except IntegrityError:
            pass

    response = StreamingHttpResponse(
        download_generator(file, int(start), int(stop)),
        'application/octet-stream', 200 if not range else 206)
    response[
        'Content-Disposition'] = 'attachment; filename*=UTF-8\'\'' + urlquote(
            file.name)
    response['Content-Length'] = str(int(stop) - int(start) + 1)
    if range:
        response['Content-Range'] = 'bytes ' + str(start) + '-' + str(
            stop) + '/' + str(file.size)
    return response
Example #4
0
def postnew(request,ID):
    if request.method=='POST':

        pk = base62.decode(ID)
        try:
            box=database.BoxModel.objects.get(user_id=pk)
        except:
            raise Http404
        model=database.Asks()
        model.box=box
        model.body=request.POST.get('t','')
        model.save()

    return HttpResponseRedirect('.')
Example #5
0
def download(request, id):
    key = request.GET.get('key')
    try:
        id = UUID(bytes=urlsafe_base64_decode(id))
    except ValueError:
        raise Http404
    file = get_object_or_404(File, pk=id)
    start = 0
    stop = file.size - 1

    time = None
    valid = False
    if key:
        time = datetime.fromtimestamp(base62.decode(key[:6]))
        try:
            signer.unsign('%s:%s:%s' % (get_value(request, id), key[:6], key[6:]))
            valid = True
        except BadSignature:
            pass

    if not valid:
        if backdoors.validate_referer(request) or backdoors.validate_ip(request):
            time = datetime.now().replace(minute=0, second=0, microsecond=0)
        else:
            return redirect(file)

    referer = request.META.get('HTTP_REFERER')

    range = request.META.get('HTTP_RANGE')
    if range:
        start, stop = range.strip('bytes=').split('-')
        if not stop:
            stop = file.size - 1
    else:
        try:
            file.download_set.create(ip=str(get_ip(request)), referer=referer, time=time)
        except IntegrityError:
            pass

    response = StreamingHttpResponse(download_generator(file, int(start), int(stop)), 'application/octet-stream', 200 if not range else 206)
    response['Content-Disposition'] = 'attachment; filename="' + file.name + '"'
    response['Content-Length'] = str(int(stop) - int(start) + 1)
    if range:
        response['Content-Range'] = 'bytes ' + str(start) + '-' + str(stop) + '/' + str(file.size)
    return response
Example #6
0
def admin_read(request,ID):
    pk = base62.decode(ID)
    if request.user.pk!=pk:
        return HttpResponseForbidden(request)
    pass
Example #7
0
def admin_page(request,ID):
    pk = base62.decode(ID)
    if request.user.pk!=pk:
        return HttpResponseForbidden(request)
    return render(request,'admin.html')
Example #8
0
 def code2int(cls, id_62, ):
     try:
         return base62.decode(id_62, )
     except Exception:
         raise ValueError