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) )
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)))