--- OSA_system2/OSAS_browser.py 2005/04/06 09:18:41 1.18 +++ OSA_system2/OSAS_browser.py 2010/02/15 19:09:10 1.23 @@ -8,12 +8,21 @@ from Products.PageTemplates.PageTemplate from OFS.Folder import Folder from OFS.SimpleItem import SimpleItem from Globals import InitializeClass,package_home -import zLOG + +import logging + +#ersetzt logging +def logger(txt,method,txt2): + """logging""" + logging.info(txt+ txt2) + + import base64 import bz2 import os import os.path import stat +import Ft.Xml.XPath import xml.dom.minidom from types import * import xmlrpclib @@ -24,7 +33,7 @@ def decodeRPC(string): class OSAS_storeOnline(SimpleItem): - """Webfrontend für das Storagesystem + """Webfrontend fuer das Storagesystem liefert Browserumgebung """ meta_type="OSAS_StoreOnline__neu" @@ -78,7 +87,7 @@ class OSAS_storeOnline(SimpleItem): return self.getMetaInfoFromIndexMeta(path) #return "NO_METADATA" else: - + dom = xml.dom.minidom.parseString(f) try: @@ -158,10 +167,10 @@ class OSAS_storeOnline(SimpleItem): path=os.path.normpath(path) try: - - dom=xml.dom.minidom.parseString(server.getFile(indexMeta)) + dom = NonvalidatingReader.parseString(server.getFile(indexMeta),"http://www.mpiwg-berlin.mpg.de/") + except: - zLOG.LOG("OSAS_browser (findEntryInIndexMeta)",zLOG.ERROR,"Cannot parse: %s"%indexMeta) + logger("OSAS_browser (findEntryInIndexMeta)",logging.ERROR,"Cannot parse: %s"%indexMeta) return None path=path.replace(realPath,'') @@ -173,8 +182,8 @@ class OSAS_storeOnline(SimpleItem): searchPath=searchPath[1:] #ist path ein directory? xpath="/resource/dir[name='%s' and path='%s']"%(name,searchPath) + dirs=Ft.Xml.XPath.Evaluate(xpath,contextNode=dom) - dirs=xml.xpath.Evaluate(xpath,dom) if len(dirs)>0: return dirs[0].toxml @@ -182,8 +191,8 @@ class OSAS_storeOnline(SimpleItem): #ist path ein file? xpath="/resource/file[name='%s' and path='%s']"%(name,searchPath) - dirs=xml.xpath.Evaluate(xpath,dom) + dirs=Ft.Xml.XPath.Evaluate(xpath,contextNode=dom) if len(dirs)>0: return dirs[0].toxml() @@ -207,21 +216,21 @@ class OSAS_storeOnline(SimpleItem): realPath=os.path.split(indexMeta)[0] path=path.replace(realPath,"") - if path and (path[0]==os.sep): #falls am Anfang os.sep steht lösche dieses. + if path and (path[0]==os.sep): #falls am Anfang os.sep steht loesche dieses. path=path[1:] #teste ob schon im cache zur Zeit kein chache wenn index.meta file nicht im selben ordner wie path. - if self._v_metaFiles.has_key(startPath) and (self._v_metaFiles[realPath][0]==stats[stat.ST_MTIME]) and (path==""): - - return self._v_metaFiles[startPath][1] + #if self._v_metaFiles.has_key(startPath) and (self._v_metaFiles[realPath][0]==stats[stat.ST_MTIME]) and (path==""): + # + # return self._v_metaFiles[startPath][1] try: dom=xml.dom.minidom.parseString(server.getFile(indexMeta)) except: - zLOG.LOG("OSAS_browser (getSubDirsFromIndexMeta)",zLOG.ERROR,"Cannot parse: %s"%indexMeta) + logger("OSAS_browser (getSubDirsFromIndexMeta)",logging.ERROR,"Cannot parse: %s"%indexMeta) return ret dirs=[] @@ -297,14 +306,14 @@ class OSAS_storeOnline(SimpleItem): if metaDataId: metaData=getattr(self,metaDataId) if not (getattr(metaData,'meta_type','')=='OSAS_Metadata__neu'): - zLOG.LOG('OSAS_browser (readObjectsFromPath)',zLOG.ERROR,"%s is not OSAS_Metadata") + logger('OSAS_browser (readObjectsFromPath)',logging.ERROR,"%s is not OSAS_Metadata") metaData=None else: metaDatas=self.ZopeFind(self.aq_parent,obj_metatypes=['OSAS_Metadata__neu'],search_sub=1) if metaDatas: metaData=metaDatas[0][1] else: - zLOG.LOG('OSAS_browser (readObjectsFromPath)',zLOG.INFO,"There is no OSAS_Metadata Object") + logger('OSAS_browser (readObjectsFromPath)',logging.INFO,"There is no OSAS_Metadata Object") metaData=None #print "md",metaData @@ -320,9 +329,9 @@ class OSAS_storeOnline(SimpleItem): return None #teste ob schon im cache - if self._v_fileSystem.has_key(realPath) and (self._v_fileSystem[realPath][0]==stats[stat.ST_MTIME]): - - return self._v_fileSystem[realPath][1] + #if self._v_fileSystem.has_key(realPath) and (self._v_fileSystem[realPath][0]==stats[stat.ST_MTIME]): + # + # return self._v_fileSystem[realPath][1] indexMetas=server.getAllIndexMetasOfSubDirs(realPath) dir=indexMetas.keys() @@ -348,9 +357,9 @@ class OSAS_storeOnline(SimpleItem): if metaDataStr: display=metaData.getDisplayFieldsAsStr(metaDataStr) - dom=xml.dom.minidom.parseString(metaDataStr) - if len(xml.xpath.Evaluate("/file/meta/video-file",dom))>0: + dom = NonvalidatingReader.parseString(metaDataStr,"http://www.mpiwg-berlin.mpg.de/") + if len(Ft.Xml.XPath.Evaluate("/file/meta/video-file",contextNode=dom))>0: fileType='OSAS_videoFile' else: @@ -374,10 +383,10 @@ class OSAS_storeOnline(SimpleItem): for handler in self.ZopeFind(self.aq_parent,obj_metatypes=['OSAS_HandlerObject__neu'],search_sub=1): if type in handler[1].objectTypes: - try: + try: path=path.replace(getattr(handler[1],'ignorePath',''),'') except: - pass + pass url=handler[1].prefix%path text=handler[1].title string="""%s"""%(url,text) @@ -475,7 +484,7 @@ class OSAS_storeOnline(SimpleItem): InitializeClass(OSAS_storeOnline) - + def manage_addOSAS_storeOnlineForm(self): """interface for adding the OSAS_storeOnline""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addStoreOnline.zpt')).__of__(self)