--- zogiLib/zogiLib.py 2004/07/19 16:31:46 1.32 +++ zogiLib/zogiLib.py 2004/07/21 17:44:51 1.34 @@ -14,7 +14,7 @@ import urllib import types from Globals import package_home -ZOGIVERSION = "0.9.5 ROC:25.6.2004" +ZOGIVERSION = "0.9.7 ROC:21.7.2004" def cropf(f): """returns a float with reduced precision""" @@ -388,12 +388,15 @@ class zogiLib(Folder): {'label':'Main Config','action':'changeZogiLibForm'}, ) - def __init__(self, id, title, digilibBaseUrl,localFileBase, version="book", basePath="", dlTarget=None): + def __init__(self, id, title, digilibBaseURL,localFileBase, version="book", basePath="", dlTarget=None, dlServerURL=None): """init""" self.id=id self.title=title - self.digilibBaseUrl=digilibBaseUrl + self.digilibBaseURL=digilibBaseURL + self.dlServerURL = dlServerURL + if digilibBaseURL and not dlServerURL: + self.dlServerURL = re.sub("/servlet/Scaler\?","",self.digilibBaseURL) self.localFileBase=localFileBase self.basePath=basePath @@ -410,40 +413,45 @@ class zogiLib(Folder): def getContextStatic(self): """get all the contexts which go to static pages""" + try: + dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName())) + contexts=dom.getElementsByTagName("context") - dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName())) - contexts=dom.getElementsByTagName("context") - - ret=[] - for context in contexts: - name=getUniqueElementText(context.getElementsByTagName("name")) - - link=getUniqueElementText(context.getElementsByTagName("link")) - if name or link: - ret.append((name,link)) - return ret + ret=[] + for context in contexts: + name=getUniqueElementText(context.getElementsByTagName("name")) + + link=getUniqueElementText(context.getElementsByTagName("link")) + if name or link: + ret.append((name,link)) + return ret + except: + return [] def getContextDatabases(self): """get all dynamic contexts""" - dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName())) - contexts=dom.getElementsByTagName("context") - ret=[] - for context in contexts: - metaDataLinks=context.getElementsByTagName("meta-datalink") - for metaDataLink in metaDataLinks: - db=metaDataLink.getAttribute("db") - link=self.REQUEST['URL1']+"/dl_db?db=%s"%db - if db: - ret.append((db,link)) - metaDataLinks=context.getElementsByTagName("meta-baselink") - - for metaDataLink in metaDataLinks: - db=metaDataLink.getAttribute("db") - link=self.REQUEST['URL1']+"/dl_db?db=%s"%db - if db: - ret.append((db,link)) - - return ret + try: + dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName())) + contexts=dom.getElementsByTagName("context") + ret=[] + for context in contexts: + metaDataLinks=context.getElementsByTagName("meta-datalink") + for metaDataLink in metaDataLinks: + db=metaDataLink.getAttribute("db") + link=self.REQUEST['URL1']+"/dl_db?db=%s"%db + if db: + ret.append((db,link)) + metaDataLinks=context.getElementsByTagName("meta-baselink") + + for metaDataLink in metaDataLinks: + db=metaDataLink.getAttribute("db") + link=self.REQUEST['URL1']+"/dl_db?db=%s"%db + if db: + ret.append((db,link)) + + return ret + except: + return ret def formatHTML(self,url,label=None,viewUrl=None): @@ -468,7 +476,11 @@ class zogiLib(Folder): def getMetaData(self): """getMetaData""" - dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName())) + try: + dom=xml.dom.minidom.parse(urllib.urlopen(self.getMetaFileName())) + except: + return "error metadata" + contexts=dom.getElementsByTagName("context") ret=[] db=self.getDLParam("db") @@ -511,7 +523,7 @@ class zogiLib(Folder): def getDLInfo(self): """get DLInfo from digilib server""" paramH={} - baseUrl=re.sub("servlet/Scaler","dlInfo-xml.jsp",self.digilibBaseUrl) + baseUrl=self.dlServerURL+"/dlInfo-xml.jsp" try: url=urllib.urlopen(baseUrl+self.REQUEST['QUERY_STRING']) dom=xml.dom.minidom.parse(url) @@ -520,7 +532,7 @@ class zogiLib(Folder): paramH[param.getAttribute('name')]=param.getAttribute('value') return paramH except: - return null + return {} def createHeadJS(self): @@ -554,7 +566,7 @@ class zogiLib(Folder): # if not explicitly defined take normal request if not requestString: requestString = self.getAllDLParams() - url = self.digilibBaseUrl+requestString + url = self.digilibBaseURL+requestString # construct bottom and side insets b_par = "" s_par = "" @@ -614,11 +626,11 @@ class zogiLib(Folder): def dl_lib_js(self): """javascript""" - return sendFile(self, 'js/dl_lib.js', 'text/plain') + return sendFile(self, 'js/dllib.js', 'text/plain') def js_lib_js(self): """javascript""" - return sendFile(self, 'js/js_lib.js', 'text/plain') + return sendFile(self, 'js/baselib.js', 'text/plain') def optionwindow(self): """showoptions""" @@ -827,12 +839,13 @@ class zogiLib(Folder): self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+'?'+params) def getMetaFileName(self): - urlbase=re.sub('/servlet/Scaler','/dlContext-xml.jsp',self.digilibBaseUrl) - - - return urlbase+self.getAllDLParams() - + url=self.dlServerURL+'/dlContext-xml.jsp?'+self.getAllDLParams() + return urlbase + def getToolbarPageURL(self): + """returns a toolbar-enabled page URL""" + url=self.dlServerURL+'/digimage.jsp?'+self.getAllDLParams() + return url def getDLTarget(self): """returns dlTarget""" @@ -1081,10 +1094,10 @@ class zogiLib(Folder): pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/changeZogiLibForm.zpt')).__of__(self) return pt() - def changeZogiLib(self,title,digilibBaseUrl, localFileBase, version, basePath, dlTarget, RESPONSE=None): + def changeZogiLib(self,title,digilibBaseURL, localFileBase, version, basePath, dlTarget, RESPONSE=None): """change it""" self.title=title - self.digilibBaseUrl=digilibBaseUrl + self.digilibBaseURL=digilibBaseURL self.localFileBase=localFileBase self.basePath = basePath self.layout=version @@ -1102,9 +1115,9 @@ def manage_addZogiLibForm(self): pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/addZogiLibForm')).__of__(self) return pt() -def manage_addZogiLib(self,id,title,digilibBaseUrl, localFileBase,version="book",basePath="",dlTarget="digilib",RESPONSE=None): +def manage_addZogiLib(self,id,title,digilibBaseURL, localFileBase,version="book",basePath="",dlTarget="digilib",RESPONSE=None): """add dgilib""" - newObj=zogiLib(id,title,digilibBaseUrl, localFileBase, version, basePath, dlTarget) + newObj=zogiLib(id,title,digilibBaseURL, localFileBase, version, basePath, dlTarget) self.Destination()._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main')