⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createaptoncd.py

📁 Progra,, das sehr viele Medien formate spielt und sehr bekannt ist.
💻 PY
📖 第 1 页 / 共 2 页
字号:
        for uri in uri_splitted:            #path = self._get_file_path_from_dnd_dropped_uri(uri)            #print 'path to open', path            if uri.endswith(".deb"):                self.cursorManager.setBusy(self.frmCreateCD,True)                while gtk.events_pending(): gtk.main_iteration()                        ipath = self.util.getFilePathFromUrl(uri)                path,filename = os.path.split(ipath)                                if not metaPackage.itemExistSearch(self.packageList,ipath):                    metaPackage.addNewListItem(self.packageList,metaPackage.createNewItem(filename,True,path),True,self.packageView)                    ret = metaPackage.updatePackageCount(self.packageList)                    self.updateCountView(ret)                else:                    from messageBox import MessageBox                    MessageBox().ShowError(msg.MESSAGE_0005 %filename,self.frmCreateCD)                self.cursorManager.setBusy(self.frmCreateCD,False)                                    def on_btnAddDeb_clicked(self,widget):                self.cmdAddDeb.set_sensitive(False)                result, files = self.util.openSelectDialog (msg.MESSAGE_0006,msg.MESSAGE_0007,"*.deb",True)        if result == gtk.RESPONSE_OK:            for nFile in files:                path,filename = os.path.split(nFile)                if not metaPackage.itemExistSearch(self.packageList,filename,path):                        metaPackage.addNewListItem(self.packageList,metaPackage.createNewItem(filename,True,path),True, self.packageView)                        ret = metaPackage.updatePackageCount(self.packageList)                        self.updateCountView(ret)                else:                    from messageBox import MessageBox                    MessageBox().ShowError(msg.MESSAGE_0005 % (filename),self.frmCreateCD)                self.cmdAddDeb.set_sensitive(True)        return    def on_button_press_event(self, widget, event):        if event.button == 3 and event.type == gtk.gdk.BUTTON_PRESS:            c = utils.ContextMenu(self)            c.addMenuItem(msg.MESSAGE_0009, self.on_checkAll)            c.addMenuItem(msg.MESSAGE_0010, self.on_uncheckAll)            c.addMenuItem("-")            c.addMenuItem(msg.MESSAGE_0011, self.on_removePackage)            c.addMenuItem("-")            c.addMenuItem(msg.MESSAGE_0012, self.on_invertcheckAll)            c.popup(None, None, None, event.button, event.get_time())        return        def checkUncheck(self,iType,path = None, model = None):        self.cursorManager.setBusy(self.frmCreateCD,True)                if iType == 0:            metaPackage.removePackage(self.packageView)        elif iType == 1:            metaPackage.checkAll(self.packageList,self.checkOld)        elif iType == 2:            metaPackage.uncheckAll(self.packageList)        elif iType == 3:            metaPackage.invertcheckAll(self.packageList,self.checkOld)        elif iType == 4:            metaPackage.Column_toggled(path,model,self.checkOld)            # if user wants, aptoncd will check dependets packages             if self.ckbtnAutoSelectDepends.get_active():                if model[path][config.C_CHECKED]:                    metaPackage.checkDepends(self.packageList,model[path][config.C_PKG].get_pkg_depends())                    ret =metaPackage.updatePackageCount(self.packageList)            self.updateCountView(ret)        self.cursorManager.setBusy(self.frmCreateCD,False)            def on_removePackage(self, *args):        self.checkUncheck(0)        return        def on_checkAll(self,*args):        self.checkUncheck(1)        return        def on_uncheckAll(self,*args):        self.checkUncheck(2)        return        def on_invertcheckAll(self,*args):        self.checkUncheck(3)        return        def on_Column_toggled(self, cell, path, model):        self.checkUncheck(4, path, model)                return                # Create APTonCD    def on_btnCreateGo_clicked(self,widget, *args):        self.isError = False        self.entryIsoFilename = self.gladeFile.get_widget("entryIsoFilename").get_text()        	nbrSelectedPackages = metaPackage.countChecked(self.packageList)[2]			if nbrSelectedPackages == 0:	   mReturn = MessageBox().ShowError((msg.MESSAGE_0069),self.frmCreateCD)           self.isError = True	        if self.entryIsoFilename !="":            if not self.util.isValidFileName(self.entryIsoFilename):                mReturn = MessageBox().ShowError((msg.MESSAGE_0024  % ( self.entryIsoFilename)),self.frmCreateCD)                self.isError = True                if not self.isError:            self.cmdCreateGo.set_sensitive(False)            self.cmdCancel.set_sensitive(False)                         toMainDir = self.gladeFile.get_widget("fileIsoTo").get_filename()                    if self.util.checkAccess(toMainDir):                self.wProgress = ProgressWindow.AptOnCDProgressDialog(self.frmCreateCD)                self.wProgress.Title("APTonCD")                self.wProgress.TaskTitle(msg.MESSAGE_0013)                self.wProgress.Task(msg.MESSAGE_0002)                self.wProgress.Description(msg.MESSAGE_0014)                    if not self.createAptOnCD():                    self.isError = True            else:                    MessageBox().ShowError(msg.MESSAGE_0015,self.frmCreateCD)                    self.isError = True                            self.cmdCreateGo.set_sensitive(True)        self.cmdCancel.set_sensitive(True)                #return self.isError            def createAptOnCD(self):        import datetime                errorMsg=""        isos = []                # -- get the user's preferences --        toMainDir = self.gladeFile.get_widget("fileIsoTo").get_filename()                if not self.util.checkAccess(toMainDir):            MessageBox().ShowError(msg.MESSAGE_0015,self.frmCreateCD)            return False        media = self.cboMediaCreate.get_active_text()                    config.set("cache", "media", media)                        config.write(config.CONFIG_FILE)                metaPackActive = self.ckbtnMetaPackage.get_active()        tmpdir = "/tmp/aptoncd-c/"        tmpmetapackageDir = tmpdir +"metapackage/"        tmppackages = tmpdir + "packages/"                self.util.mkdir(tmpdir,True)                if metaPackActive:            self.util.mkdir(tmpmetapackageDir + 'DEBIAN/',True)        else:            self.util.removePath(tmpmetapackageDir )                    self.wProgress.show()                iIndex = 0                # --- Copy the packages ---                # get selected packages in the list        filesToCopy = [files for files in self.packageList if files[config.C_CHECKED]]        self.wProgress.TaskLenght(len(filesToCopy)-1)                if media == 'DVD':            isoFileList = self.CreateIsoList(config.DVD,filesToCopy)        else:            isoFileList = self.CreateIsoList(config.CD,filesToCopy)                for cds in isoFileList.keys():            self.wProgress.Task(msg.MESSAGE_0002)                        # --- some meta-package configs ---            controlFile =  tmpmetapackageDir + 'DEBIAN/control'            self.util.delFile(controlFile)                    mPack = metaPackage.MetaPackage(controlFile)                    destination = tmppackages+ media +"_" + cds.__str__() + "/"            pkgdest = destination + 'packages/'                        self.util.mkdir(destination,True)            self.util.mkdir(pkgdest,True)                                    for pkg in isoFileList[cds]:                iIndex +=1                self.wProgress.update(iIndex)                mPack.appendPackage(pkg.get_pkg_Name())                filedestination = pkgdest  + pkg.get_pkg_FileName()                if self.wProgress.cancel_status:                    errorMsg = msg.MESSAGE_0016                    break                                    pkg.copyTo(filedestination )                self.wProgress.Task(msg.MESSAGE_0017 % pkg.get_pkg_FileName())                        if self.wProgress.cancel_status or len(errorMsg)>0:                break                        if metaPackActive:                if not mPack.write():                    errorMsg = msg.MESSAGE_0018                result = os.system('dpkg-deb -b ' + tmpmetapackageDir.replace(' ','\ ') + ' ' + pkgdest.replace(' ','\ ')  + mPack.get_mtFileName() + ' > /dev/null 2> /dev/null')                self.util.delFile(controlFile)                            # --- Scan the packages ---            if self.wProgress.cancel_status:                errorMsg = msg.MESSAGE_0016                break                        self.wProgress.Task(msg.MESSAGE_0019)            while gtk.events_pending():    gtk.main_iteration()                        curdir = os.getcwd()            os.chdir(destination)            PackagesFile = destination.replace(' ','\ ') + 'Packages'                  os.system('apt-ftparchive packages packages/ > ' + PackagesFile)            utils.compress(PackagesFile, PackagesFile)                        fileObj = gzip.GzipFile(os.path.join(destination +'Packages.gz' ), 'wb');            fileObj.write(file(os.path.join(destination +'Packages' ), 'rb').read())            fileObj.close()                        os.system('apt-ftparchive release  ./ > ./Release')                             	    os.chdir(curdir)      	                #Write aptoncd.inf            infoFile = destination + 'aptoncd.info'            info = mediaInfo.mediaInfo(infoFile)            info.write()      	          	    #write .disk/info      	    diskinfodir = os.path.join(destination +'.disk')      	    self.util.mkdir(diskinfodir,True)      	    infoDiskFile = os.path.join(diskinfodir,'info')      	    infoDisk = mediaInfo.aptDiskInfo(infoDiskFile,media + cds.__str__())      	    infoDisk.write()	    #write README.diskdefines      	    infoDiskDefinesFile = os.path.join(destination,'README.diskdefines')      	    infoDiskDefines = mediaInfo.aptDiskDefines(infoDiskDefinesFile,cds.__str__(),cds.__str__())      	    infoDiskDefines.write()          	                # --- Make the .iso image ---            if self.wProgress.cancel_status:                errorMsg = msg.MESSAGE_0016                break                            today = datetime.date.today().strftime('%Y%m%d') #            if self.entryIsoFilename == "":                fileNames = [nFile for nFile in os.listdir(toMainDir) if ( 'aptoncd-' + today +"-" + media + cds.__str__() in nFile  )]                if len(fileNames) >0:                    fileDestiny = 'aptoncd-' + today +"-" + media + cds.__str__() +'-'+str(len(fileNames)) +'.iso'                else:                    fileDestiny = 'aptoncd-' + today +"-" + media + cds.__str__() +'.iso'            else:                fileNames = [nFile for nFile in os.listdir(toMainDir) if ( self.entryIsoFilename + "-" + media + cds.__str__() in  nFile)]                if len(fileNames) >0:                    fileDestiny = self.entryIsoFilename + "-" + media + cds.__str__() +'-' +str( len(fileNames)) +'.iso'                else:                    fileDestiny = self.entryIsoFilename + "-" + media + cds.__str__() +'.iso'                            finalDestiny = os.path.join(toMainDir, fileDestiny)            isos.append(finalDestiny)                        self.wProgress.Task(msg.MESSAGE_0020)            while gtk.events_pending():    gtk.main_iteration()            os.system('mkisofs -quiet -iso-level 4 -pad -l -r -J -joliet-long -v -V "APTonCD" -hide-rr-moved -o ' + finalDestiny.replace(' ','\ ') + ' ' + destination.replace(' ','\ ') + ' 2> /dev/null')            if self.wProgress.cancel_status:                errorMsg = msg.MESSAGE_0016                break             self.wProgress.Task(msg.MESSAGE_0021)                #clean folders created previously            self.util.removePath(tmpdir)                self.wProgress.hide()        if len(errorMsg) > 0 :            #mReturn = MessageBox().ShowInfo((msg.MESSAGE_0022  % ( finalDestiny,errorMsg)),self.frmCreateCD)            return False        else :            if MessageBox().ShowQuestion((msg.MESSAGE_0023 % finalDestiny),self.frmCreateCD):                for finalDestiny in isos:                    os.system('/usr/bin/nautilus-cd-burner --source-iso=' + finalDestiny.replace(' ','\ ') + ' &')                   self.frmCreateCD.destroy()             return True                                                def CreateIsoList(self,size,packList = []):                cds = {}        currentCD = 1        actualSize = 0                        for n in packList:            pkg = n[config.C_PKG]            if not currentCD in cds: cds[currentCD] = []            if ( actualSize + pkg.get_pkg_Size()) > size:                    actualSize = 0                    currentCD += 1                    cds[currentCD] = []            cds[currentCD].append(pkg)            actualSize += pkg.get_pkg_Size()                        return cds

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -