def startDown(df,blocks=1): # print 'start down...',df.id url = df.url size = df.totalfilesize ranges = splitBlock(size,blocks) tmp_path = "thread" if df.dtonk: tmp_path = FILE_SAVE_PATH+df.user+"/download/"+df.dtonk else: tmp_path = FILE_SAVE_PATH+df.user+"/download/"+datetime.datetime.now().strftime("%Y%m%d%H%M%S%f") filename = [ "%s_%d" %(tmp_path,i) for i in xrange(0, blocks) ] # print filename tasks = [] for x in xrange(0,blocks): t = Download(x,url,ranges[x],filename[x],df) t.setDaemon(True) t.start() tasks.append(t) time.sleep(2) while islive(tasks) : if not isGo(df): break downloaded = sum([task.downloadsize for task in tasks] ) process = downloaded/float(size)*100 # show = u'\r Completed:%.2f%%' % (process) # sys.stdout.write(show) sys.stdout.flush() df.percent = '%.2f%%' %(process) df.save() time.sleep( 0.5 ) output = FILE_SAVE_PATH + df.user + "/download/" + df.name + df.ftype filehandle = open( output, 'wb+' ) for i in filename: if not isGo(df): return f = open( i, 'rb' ) filehandle.write( f.read() ) f.close() try: os.remove(i) pass except: pass df.percent = '100.00%%' %() df.status = 1 # print "1111 :",df.downloadtotaltime df.downloadtotaltime = int(float(df.downloadtotaltime) + int(time.time()-int(float(df.downloadedtime)))) df.downloadedtime = str(time.time()) df.save() filehandle.close() if public_dic.get(df.id): public_dic.pop(df.id) # 存放文件重新 try: fu = Fileinfo_up() fu.name = df.name fu.path = "%s/download/" %(df.user) p = "%s%s/%s%s" %(FILE_SAVE_PATH,fu.path,df.name,df.ftype) fu.size = os.path.getsize(p)#fSize(p)#df.totalfilesize fu.type = 0 fu.ftype = df.ftype fu.owner = df.user fu.status = 1 ss = df.downloadstarttime fu.uploadstarttime = "%s-%s-%s %s:%s:%s" %(ss[0:4],ss[4:6],ss[6:8],ss[8:10],ss[10:12],ss[12:14]) fu.userid = User.objects.filter(UserName=df.user)[0] fu.save() except Exception,e: print 'ddddddddddddd :',e pass
def downBTFile(b): ses = lt.session() ses.listen_on(port_lsit[0][0],port_lsit[0][1]) p = "%s%s%s"%(FILE_SAVE_PATH,b.torrent,b.name) s = "%s%s"%(FILE_SAVE_PATH,b.path) e = lt.bdecode(open(p, 'rb').read()) info = lt.torrent_info(e) #print 'PPPPPPPPPPP :',p #print 'ssssssssssp :',s params = {'save_path': str(s),'storage_mode': lt.storage_mode_t.storage_mode_sparse,'ti': info }#,lt.storage_mode_t(2) h = ses.add_torrent(params) params = {'save_path': 'ttt', 'storage_mode': lt.storage_mode_t.storage_mode_sparse,#lt.storage_mode_t(2), 'ti': info } while (not h.is_seed()) and public_dic_bt.get(b.id)[1]: s = h.status() #print 'b'*30 try: if s.state ==3: #载中的返回值 b.resources = "%s/%s" %(s.num_pieces,len(s.pieces)) b.requestUp = s.total_upload b.requestDown = s.total_download b.speedUp = '%.2f kB/s' %(s.upload_rate / 1000) b.speedDown = '%.2f kb/s' %(s.download_rate / 1000) b.percent = '%.2f%%'%(s.progress * 100) b.status = 2 b.save() #print '====>',b.speedDown else: b.speedUp = '-' b.speedDown = '-' b.status = 4 b.save() time.sleep(1) except:pass time.sleep(1) #print 'down over...' b.status = 1 b.speedUp = '-' b.speedDown = '-' b.requestDown = '-' b.requestUp = '-' b.percent = "100%" b.resources = "-" b.save() # 存放 Fileinfo_up bfp = "%s%s/" %(b.path,b.fname) fp = "%s%s" %(FILE_SAVE_PATH,bfp) lfs = os.listdir(fp) for f in lfs: try: #print '0'*30,f.decode('utf8') name,ftype = os.path.splitext(f) fu = Fileinfo_up() fu.name = name fu.ftype = ftype fu.size = b.totalSize fu.type = 0 fu.owner = b.user fu.status = 1 fu.path = bfp tmp_tiem = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") fu.lastwritetime = tmp_tiem fu.uploadstarttime = tmp_tiem fu.timestamp = 0 fu.userid = User.objects.get(UserName=b.user) fu.save() except Exception,e: print 'ddddddddddddd :',e pass
def startDown(df, blocks=1): # print 'start down...',df.id url = df.url size = df.totalfilesize ranges = splitBlock(size, blocks) tmp_path = "thread" if df.dtonk: tmp_path = FILE_SAVE_PATH + df.user + "/download/" + df.dtonk else: tmp_path = FILE_SAVE_PATH + df.user + "/download/" + datetime.datetime.now( ).strftime("%Y%m%d%H%M%S%f") filename = ["%s_%d" % (tmp_path, i) for i in xrange(0, blocks)] # print filename tasks = [] for x in xrange(0, blocks): t = Download(x, url, ranges[x], filename[x], df) t.setDaemon(True) t.start() tasks.append(t) time.sleep(2) while islive(tasks): if not isGo(df): break downloaded = sum([task.downloadsize for task in tasks]) process = downloaded / float(size) * 100 # show = u'\r Completed:%.2f%%' % (process) # sys.stdout.write(show) sys.stdout.flush() df.percent = '%.2f%%' % (process) df.save() time.sleep(0.5) output = FILE_SAVE_PATH + df.user + "/download/" + df.name + df.ftype filehandle = open(output, 'wb+') for i in filename: if not isGo(df): return f = open(i, 'rb') filehandle.write(f.read()) f.close() try: os.remove(i) pass except: pass df.percent = '100.00%%' % () df.status = 1 # print "1111 :",df.downloadtotaltime df.downloadtotaltime = int( float(df.downloadtotaltime) + int(time.time() - int(float(df.downloadedtime)))) df.downloadedtime = str(time.time()) df.save() filehandle.close() if public_dic.get(df.id): public_dic.pop(df.id) # 存放文件重新 try: fu = Fileinfo_up() fu.name = df.name fu.path = "%s/download/" % (df.user) p = "%s%s/%s%s" % (FILE_SAVE_PATH, fu.path, df.name, df.ftype) fu.size = os.path.getsize(p) #fSize(p)#df.totalfilesize fu.type = 0 fu.ftype = df.ftype fu.owner = df.user fu.status = 1 ss = df.downloadstarttime fu.uploadstarttime = "%s-%s-%s %s:%s:%s" % ( ss[0:4], ss[4:6], ss[6:8], ss[8:10], ss[10:12], ss[12:14]) fu.userid = User.objects.filter(UserName=df.user)[0] fu.save() except Exception, e: print 'ddddddddddddd :', e pass
def downBTFile(b): ses = lt.session() ses.listen_on(port_lsit[0][0], port_lsit[0][1]) p = "%s%s%s" % (FILE_SAVE_PATH, b.torrent, b.name) s = "%s%s" % (FILE_SAVE_PATH, b.path) e = lt.bdecode(open(p, 'rb').read()) info = lt.torrent_info(e) #print 'PPPPPPPPPPP :',p #print 'ssssssssssp :',s params = { 'save_path': str(s), 'storage_mode': lt.storage_mode_t.storage_mode_sparse, 'ti': info } #,lt.storage_mode_t(2) h = ses.add_torrent(params) params = { 'save_path': 'ttt', 'storage_mode': lt.storage_mode_t.storage_mode_sparse, #lt.storage_mode_t(2), 'ti': info } while (not h.is_seed()) and public_dic_bt.get(b.id)[1]: s = h.status() #print 'b'*30 try: if s.state == 3: #载中的返回值 b.resources = "%s/%s" % (s.num_pieces, len(s.pieces)) b.requestUp = s.total_upload b.requestDown = s.total_download b.speedUp = '%.2f kB/s' % (s.upload_rate / 1000) b.speedDown = '%.2f kb/s' % (s.download_rate / 1000) b.percent = '%.2f%%' % (s.progress * 100) b.status = 2 b.save() #print '====>',b.speedDown else: b.speedUp = '-' b.speedDown = '-' b.status = 4 b.save() time.sleep(1) except: pass time.sleep(1) #print 'down over...' b.status = 1 b.speedUp = '-' b.speedDown = '-' b.requestDown = '-' b.requestUp = '-' b.percent = "100%" b.resources = "-" b.save() # 存放 Fileinfo_up bfp = "%s%s/" % (b.path, b.fname) fp = "%s%s" % (FILE_SAVE_PATH, bfp) lfs = os.listdir(fp) for f in lfs: try: #print '0'*30,f.decode('utf8') name, ftype = os.path.splitext(f) fu = Fileinfo_up() fu.name = name fu.ftype = ftype fu.size = b.totalSize fu.type = 0 fu.owner = b.user fu.status = 1 fu.path = bfp tmp_tiem = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") fu.lastwritetime = tmp_tiem fu.uploadstarttime = tmp_tiem fu.timestamp = 0 fu.userid = User.objects.get(UserName=b.user) fu.save() except Exception, e: print 'ddddddddddddd :', e pass