Diff for /documentViewer/MpdlXmlTextServer.py between versions 1.238.2.5 and 1.238.2.9

version 1.238.2.5, 2011/07/29 18:36:04 version 1.238.2.9, 2011/08/05 13:31:27
Line 1 Line 1
   
 from OFS.SimpleItem import SimpleItem  from OFS.SimpleItem import SimpleItem
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile   from Products.PageTemplates.PageTemplateFile import PageTemplateFile 
   
Line 227  class MpdlXmlTextServer(SimpleItem): Line 226  class MpdlXmlTextServer(SimpleItem):
                       
     def processPageInfo(self, dom, docinfo, pageinfo):      def processPageInfo(self, dom, docinfo, pageinfo):
         """processes page info divs from dom and stores in docinfo and pageinfo"""          """processes page info divs from dom and stores in docinfo and pageinfo"""
         # process all toplevel divs          # assume first second level div is pageMeta
         alldivs = dom.findall(".//div")          alldivs = dom.find("div")
         pagediv = None          
           if alldivs is None or alldivs.get('class', '') != 'pageMeta':
               logging.error("processPageInfo: pageMeta div not found!")
               return
           
         for div in alldivs:          for div in alldivs:
             dc = div.get('class')              dc = div.get('class')
                           
             # page content div  
             if dc == 'pageContent':  
                 pagediv = div  
               
             # pageNumberOrig                # pageNumberOrig  
             elif dc == 'pageNumberOrig':              if dc == 'pageNumberOrig':
                 pageinfo['pageNumberOrig'] = div.text                  pageinfo['pageNumberOrig'] = div.text
                                   
             # pageNumberOrigNorm              # pageNumberOrigNorm
             elif dc == 'pageNumberOrigNorm':              elif dc == 'pageNumberOrigNorm':
                 pageinfo['pageNumberOrigNorm'] = div.text                  pageinfo['pageNumberOrigNorm'] = div.text
                                   
             # pageNumberOrigNorm              # pageHeaderTitle
               elif dc == 'pageHeaderTitle':
                   pageinfo['pageHeaderTitle'] = div.text
                   
               # numFigureEntries
             elif dc == 'countFigureEntries':              elif dc == 'countFigureEntries':
                 docinfo['countFigureEntries'] = getInt(div.text)                  docinfo['numFigureEntries'] = getInt(div.text)
                                   
             # pageNumberOrigNorm              # numTocEntries
             elif dc == 'countTocEntries':              elif dc == 'countTocEntries':
                 # WTF: s1 = int(s)/30+1                  # WTF: s1 = int(s)/30+1
                 docinfo['countTocEntries'] = getInt(div.text)                  docinfo['numTocEntries'] = getInt(div.text)
                                   
             # numTextPages              # numTextPages
             elif dc == 'countPages':              elif dc == 'countPages':
Line 267  class MpdlXmlTextServer(SimpleItem): Line 270  class MpdlXmlTextServer(SimpleItem):
                         if np % pageinfo['groupsize'] > 0:                          if np % pageinfo['groupsize'] > 0:
                             pageinfo['numgroups'] += 1                              pageinfo['numgroups'] += 1
                                                           
           #logging.debug("processPageInfo: pageinfo=%s"%repr(pageinfo))
         return          return
                     
                         
     def getTextPage(self, mode="text_dict", pn=1, docinfo=None, pageinfo=None):      def getTextPage(self, mode="text", pn=1, docinfo=None, pageinfo=None):
         """returns single page from fulltext"""          """returns single page from fulltext"""
         logging.debug("getTextPage mode=%s, pn=%s"%(mode,pn))          logging.debug("getTextPage mode=%s, pn=%s"%(mode,pn))
         # check for cached text -- but this shouldn't be called twice          # check for cached text -- but this shouldn't be called twice
Line 293  class MpdlXmlTextServer(SimpleItem): Line 297  class MpdlXmlTextServer(SimpleItem):
         characterNormalization = pageinfo.get('characterNormalization', None)          characterNormalization = pageinfo.get('characterNormalization', None)
         selfurl = docinfo['viewerUrl']             selfurl = docinfo['viewerUrl']   
                   
         if mode == "text_dict":          if mode == "dict" or mode == "text_dict":
             # text_dict is called textPollux in the backend              # dict is called textPollux in the backend
             textmode = "textPollux"              textmode = "textPollux"
           elif not mode:
               # default is text
               textmode = "text"
         else:          else:
             textmode = mode              textmode = mode
                   
Line 311  class MpdlXmlTextServer(SimpleItem): Line 318  class MpdlXmlTextServer(SimpleItem):
         # page content is in <div class="pageContent">          # page content is in <div class="pageContent">
         pagediv = None          pagediv = None
         # ElementTree 1.2 in Python 2.6 can't do div[@class='pageContent']          # ElementTree 1.2 in Python 2.6 can't do div[@class='pageContent']
         alldivs = dom.findall(".//div")          # so we look at the second level divs
           alldivs = dom.findall("div")
         for div in alldivs:          for div in alldivs:
             dc = div.get('class')              dc = div.get('class')
             # page content div              # page content div
Line 321  class MpdlXmlTextServer(SimpleItem): Line 329  class MpdlXmlTextServer(SimpleItem):
                   
         # plain text mode          # plain text mode
         if mode == "text":          if mode == "text":
             if pagediv:              if pagediv is not None:
                 links = pagediv.findall(".//a")                  links = pagediv.findall(".//a")
                 for l in links:                  for l in links:
                     href = l.get('href')                      href = l.get('href')
Line 333  class MpdlXmlTextServer(SimpleItem): Line 341  class MpdlXmlTextServer(SimpleItem):
                           
         # text-with-links mode          # text-with-links mode
         elif mode == "text_dict":          elif mode == "text_dict":
             if pagediv:              if pagediv is not None:
                 # check all a-tags                  # check all a-tags
                 links = pagediv.findall(".//a")                  links = pagediv.findall(".//a")
                 for l in links:                  for l in links:
Line 363  class MpdlXmlTextServer(SimpleItem): Line 371  class MpdlXmlTextServer(SimpleItem):
                           
         # xml mode          # xml mode
         elif mode == "xml":          elif mode == "xml":
             if pagediv:              if pagediv is not None:
                 return serialize(pagediv)                  return serialize(pagediv)
                           
         # pureXml mode          # pureXml mode
         elif mode == "pureXml":          elif mode == "pureXml":
             if pagediv:              if pagediv is not None:
                 return serialize(pagediv)                  return serialize(pagediv)
                                       
         # gis mode          # gis mode
         elif mode == "gis":          elif mode == "gis":
             name = docinfo['name']              name = docinfo['name']
             if pagediv:              if pagediv is not None:
                 # check all a-tags                  # check all a-tags
                 links = pagediv.findall(".//a")                  links = pagediv.findall(".//a")
                 for l in links:                  for l in links:

Removed from v.1.238.2.5  
changed lines
  Added in v.1.238.2.9


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