Ejemplo n.º 1
0
def upload(request):
    form = forms.torrentForm(request.POST,request.FILES)
    if request.user.username=="guest":
      return render_to_response('index.html', {'form': form, "message": "Guest's are not allowed to start download processes."}, context_instance=RequestContext(request))
    if form.is_valid():
            try:
              f = request.FILES['torfile']
            except:
              f = ""
            if not f == "":
              raw = f.read()
              try:
                name = bencode.bdecode(raw)['info']['name']
                length = bencode.bdecode(raw)['info']['length']
              except KeyError:
                length = 0
                for file in bencode.bdecode(raw)['info']['files']:
                    length += file['length']
                proc = Process.objects.create(tfile=f,name=name,length=length,ttype=0,progress=2)
                proc.save()
                if(os.path.isdir(to_canonical(name))):
                  if not os.path.exists(to_canonical(name)):
                    os.makedirs(to_canonical(name))
              except: pass
            else:
              u = int(time.time())
              l = request.POST['torlink']
              try:
                data = urllib2.urlopen(l)
                buf = StringIO(data.read())
                f = gzip.GzipFile(fileobj=buf)
                data = f.read()
              except:
                data = urllib2.urlopen(l)
                data = data.read()
              with open("/home/can/torrentor/torrents/%d.torrent"%u,"wb") as f:
                  f.write(data)
              with open("/home/can/torrentor/torrents/%d.torrent"%u) as f:
                  raw = f.read()
              name = bencode.bdecode(raw)['info']['name']
              try:
                  length = bencode.bdecode(raw)['info']['length']
              except:
                  length = 0
                  for file in bencode.bdecode(raw)['info']['files']:
                      length += file['length']
              proc = Process.objects.create(tlink=l,name=name,length=length,ttype=1,progress=2)
              proc.save()
              print to_canonical(name)
              if(os.path.isdir(to_canonical(name))):
                if not os.path.exists(to_canonical(name)):
                  os.makedirs(to_canonical(name))
    else: pass
    return HttpResponseRedirect("/") 
Ejemplo n.º 2
0
def pre_upload(request):
    form = forms.torrentForm()
    return render_to_response('index.html', {'form': form}, context_instance=RequestContext(request))