コード例 #1
0
    def realHandle(self,path):

        foldername = os.path.basename(path)
        date = mover.parseDateFolderName(foldername)

        if None == date:
            print "ignoring file (no parsable date)"
            return

        # are there jpegs ? raws ? films ?
        # returns a dictionary: extension -> file_list
        filesByType = self.analyzeFolder(path)

        canvasPath = os.path.join(str(date.year),foldername)

        folderNames = {}
        # move files
        for (typefolder,linkfolder) in (
                                ('jpeg','to_triage'),
                                ('raw','to_develop'),
                                ('film','to_triage')):

            newfolder = self.makeNewFolderName(typefolder,canvasPath)
            folderNames[typefolder] = newfolder

            if 0 < len(filesByType[typefolder]):

                if not os.path.exists(newfolder):
                    newfolder = mover.makeDirs(newfolder)

                symlink = os.path.join(self._config.root_folder,self._config.g(('paths',typefolder)),self._config.g(('paths',linkfolder)),foldername)
                print "symlink",newfolder, symlink

                mover.symlink( newfolder , symlink )

                for (file,subfold) in filesByType[typefolder]:
                    dir = os.path.join(newfolder,subfold)
                    if not os.path.exists(dir):
                        dir = mover.makeDirs(dir)
                    renamedFile = os.path.join(dir,os.path.basename(file))
                    print "rename",file,renamedFile
                    mover.moveFile(file,os.path.join(newfolder,renamedFile))

        if 0 < len(filesByType['raw']):
            print "there are raws, reference output jpeg"
            outputJp = self._config.g(('paths','outputJpeg'))
            ojFolder = os.path.join(folderNames['raw'],outputJp)
            if not os.path.exists(ojFolder):
                newfolder = mover.makeDirs(ojFolder)
            if 0 == len(filesByType['jpeg']):
                print "no jpeg. symlink outputJpeg"
                # symlink outputJpeg directly as the jpeg folder if it does not exist
                mover.symlink(ojFolder, folderNames['jpeg'] )
            else:
                # symlink outputJpeg as subfolder of jpeg folder if it exists
                mover.symlink(ojFolder , os.path.join(folderNames['jpeg'],outputJp) )
コード例 #2
0
 def handleFile(self,handledFilePath):
     print "handleFile", handledFilePath
     
     # extract the date of the file
     imgDatetime = self.getImageDate(handledFilePath)
     
     # no date? Ignore the file.
     if None != imgDatetime:
         print "Handling",os.path.basename(handledFilePath),imgDatetime
         dateFolderPath = self.makeFolder(imgDatetime, handledFilePath)
         mover.moveFile(handledFilePath,
                        os.path.join(dateFolderPath,os.path.basename(handledFilePath)))