Diff for /documentViewer/documentViewer.py between versions 1.169 and 1.178

version 1.169, 2011/02/24 13:55:28 version 1.178, 2012/01/04 07:38:17
Line 43  def getTextFromNode(nodename): Line 43  def getTextFromNode(nodename):
            rc = rc + node.data             rc = rc + node.data
     return rc      return rc
   
 def serializeNode(node, encoding='utf-8'):  def serializeNode(node, encoding="utf-8"):
     """returns a string containing node as XML"""      """returns a string containing node as XML"""
     buf = cStringIO.StringIO()      stream = cStringIO.StringIO()
     Ft.Xml.Domlette.Print(node, stream=buf, encoding=encoding)      #logging.debug("BUF: %s"%(stream))
     s = buf.getvalue()      Ft.Xml.Domlette.Print(node, stream=stream, encoding=encoding)
     buf.close()      s = stream.getvalue()
       #logging.debug("BUF: %s"%(s))
       stream.close()
     return s      return s
   
 def browserCheck(self):  def browserCheck(self):
Line 161  def getHttpData(url, data=None, num_trie Line 163  def getHttpData(url, data=None, num_trie
     raise IOError("ERROR fetching HTTP data from %s: %s"%(url,errmsg))      raise IOError("ERROR fetching HTTP data from %s: %s"%(url,errmsg))
     #return None      #return None
   
   
   
 ##  ##
 ## documentViewer class  ## documentViewer class
 ##  ##
Line 231  class documentViewer(Folder): Line 231  class documentViewer(Folder):
         """get page"""          """get page"""
         return self.template.fulltextclient.getTextPage(**args)          return self.template.fulltextclient.getTextPage(**args)
           
       def getOrigPages(self, **args):
           """get page"""
           return self.template.fulltextclient.getOrigPages(**args)
       
       def getOrigPagesNorm(self, **args):
           """get page"""
           return self.template.fulltextclient.getOrigPagesNorm(**args)
   
     def getQuery(self, **args):      def getQuery(self, **args):
         """get query in search"""          """get query in search"""
         return self.template.fulltextclient.getQuery(**args)          return self.template.fulltextclient.getQuery(**args)
Line 255  class documentViewer(Folder): Line 263  class documentViewer(Folder):
         """get lemma"""          """get lemma"""
         return self.template.fulltextclient.getLemma(**args)          return self.template.fulltextclient.getLemma(**args)
   
       def getLemmaQuery(self, **args):
           """get query"""
           return self.template.fulltextclient.getLemmaQuery(**args)
   
       def getLex(self, **args):
           """get lex"""
           return self.template.fulltextclient.getLex(**args)
   
     def getToc(self, **args):      def getToc(self, **args):
         """get toc"""          """get toc"""
         return self.template.fulltextclient.getToc(**args)          return self.template.fulltextclient.getToc(**args)
Line 579  class documentViewer(Folder): Line 595  class documentViewer(Folder):
                   
     def getBibinfoFromIndexMeta(self,path,docinfo=None,dom=None,cut=0):      def getBibinfoFromIndexMeta(self,path,docinfo=None,dom=None,cut=0):
         """gets bibliographical info from the index.meta file at path or given by dom"""          """gets bibliographical info from the index.meta file at path or given by dom"""
         logging.debug("documentViewer (getbibinfofromindexmeta) path: %s"%(path))          #logging.debug("documentViewer (getbibinfofromindexmeta) path: %s"%(path))
                   
         if docinfo is None:          if docinfo is None:
             docinfo = {}              docinfo = {}
Line 591  class documentViewer(Folder): Line 607  class documentViewer(Folder):
                   
         docinfo['indexMetaPath']=self.getIndexMetaPath(path);          docinfo['indexMetaPath']=self.getIndexMetaPath(path);
                   
         logging.debug("documentViewer (getbibinfofromindexmeta cutted) path: %s"%(path))          #logging.debug("documentViewer (getbibinfofromindexmeta cutted) path: %s"%(path))
         # put in all raw bib fields as dict "bib"          # put in all raw bib fields as dict "bib"
         bib = dom.xpath("//bib/*")          bib = dom.xpath("//bib/*")
         if bib and len(bib)>0:          if bib and len(bib)>0:
Line 611  class documentViewer(Folder): Line 627  class documentViewer(Folder):
         bibtype=bibtype.replace("-"," ") # wrong typesiin index meta "-" instead of " " (not wrong! ROC)          bibtype=bibtype.replace("-"," ") # wrong typesiin index meta "-" instead of " " (not wrong! ROC)
         docinfo['bib_type'] = bibtype          docinfo['bib_type'] = bibtype
         bibmap=metaData.generateMappingForType(bibtype)          bibmap=metaData.generateMappingForType(bibtype)
         logging.debug("documentViewer (getbibinfofromindexmeta) bibmap:"+repr(bibmap))          #logging.debug("documentViewer (getbibinfofromindexmeta) bibmap:"+repr(bibmap))
         logging.debug("documentViewer (getbibinfofromindexmeta) bibtype:"+repr(bibtype))          #logging.debug("documentViewer (getbibinfofromindexmeta) bibtype:"+repr(bibtype))
         # if there is no mapping bibmap is empty (mapping sometimes has empty fields)          # if there is no mapping bibmap is empty (mapping sometimes has empty fields)
         if len(bibmap) > 0 and len(bibmap['author'][0]) > 0:          if len(bibmap) > 0 and len(bibmap['author'][0]) > 0:
             try:              try:
Line 624  class documentViewer(Folder): Line 640  class documentViewer(Folder):
             try:              try:
                 docinfo['year']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['year'][0])[0])                  docinfo['year']=getTextFromNode(dom.xpath("//bib/%s"%bibmap['year'][0])[0])
             except: pass              except: pass
             logging.debug("documentViewer (getbibinfofromindexmeta) using mapping for %s"%bibtype)              #logging.debug("documentViewer (getbibinfofromindexmeta) using mapping for %s"%bibtype)
             try:              try:
                 docinfo['lang']=getTextFromNode(dom.xpath("//bib/lang")[0])                  docinfo['lang']=getTextFromNode(dom.xpath("//bib/lang")[0])
             except:              except:
Line 669  class documentViewer(Folder): Line 685  class documentViewer(Folder):
                 docinfo['isbn_issn']=getTextFromNode(dom.xpath("//bib/isbn_issn")[0])                  docinfo['isbn_issn']=getTextFromNode(dom.xpath("//bib/isbn_issn")[0])
             except:              except:
                 docinfo['isbn_issn']=''                             docinfo['isbn_issn']=''           
           #logging.debug("I NEED BIBTEX %s"%docinfo)
         return docinfo          return docinfo
           
             
Line 761  class documentViewer(Folder): Line 778  class documentViewer(Folder):
                           
             docinfo['textURL'] = textUrl              docinfo['textURL'] = textUrl
           
   
               #TODO: hack-DW for annalen
               if (textUrl is not None) and (textUrl.startswith("/permanent/einstein/annalen")):
                   textUrl=textUrl.replace("/permanent/einstein/annalen/","/diverse/de/") 
                   splitted=textUrl.split("/fulltext")
                   textUrl=splitted[0]+".xml"
                   textUrlkurz = string.split(textUrl, ".")[0]
                   docinfo['textURLPathkurz'] = textUrlkurz
                   docinfo['textURLPath'] = textUrl
                   logging.debug("hack")
                   logging.debug(textUrl)
               
               
         # new style text-url-path          # new style text-url-path
         textUrls = dom.xpath("//texttool/text-url-path")          textUrls = dom.xpath("//texttool/text-url-path")
         if textUrls and (len(textUrls) > 0):          if textUrls and (len(textUrls) > 0):
Line 775  class documentViewer(Folder): Line 805  class documentViewer(Folder):
                     
         presentationUrls = dom.xpath("//texttool/presentation")          presentationUrls = dom.xpath("//texttool/presentation")
         docinfo = self.getBibinfoFromIndexMeta(url, docinfo=docinfo, dom=dom)   # get info von bib tag          docinfo = self.getBibinfoFromIndexMeta(url, docinfo=docinfo, dom=dom)   # get info von bib tag
           #docinfo = self.getDownloadfromDocinfoToBibtex(url, docinfo=docinfo, dom=dom)
         docinfo = self.getNameFromIndexMeta(url, docinfo=docinfo, dom=dom)          docinfo = self.getNameFromIndexMeta(url, docinfo=docinfo, dom=dom)
                   
                   
Line 830  class documentViewer(Folder): Line 861  class documentViewer(Folder):
                   
         #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.
         docinfo = self.getBibinfoFromIndexMeta(pathorig,docinfo=docinfo,cut=cut+1)          docinfo = self.getBibinfoFromIndexMeta(pathorig,docinfo=docinfo,cut=cut+1)
           #docinfo = self.getDownloadfromDocinfoToBibtex(pathorig,docinfo=docinfo,cut=cut+1)
         docinfo = self.getAuthinfoFromIndexMeta(pathorig,docinfo=docinfo,cut=cut+1)          docinfo = self.getAuthinfoFromIndexMeta(pathorig,docinfo=docinfo,cut=cut+1)
         return docinfo          return docinfo
           
Line 890  class documentViewer(Folder): Line 922  class documentViewer(Folder):
         pageinfo['viewMode'] = viewMode          pageinfo['viewMode'] = viewMode
         pageinfo['tocMode'] = tocMode          pageinfo['tocMode'] = tocMode
         pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg')          pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg')
         pageinfo['optionToggle'] = self.REQUEST.get('optionToggle','')          #pageinfo['optionToggle'] = self.REQUEST.get('optionToggle','1')
         pageinfo['query'] = self.REQUEST.get('query','')           pageinfo['query'] = self.REQUEST.get('query','') 
         pageinfo['queryType'] = self.REQUEST.get('queryType','')          pageinfo['queryType'] = self.REQUEST.get('queryType','')
         pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext')          pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext')
         pageinfo['textPN'] = self.REQUEST.get('textPN','1')          pageinfo['textPN'] = self.REQUEST.get('textPN','1')
         pageinfo['highlightQuery'] = self.REQUEST.get('highlightQuery','')          pageinfo['highlightQuery'] = self.REQUEST.get('highlightQuery','')
           
           pageinfo ['highlightElementPos'] = self.REQUEST.get('highlightElementPos','')
           pageinfo ['highlightElement'] = self.REQUEST.get('highlightElement','')
           
           pageinfo ['xpointer'] = self.REQUEST.get('xpointer','')
           
         pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '30')          pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '30')
         pageinfo['queryPageSize'] =self.REQUEST.get('queryPageSize', '10')          pageinfo['queryPageSize'] =self.REQUEST.get('queryPageSize', '10')
         pageinfo['tocPN'] = self.REQUEST.get('tocPN', '1')          pageinfo['tocPN'] = self.REQUEST.get('tocPN', '1')
           
         toc = int (pageinfo['tocPN'])          toc = int (pageinfo['tocPN'])
         pageinfo['textPages'] =int (toc)          pageinfo['textPages'] =int (toc)
                   
           
           
         if 'tocSize_%s'%tocMode in docinfo:          if 'tocSize_%s'%tocMode in docinfo:
             tocSize = int(docinfo['tocSize_%s'%tocMode])              tocSize = int(docinfo['tocSize_%s'%tocMode])
             tocPageSize = int(pageinfo['tocPageSize'])              tocPageSize = int(pageinfo['tocPageSize'])
Line 915  class documentViewer(Folder): Line 950  class documentViewer(Folder):
                 tocPages=tocSize/tocPageSize                  tocPages=tocSize/tocPageSize
             pageinfo['tocPN'] = min (tocPages,toc)                                  pageinfo['tocPN'] = min (tocPages,toc)                    
         pageinfo['searchPN'] =self.REQUEST.get('searchPN','1')          pageinfo['searchPN'] =self.REQUEST.get('searchPN','1')
         pageinfo['sn'] =self.REQUEST.get('sn','')          #pageinfo['sn'] =self.REQUEST.get('sn','')
           pageinfo['s'] =self.REQUEST.get('s','')
         return pageinfo          return pageinfo
           
 def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None):  def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None):

Removed from v.1.169  
changed lines
  Added in v.1.178


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