Changeset 31:c6451e8d5d23 in documentViewer
- Timestamp:
- Apr 10, 2006, 7:51:50 PM (19 years ago)
- Branch:
- default
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
documentViewer.py
r29 r31 15 15 16 16 import os.path 17 import sys 17 18 import cgi 18 19 import urllib … … 43 44 socket.setdefaulttimeout(5) 44 45 return ret 45 46 47 46 48 47 … … 98 97 if not hasattr(self, 'template'): 99 98 # create template folder if it doesn't exist 100 print "no template folder -- creating"101 99 self.manage_addFolder('template') 102 100 … … 114 112 params=cgi.parse_qs(self.REQUEST['QUERY_STRING']) 115 113 if param is not None: 116 if val is None and params.has_key(param): 117 del params[param] 114 if val is None: 115 if params.has_key(param): 116 del params[param] 118 117 else: 119 params[param] = val 120 121 url=self.REQUEST['URL']+"?"+urllib.urlencode(params, doseq=True) 118 params[param] = [str(val)] 119 120 ps = "&".join(["%s=%s"%(k,urllib.quote(v[0])) for (k, v) in params.items()]) 121 url=self.REQUEST['URL']+"?"+ps 122 #url=self.REQUEST['URL']+"?"+urllib.urlencode(params, doseq=True) 122 123 return url 123 124 … … 132 133 133 134 134 def get ParamFromDigilib(self,path,param):135 def getDirinfoFromDigilib(self,path,docinfo=None): 135 136 """gibt param von dlInfo aus""" 137 if docinfo is None: 138 docinfo = {} 139 136 140 imageUrl=self.digilibBaseUrl+"/dirInfo-xml.jsp?mo=dir&fn="+path 137 141 138 zLOG.LOG("documentViewer (getparamfromdigilib)", zLOG.INFO, "dirInfo (%s) from %s"%(param,imageUrl))142 zLOG.LOG("documentViewer (getparamfromdigilib)", zLOG.INFO, "dirInfo from %s"%(imageUrl)) 139 143 140 144 try: 141 145 dom = NonvalidatingReader.parseUri(imageUrl) 142 146 except: 143 return None 144 145 params=dom.xpath("//dir/%s"%param) 146 zLOG.LOG("documentViewer (getparamfromdigilib)", zLOG.INFO, "dirInfo:%s"%params) 147 zLOG.LOG("documentViewer (getparamfromdigilib)", zLOG.ERROR, "error reading %s"%(imageUrl)) 148 raise IOError("Unable to get dirinfo from %s"%(imageUrl)) 149 150 params=dom.xpath("//dir/size") 151 zLOG.LOG("documentViewer (getparamfromdigilib)", zLOG.INFO, "dirInfo:size"%params) 147 152 148 153 if params: 149 return getTextFromNode(params[0]) 154 docinfo['numPages'] = getTextFromNode(params[0]) 155 else: 156 docinfo['numPages'] = 0 157 158 return docinfo 150 159 151 160 … … 158 167 159 168 if dom is None: 160 server= "http://nausikaa.mpiwg-berlin.mpg.de/digitallibrary/servlet/Texter?fn="169 server=self.digilibBaseUrl+"/servlet/Texter?fn=" 161 170 path="/".join(path.split("/")[0:-1]) 162 171 metaUrl=server+path+"/index.meta" … … 174 183 bibtype=bibtype.replace("-"," ") # wrong typesiin index meta "-" instead of " " (not wrong! ROC) 175 184 bibmap=metaData.generateMappingForType(bibtype) 176 if len(bibmap) > 0: 185 print "bibmap: ", bibmap, " for: ", bibtype 186 if len(bibmap) > 0 and len(bibmap['author'][0]) > 0: 177 187 docinfo['author']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['author'][0])[0]) 178 188 docinfo['title']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['title'][0])[0]) … … 192 202 except: 193 203 zLOG.LOG("documentViewer (parseUrlTexttool)", zLOG.INFO,"%s (%s)"%sys.exc_info()[0:2]) 194 r eturn docinfo204 raise IOError("Unable to get texttool info from %s"%(url)) 195 205 196 206 archivePaths=dom.xpath("//resource/archive-path") 197 198 207 if archivePaths and (len(archivePaths)>0): 199 208 archivePath=getTextFromNode(archivePaths[0]) … … 202 211 203 212 images=dom.xpath("//texttool/image") 204 205 213 if images and (len(images)>0): 206 214 image=getTextFromNode(images[0]) … … 211 219 image=os.path.join(archivePath,image) 212 220 image=image.replace("/mpiwg/online",'') 213 pt=self.getParamFromDigilib(image,'size')221 docinfo=self.getDirinfoFromDigilib(image,docinfo=docinfo) 214 222 docinfo['imagePath'] = image 215 docinfo[' numPages'] = pt223 docinfo['imageURL'] = self.digilibBaseUrl+"/servlet/Scaler?fn="+image 216 224 217 225 viewerUrls=dom.xpath("//texttool/digiliburlprefix") 218 219 226 if viewerUrls and (len(viewerUrls)>0): 220 227 viewerUrl=getTextFromNode(viewerUrls[0]) 221 docinfo[' imageURL'] = viewerURL228 docinfo['viewerURL'] = viewerUrl 222 229 223 230 textUrls=dom.xpath("//texttool/text") 224 225 231 if textUrls and (len(textUrls)>0): 226 232 textUrl=getTextFromNode(textUrls[0]) 227 docinfo['textURL'] = textU RL233 docinfo['textURL'] = textUrl 228 234 229 235 docinfo = self.getBibinfoFromIndexMeta(url,docinfo=docinfo,dom=dom) … … 238 244 path=path.replace("/mpiwg/online","") 239 245 docinfo['imagePath'] = path 240 pt=self.getParamFromDigilib(path,'size') 241 docinfo['numPages'] = pt 242 imageUrl=self.digilibBaseUrl+"/servlet/Scaler?fn=%s"%path 246 docinfo=self.getDirinfoFromDigilib(path,docinfo=docinfo) 247 imageUrl=self.digilibBaseUrl+"/servlet/Scaler?fn="+path 243 248 docinfo['imageURL'] = imageUrl 244 249 … … 282 287 pageinfo['groupsize'] = grpsize 283 288 start = getInt(start, default=(int(current / grpsize) * grpsize +1)) 284 print "start3:", start285 289 pageinfo['start'] = start 286 290 pageinfo['end'] = start + grpsize -
version.txt
r28 r31 1 DocumentViewer 0.2. 11 DocumentViewer 0.2.2 -
zpt/viewer_main.zpt
r27 r31 3 3 <link rel="stylesheet" href="template/docuviewer_css" type="text/css"> 4 4 </head> 5 <body tal:define="docinfo options/docinfo; pageinfo options/pageinfo" >5 <body tal:define="docinfo options/docinfo; pageinfo options/pageinfo" tal:condition="docinfo/numPages"> 6 6 <div tal:replace="structure python:here.template.head_main(docinfo=docinfo)"/> 7 7 <table border="0" width="100%" height="100%"> … … 16 16 </table> 17 17 </body> 18 <body tal:define="docinfo options/docinfo; pageinfo options/pageinfo" tal:condition="not:docinfo/numPages"> 19 <div class="errortext">Sorry, document doesn't exist.</div> 20 </body> 18 21 </html>
Note: See TracChangeset
for help on using the changeset viewer.