def getspeed(self, pool): speed = 0 for thread in pool.threads: #print "%.2f kb/s" %(thread.threadvars['speed']/1024), speed += thread.threadvars['speed'] #print '' if self.log: lib_func.printstr("%.2f kb/s" % (speed / 1024), "DD:Speed:") else: pass
def runjs(js): import PyV8 v8=PyV8.JSContext() v8.enter() try: func=v8.eval(js) except Exception: lib_func.printstr("Javascript sytia error",2) return None return func()
def runjs(js): import PyV8 v8 = PyV8.JSContext() v8.enter() try: func = v8.eval(js) except Exception: lib_func.printstr("Javascript sytia error", 2) return None return func()
def getspeed(self,pool): speed=0 for thread in pool.threads: #print "%.2f kb/s" %(thread.threadvars['speed']/1024), speed+=thread.threadvars['speed'] #print '' if self.log: lib_func.printstr("%.2f kb/s" %(speed/1024),"DD:Speed:") else: pass
def getparasdict(matparas,formats,formatm=[]): plist=matparas.split(' ') try: opts,args=getopt.getopt(plist,formats,formatm) pd={} for item in opts: pd[mystrip(item[0])]=item[1] if args and args[0]: pd['args']=args return pd except Exception: lib_func.printstr("parameter string is error for you formats",2)
def getparasdict(matparas, formats, formatm=[]): plist = matparas.split(' ') try: opts, args = getopt.getopt(plist, formats, formatm) pd = {} for item in opts: pd[mystrip(item[0])] = item[1] if args and args[0]: pd['args'] = args return pd except Exception: lib_func.printstr("parameter string is error for you formats", 2)
def getbytes(self,dlinfo,index,fp,threadvar): objc=threadvar['objc'] objs=StringIO.StringIO() objc.setopt(pycurl.WRITEFUNCTION, objs.write) objc.setopt(pycurl.RANGE,"%d-%d" %(index*dlinfo['block'],(index+1)*dlinfo['block']-1)) for i in range(3): try: objc.perform() threadvar['speed']=objc.getinfo(pycurl.SPEED_DOWNLOAD) self.write2file(objs,dlinfo,index,fp) return except Exception as e: lib_func.printstr(str(e),"DD:Exception:") lib_func.printstr("Time out ,can't download",2)
def start(self): print self.welcome while 1: cmds=raw_input(self.prefix) cmds=cmds.strip().split(' ',1) if cmds[0] in ('exit','quit'): break func=self.getfunction(cmds[0]) if len(cmds)>1 and type(func)!=str: self.run(func,cmds[1].strip()) elif len(cmds)==1 and type(func)!=str: self.run(func,"") else: lib_func.printstr("Not exist command in default groups!!!",2) lib_func.printstr("Interactive is finish")
def regcommand(self,cmd,func,msg="No desc msg",sfile="buildins"): """plugin sfile must be __file__""" if sfile=="buildins": sfile=sfile group=sfile else: p,sfile=os.path.split(sfile) group=os.path.split(p)[1] if cmd and func: if self.__cmd.has_key(group): if self.__cmd[group].has_key(cmd): lib_func.printstr("You can't reg exist command",2) return -1 else: self.__cmd[group][cmd]=(func,msg,sfile) else: self.__cmd[group]=dict() self.__cmd[group][cmd]=(func,msg,sfile) return 0
def download(self,address,savepath,savename="",opts={},thread=1): if not address: lib_func.printstr("You should input vaild urls",2) return objc=self.initobjc(opts) try: finfo=self.getfileinfo(objc,address) except Exception as e: lib_func.printstr(str(e),"DD:Get ddinfo faile:") return opts=lib_func.copydict(opts,(pycurl.URL,finfo[0])) if finfo[1]==0: lib_func.printstr("Have error in download",2) return block=self.getblock(finfo[1]) fname=savepath+'/'+savename dlinfo={'url':finfo[0],'save':fname,'size':finfo[1],'block':block,'status':[0 for i in range(int(math.ceil(float(finfo[1])/block)))]} self.printdd(dlinfo) f=self.getfp(dlinfo['save'],dlinfo['size']) pool=lib_TheardPool2.threadpool(thread,start=False) pool.initsubthead(self.initsub,(opts,)) [pool.addtask(self.getbytes,(dlinfo,i,f))for i in range(len(dlinfo['status']))] pool.start() pool.waitPoolComplete(self.getspeed) f.close()
def printdd(self, dlinfo): lib_func.printstr(dlinfo['url'], "DD:URL:") lib_func.printstr(dlinfo['save'], "DD:SAVE:") lib_func.printstr(dlinfo['size'], "DD:SIZE:")
def run(self,func,paras=""): try: func(paras) except Exception as e: lib_func.printstr("have error in %s %s" %(func.__name__,paras),2) lib_func.printstr(str(e),"Exception:")
def printdd(self, dlinfo): lib_func.printstr(dlinfo["url"], "DD:URL:") lib_func.printstr(dlinfo["save"], "DD:SAVE:") lib_func.printstr(dlinfo["size"], "DD:SIZE:")
def printdd(self,dlinfo): lib_func.printstr(dlinfo['url'],"DD:URL:") lib_func.printstr(dlinfo['save'],"DD:SAVE:") lib_func.printstr(dlinfo['size'],"DD:SIZE:")
def tivehelp(self,paras): """print help msg for you question""" try: pd=lib_func.getparasdict(paras,'v') if not pd: for group,dt in self.getcmddict().iteritems(): lib_func.printstr(group,'####') for name,cmdmsg in dt.iteritems(): print '*'+name, print '' return if pd.has_key('v'): for group,dt in self.getcmddict().iteritems(): lib_func.printstr(group,'####') for name,cmdmsg in dt.iteritems(): lib_func.printstr("%s\t%s" %(name,cmdmsg[1]),'*') return if pd.has_key('args') and len(pd['args'])==1: lib_func.printstr(self.getfunction(pd['args'][0],tp=2),'SRCFILE:') lib_func.printstr(self.getfunction(pd['args'][0],tp=3),'HelpMSG:') except Exception: lib_func.printstr("You parameter vaild",2)