--- OSA_system2/OSAS_helpers.py 2005/02/11 16:27:01 1.4 +++ OSA_system2/OSAS_helpers.py 2005/03/07 19:33:42 1.8 @@ -4,7 +4,8 @@ from types import * import xml.dom.minidom import zLOG -OSASObjectTypes=['OSAS_metaDataFile','OSAS_dir','OSAS_file','OSAS_imageFolder','OSAS_dir_archive','OSAS_file_archive'] +OSASObjectTypes=['OSAS_metaDataFile','OSAS_dir','Osas_file','OSAS_imageFolder','OSAS_dir_archive','OSAS_file_archive','OSAS_videoFolder','OSAS_videoFile','OSAS_videoFolder'] +OSASDirObjects=['OSAS_dir','OSAS_imageFolder',] OSASExcludedFiles=['TheVolumeSettingsFolder','TheFindByContentFolder'] @@ -84,43 +85,66 @@ def getBib(nodelist): #print rc return rc+"" -def getPropertyOfDirs(path,property): +def getPropertyOfDirs(indexMeta,propertyName): """gibt Eigenschaften der directorys gemaess Index.metas file in path aus - @param path: Pfad in dem das index.meta liegt - @param propery: Property die ausgegebenwerden soll + @param indexMeta: index.meta file + @param propertyName: Property die ausgegebenwerden soll @return: Hash mit key name des Directories and Value von property, None if error. """ ret={} + try: - dom=xml.dom.minidom.parse(os.path.split(path)[0]+"/index.meta") - for node in dom.getElementsByTagName("dir"): + dom=xml.dom.minidom.parseString(indexMeta) + + rootProp=xml.xpath.Evaluate("/resource/%s"%propertyName,dom) + if len(rootProp)==1: + property= getText(rootProp[0].childNodes) + ret["."]=property - property= getText(node.getElementsByTagName("content-type")[0].childNodes) - dirName=getText(node.getElementsByTagName("name")[0].childNodes) - ret[dirName]=property + for node in dom.getElementsByTagName("dir"): + try: + property= getText(node.getElementsByTagName(propertyName)[0].childNodes) + dirName=getText(node.getElementsByTagName("name")[0].childNodes) + ret[dirName]=property + except: + ret[dirName]=none return ret except: return ret -def dirHasProperty(path,propertyName,propertyValue): + +def dirHasProperty(path,indexMeta,propertyName,propertyValue): """gibt 1 zurück falls path hat propertyName und properName=propertyValue @param propertyName:Property von path in index.meta des parent folders von path @param propertyValue:Wert der Property @param path: Pfad der getestet werden soll """ - if getPropertyOfDirs(os.path.split(path)[0],propertyName).get(os.path.split(path)[1],None)==propertyValue: + if getPropertyOfDirs(indexMeta,propertyName).get(os.path.split(path)[1],None)==propertyValue: return 1 else: return 0 -def isImageFolder(path): +def isImageFolder(path,indexMeta): """check if folder contains images without metadata or with metadata""" # metadaten ergeben imagefolder - if dirHasProperty(path,'content-type','images'): + if dirHasProperty(path,indexMeta,'content-type','images'): return 1 - #sonst rate ob folder images enthaelten durch test nach suffix +def isVideoFolder(path,indexMeta): + """check if folder contains images without metadata or with metadata""" + # metadaten ergeben imagefolder + print "test video",path + if dirHasProperty(path,indexMeta,'media-type','video'): + return 1 + +def isVideoStream(path,indexMeta): + if dirHasProperty(path,indexMeta,'container-format','quicktime'): + return 1 + +def isImageFolderGuess(path): + """check if folder contains images without metadata or with metadata""" + #sonst rate ob folder images enthaelten durch test nach suffix try: dir=os.listdir(path) @@ -144,7 +168,7 @@ def checkOSASFileType(object): """ if os.path.split(object)[1][0]=="." or os.path.split(object)[1] in OSASExcludedFiles: return None - elif isImageFolder(object): + elif isImageFolderGuess(object): return 'OSAS_imageFolder' elif os.path.split(object)[1]=="index.meta": return 'OSAS_metaDataFile'