--- OSA_system2/OSAS_helpers.py 2004/11/29 09:48:07 1.1
+++ OSA_system2/OSAS_helpers.py 2005/02/11 17:01:22 1.5
@@ -2,10 +2,12 @@
import os.path
from types import *
import xml.dom.minidom
+import zLOG
-OSASObjectTypes=['OSAS_metaDataFile','OSAS_dir','OSAS_file','OSAS_imageFolder']
+OSASObjectTypes=['OSAS_metaDataFile','OSAS_dir','OSAS_file','OSAS_imageFolder','OSAS_dir_archive','OSAS_file_archive']
OSASExcludedFiles=['TheVolumeSettingsFolder','TheFindByContentFolder']
+
def getText(nodelist):
"""gibt text aus nodelist"""
rc = ""
@@ -14,62 +16,59 @@ def getText(nodelist):
rc = rc + node.data
return rc
-def getMetaFile(path):
+def getMetaInfoFromXML(path,xmlInfo):
"""get index.meta and translate it to HTML"""
html=[]
- if not os.path.exists(path+"/index.meta"):
-
- 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:
+
+ dom = xml.dom.minidom.parseString(xmlInfo)
+ 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="
Document: "+name+"
"
- elif type=="folder":
- html="Folder: "+name+"
"
- else:
- html="Document: "+name+"
"
-
- html=html+"created by: "+creator+" at: "+creation_date+"
"
- html=html+"Description
"+description+"
"
- try:
+ if type=="scanned document":
+ html="Document: "+name+"
"
+ elif type=="folder":
+ html="Folder: "+name+"
"
+ else:
+ html="Document: "+name+"
"
+
+ html=html+"created by: "+creator+" at: "+creation_date+"
"
+ html=html+"Description
"+description+"
"
+ try:
bib = dom.getElementsByTagName("meta")[0].getElementsByTagName("bib")[0]
if bib.attributes.has_key('type'):
- html=html+"Info ("+bib.attributes['type'].value+")
"
- else:
- html=html+"Info
"
+ html=html+"Info ("+bib.attributes['type'].value+")
"
+ else:
+ html=html+"Info
"
html=html+getBib(bib.childNodes)
-
- except:
+
+ except:
"""none"""
# html=html.encode('utf-8','replace')+getBib(bib.childNodes).encode('utf-8','replace')
-
- return html.encode('utf-8')
+
+
+ return html
+
def getBib(nodelist):
""" translate bibliographical entries """
@@ -85,15 +84,16 @@ def getBib(nodelist):
#print rc
return rc+""
-def getPropertyOfDirs(path,property):
+def getPropertyOfDirs(path,property,server):
"""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
@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")
+ dom=xml.dom.minidom.parseString(server.getFile(os.path.split(path)[0]+"/index.meta"))
for node in dom.getElementsByTagName("dir"):
property= getText(node.getElementsByTagName("content-type")[0].childNodes)
@@ -104,26 +104,26 @@ def getPropertyOfDirs(path,property):
return ret
-def dirHasProperty(path,propertyName,propertyValue):
+def dirHasProperty(path,propertyName,propertyValue,server):
"""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(os.path.split(path)[0],propertyName,server).get(os.path.split(path)[1],None)==propertyValue:
return 1
else:
return 0
-def isImageFolder(path):
+def isImageFolder(path,server):
"""check if folder contains images without metadata or with metadata"""
# metadaten ergeben imagefolder
- if dirHasProperty(path,'content-type','images'):
+ if dirHasProperty(path,'content-type','images',server):
return 1
#sonst rate ob folder images enthaelten durch test nach suffix
try:
- dir=os.listdir(path)
+ dir=server.listdir(path)
imagesuffixes=['.gif','.jpg','.jpeg','.png','.tiff','.tif']
ret=""
@@ -139,19 +139,19 @@ def isImageFolder(path):
except:
return 0
-def checkOSASFileType(object):
+def checkOSASFileType(object,server):
"""checke filetype
nicht erkannte type auf werden auf none gesetzt
"""
if os.path.split(object)[1][0]=="." or os.path.split(object)[1] in OSASExcludedFiles:
return None
- elif isImageFolder(object):
+ elif isImageFolder(object,server):
return 'OSAS_imageFolder'
elif os.path.split(object)[1]=="index.meta":
return 'OSAS_metaDataFile'
- elif os.path.isdir(object):
+ elif server.isdir(object):
return 'OSAS_dir'
- elif os.path.isfile(object):
+ elif server.isfile(object):
return 'OSAS_file'
def toList(fields):