Diff for /documentViewer/documentViewer.py between versions 1.19 and 1.20

version 1.19, 2006/09/11 14:43:09 version 1.20, 2007/01/11 12:03:17
Line 17  import os.path Line 17  import os.path
 import sys  import sys
 import cgi  import cgi
 import urllib  import urllib
   import logging
 import zLOG  import zLOG
 import urlparse   import urlparse 
   
Line 59  def urlopen(url,timeout=2): Line 60  def urlopen(url,timeout=2):
 ##  ##
 class documentViewer(Folder):  class documentViewer(Folder):
     """document viewer"""      """document viewer"""
     textViewerUrl="http://127.0.0.1:8080/HFQP/testXSLT/getPage?"      #textViewerUrl="http://127.0.0.1:8080/HFQP/testXSLT/getPage?"
           
     meta_type="Document viewer"      meta_type="Document viewer"
           
Line 230  class documentViewer(Folder): Line 231  class documentViewer(Folder):
                                     
         return dom          return dom
                                                   
       def getPresentationInfoXML(self, url):
           """returns dom of info.xml document at url"""
           num_retries = 3
           dom = None
           metaUrl = None
           if url.startswith("http://"):
               # real URL
               metaUrl = url
           else:
               # online path
               server=self.digilibBaseUrl+"/servlet/Texter?fn="
               metaUrl=server+url.replace("/mpiwg/online","")
              
           
           for cnt in range(num_retries):
               try:
                   # patch dirk encoding fehler treten dann nicht mehr auf
                   # dom = NonvalidatingReader.parseUri(metaUrl)
                   txt=urllib.urlopen(metaUrl).read()
                   dom = Parse(txt)
                   break
               except:
                   zLOG.LOG("ERROR documentViewer (getPresentationInfoXML)", zLOG.INFO,"%s (%s)"%sys.exc_info()[0:2])
                   
           if dom is None:
               raise IOError("Unable to read infoXMLfrom %s"%(url))
                    
           return dom
                           
                   
     def getAuthinfoFromIndexMeta(self,path,docinfo=None,dom=None):      def getAuthinfoFromIndexMeta(self,path,docinfo=None,dom=None):
         """gets authorization info from the index.meta file at path or given by dom"""          """gets authorization info from the index.meta file at path or given by dom"""
Line 345  class documentViewer(Folder): Line 375  class documentViewer(Folder):
   
            docinfo['textURL'] = textUrl             docinfo['textURL'] = textUrl
                                             
      
          presentationUrls=dom.xpath("//texttool/presentation")
          if presentationUrls and (len(presentationUrls)>0):
               # presentation url ergiebt sich ersetzen von index.meta in der url der fŸr die Metadaten
               # durch den relativen Pfad auf die presentation infos
              presentationUrl=url.replace('index.meta',getTextFromNode(presentationUrls[0]))
              
              docinfo = self.getBibinfoFromTextToolPresentation(presentationUrl,docinfo=docinfo,dom=dom)
          else:
        docinfo = self.getBibinfoFromIndexMeta(url,docinfo=docinfo,dom=dom)         docinfo = self.getBibinfoFromIndexMeta(url,docinfo=docinfo,dom=dom)
        docinfo = self.getAuthinfoFromIndexMeta(url,docinfo=docinfo,dom=dom)         docinfo = self.getAuthinfoFromIndexMeta(url,docinfo=docinfo,dom=dom)
        return docinfo         return docinfo
         
   
       def getBibinfoFromTextToolPresentation(self,url,docinfo=None,dom=None):
           """gets the bibliographical information from the preseantion entry in texttools
           """
           dom=self.getPresentationInfoXML(url)
           docinfo['author']=getTextFromNode(dom.xpath("//author")[0])
           docinfo['title']=getTextFromNode(dom.xpath("//title")[0])
           docinfo['year']=getTextFromNode(dom.xpath("//date")[0])
           return docinfo
       
     def getDocinfoFromImagePath(self,path,docinfo=None):      def getDocinfoFromImagePath(self,path,docinfo=None):
         """path ist the path to the images it assumes that the index.meta file is one level higher."""          """path ist the path to the images it assumes that the index.meta file is one level higher."""
         zLOG.LOG("documentViewer (getdocinfofromimagepath)", zLOG.INFO,"path: %s"%(path))          zLOG.LOG("documentViewer (getdocinfofromimagepath)", zLOG.INFO,"path: %s"%(path))
Line 370  class documentViewer(Folder): Line 418  class documentViewer(Folder):
         """returns docinfo depending on mode"""          """returns docinfo depending on mode"""
         zLOG.LOG("documentViewer (getdocinfo)", zLOG.INFO,"mode: %s, url: %s"%(mode,url))          zLOG.LOG("documentViewer (getdocinfo)", zLOG.INFO,"mode: %s, url: %s"%(mode,url))
         # look for cached docinfo in session          # look for cached docinfo in session
         if self.REQUEST.SESSION.has_key('docinfo'):          # XXXX Sesion abgeschaltet
           if self.REQUEST.SESSION.has_key('docinfo_XX'):
             docinfo = self.REQUEST.SESSION['docinfo']              docinfo = self.REQUEST.SESSION['docinfo']
             # check if its still current              # check if its still current
             if docinfo is not None and docinfo.get('mode') == mode and docinfo.get('url') == url:              if docinfo is not None and docinfo.get('mode') == mode and docinfo.get('url') == url:
Line 471  class documentViewer(Folder): Line 520  class documentViewer(Folder):
     def findDigilibUrl(self):      def findDigilibUrl(self):
         """try to get the digilib URL from zogilib"""          """try to get the digilib URL from zogilib"""
         url = self.imageViewerUrl[:-1] + "/getScalerUrl"          url = self.imageViewerUrl[:-1] + "/getScalerUrl"
         print urlparse.urlparse(url)[0]          #print urlparse.urlparse(url)[0]
         print urlparse.urljoin(self.absolute_url(),url)          #print urlparse.urljoin(self.absolute_url(),url)
           logging.info("finddigiliburl: %s"%urlparse.urlparse(url)[0])
           logging.info("finddigiliburl: %s"%urlparse.urljoin(self.absolute_url(),url))
           
         try:          try:
             if urlparse.urlparse(url)[0]=='': #relative path              if urlparse.urlparse(url)[0]=='': #relative path
                 url=urlparse.urljoin(self.absolute_url()+"/",url)                  url=urlparse.urljoin(self.absolute_url()+"/",url)

Removed from v.1.19  
changed lines
  Added in v.1.20


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>