import os import os.path import stat from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Globals import InitializeClass,package_home from OFS.SimpleItem import SimpleItem import xml.dom.minidom import OSAS_helpers from OSAS_helpers import * class OSAS_storeOnlineServer(SimpleItem): """Server for store Online system""" meta_type="OSAS_server" def findIndexMeta(self,realPath=""): """finde Rueckwaerts im Baum von Pfad ausgehend, dass erste index.meta file @keyword path: default ist "", Pfad auf das Object @return: None falls kein index.meta existiert sonst Pfad auf das index.meta """ #suche index.meta while (not os.path.exists(os.path.join(realPath,'index.meta'))) and (not ((realPath=="") or (realPath=="/"))): realPath=os.path.split(realPath)[0] if realPath=='' or realPath=='/': if os.path.exists(os.path.join(realPath,'index.meta')): return (os.path.join(realPath,'index.meta')) else: return None else: return os.path.join(realPath,'index.meta') def findIndexMetaWithStats(self,path=""): """finde Rueckwaerts im Baum von Pfad ausgehend, dass erste index.meta file @keyword path: default ist "", Pfad auf das Object @return: None falls kein index.meta existiert sonst Tupel (Pfad auf das index.meta,stats(indexMeta) """ indexMeta=self.findIndexMeta(path) if indexMeta: return (indexMeta,self.getStat(indexMeta)) else: return (None,[]) def getStat(self,path=""): """Gibt stat von path aus @keyword path: default ist "", Pfad @return: stat[path]""" if not os.path.exists(path): #return None,"(ERROR) path %s does not exist."%path return None else: return [x for x in os.stat(path)] def listdir(self,path=""): """list dir""" return os.listdir(path) 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="
created by: "+creator+" at: "+creation_date+"
" html=html+""+description+"
" try: bib = dom.getElementsByTagName("meta")[0].getElementsByTagName("bib")[0] if bib.attributes.has_key('type'): html=html+"