version 1.3, 2004/12/23 10:48:28
|
version 1.7, 2005/03/03 20:41:00
|
Line 4 from types import *
|
Line 4 from types import *
|
import xml.dom.minidom |
import xml.dom.minidom |
import zLOG |
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'] |
OSASExcludedFiles=['TheVolumeSettingsFolder','TheFindByContentFolder'] |
OSASExcludedFiles=['TheVolumeSettingsFolder','TheFindByContentFolder'] |
|
|
|
|
Line 69 def getMetaInfoFromXML(path,xmlInfo):
|
Line 69 def getMetaInfoFromXML(path,xmlInfo):
|
|
|
return html |
return html |
|
|
def getMetaFile(self,path): |
|
"""get index.meta and translate it to HTML""" |
|
html=[] |
|
if not os.path.exists(path+"/index.meta"): |
|
return self.getMetaInfoFromIndexMeta(path) |
|
#return "NO_METADATA" |
|
else: |
|
f = os.popen("cat "+path+"/index.meta","r") |
|
lines = f.read() |
|
dom = xml.dom.minidom.parseString(lines) |
|
try: |
|
name=getText(dom.getElementsByTagName("name")[0].childNodes) |
|
except: |
|
name="NOT_DEFINED!!!" |
|
try: |
|
creator=getText(dom.getElementsByTagName("creator")[0].childNodes) |
|
except: |
|
creator="NOT_DEFINED!!!" |
|
|
|
try: |
|
creation_date=getText(dom.getElementsByTagName("archive-creation-date")[0].childNodes) |
|
except: |
|
creation_date="NOT_DEFINED!!!" |
|
|
|
try: |
|
description=getText(dom.getElementsByTagName("description")[0].childNodes) |
|
except: |
|
description="NOT_DEFINED!!!" |
|
|
|
try: |
|
type=getText(dom.getElementsByTagName("content-type")[0].childNodes) |
|
except: |
|
type="" |
|
if type=="scanned document": |
|
html="<h3>Document: "+name+"</h3>" |
|
elif type=="folder": |
|
html="<h3>Folder: "+name+"</h3>" |
|
else: |
|
html="<h3>Document: "+name+"</h3>" |
|
|
|
html=html+"<p><i>created by: "+creator+" at: "+creation_date+"</i></p>" |
|
html=html+"<h4>Description</h4><p>"+description+"</p>" |
|
try: |
|
bib = dom.getElementsByTagName("meta")[0].getElementsByTagName("bib")[0] |
|
if bib.attributes.has_key('type'): |
|
html=html+"<h4>Info ("+bib.attributes['type'].value+")</h4>" |
|
else: |
|
html=html+"<h4>Info</h4>" |
|
html=html+getBib(bib.childNodes) |
|
|
|
except: |
|
"""none""" |
|
|
|
# html=html.encode('utf-8','replace')+getBib(bib.childNodes).encode('utf-8','replace') |
|
|
|
return html |
|
|
|
def getBib(nodelist): |
def getBib(nodelist): |
""" translate bibliographical entries """ |
""" translate bibliographical entries """ |
Line 140 def getBib(nodelist):
|
Line 84 def getBib(nodelist):
|
#print rc |
#print rc |
return rc+"</table>" |
return rc+"</table>" |
|
|
def getPropertyOfDirs(path,property): |
def getPropertyOfDirs(indexMeta,propertyName): |
"""gibt Eigenschaften der directorys gemaess Index.metas file in path aus |
"""gibt Eigenschaften der directorys gemaess Index.metas file in path aus |
@param path: Pfad in dem das index.meta liegt |
@param indexMeta: index.meta file |
@param propery: Property die ausgegebenwerden soll |
@param propertyName: Property die ausgegebenwerden soll |
@return: Hash mit key name des Directories and Value von property, None if error. |
@return: Hash mit key name des Directories and Value von property, None if error. |
""" |
""" |
ret={} |
ret={} |
|
|
try: |
try: |
dom=xml.dom.minidom.parse(os.path.split(path)[0]+"/index.meta") |
dom=xml.dom.minidom.parseString(indexMeta) |
for node in dom.getElementsByTagName("dir"): |
|
|
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) |
for node in dom.getElementsByTagName("dir"): |
|
try: |
|
property= getText(node.getElementsByTagName(propertyName)[0].childNodes) |
dirName=getText(node.getElementsByTagName("name")[0].childNodes) |
dirName=getText(node.getElementsByTagName("name")[0].childNodes) |
ret[dirName]=property |
ret[dirName]=property |
|
except: |
|
ret[dirName]=none |
return ret |
return ret |
except: |
except: |
|
|
return ret |
return ret |
|
|
def dirHasProperty(path,propertyName,propertyValue): |
|
|
def dirHasProperty(path,indexMeta,propertyName,propertyValue): |
"""gibt 1 zurück falls path hat propertyName und properName=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 propertyName:Property von path in index.meta des parent folders von path |
@param propertyValue:Wert der Property |
@param propertyValue:Wert der Property |
@param path: Pfad der getestet werden soll |
@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 |
return 1 |
else: |
else: |
return 0 |
return 0 |
|
|
def isImageFolder(path): |
def isImageFolder(path,indexMeta): |
"""check if folder contains images without metadata or with metadata""" |
"""check if folder contains images without metadata or with metadata""" |
# metadaten ergeben imagefolder |
# metadaten ergeben imagefolder |
if dirHasProperty(path,'content-type','images'): |
if dirHasProperty(path,indexMeta,'content-type','images'): |
return 1 |
return 1 |
|
|
|
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 |
#sonst rate ob folder images enthaelten durch test nach suffix |
try: |
try: |
dir=os.listdir(path) |
dir=os.listdir(path) |
Line 200 def checkOSASFileType(object):
|
Line 167 def checkOSASFileType(object):
|
""" |
""" |
if os.path.split(object)[1][0]=="." or os.path.split(object)[1] in OSASExcludedFiles: |
if os.path.split(object)[1][0]=="." or os.path.split(object)[1] in OSASExcludedFiles: |
return None |
return None |
elif isImageFolder(object): |
elif isImageFolderGuess(object): |
return 'OSAS_imageFolder' |
return 'OSAS_imageFolder' |
elif os.path.split(object)[1]=="index.meta": |
elif os.path.split(object)[1]=="index.meta": |
return 'OSAS_metaDataFile' |
return 'OSAS_metaDataFile' |