Diff for /documentViewer/MpdlXmlTextServer.py between versions 1.212 and 1.218

version 1.212, 2010/11/23 17:05:20 version 1.218, 2010/12/23 16:12:23
Line 71  class MpdlXmlTextServer(SimpleItem): Line 71  class MpdlXmlTextServer(SimpleItem):
                         href = hrefNode.nodeValue                          href = hrefNode.nodeValue
                         if href.startswith('page-fragment.xql'):                          if href.startswith('page-fragment.xql'):
                             selfurl = self.absolute_url()                                          selfurl = self.absolute_url()            
                             pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s&optionToggle=%s'%(viewMode,queryType,urllib.quote(query),pagesize,pn,tocMode,pn,tocPN,optionToggle))                              pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s&optionToggle=%s&characterNormalization=%s'%(viewMode,queryType,urllib.quote(query),pagesize,pn,tocMode,pn,tocPN,optionToggle,characterNormalization))
                             hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)                                                                         hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)                                           
                 return serializeNode(pagenode)                          return serializeNode(pagenode)        
         if (queryType=="fulltextMorph"):          if (queryType=="fulltextMorph"):
Line 85  class MpdlXmlTextServer(SimpleItem): Line 85  class MpdlXmlTextServer(SimpleItem):
                         href = hrefNode.nodeValue                          href = hrefNode.nodeValue
                         if href.startswith('page-fragment.xql'):                          if href.startswith('page-fragment.xql'):
                             selfurl = self.absolute_url()                                     selfurl = self.absolute_url()       
                             pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s&optionToggle=%s'%(viewMode,queryType,urllib.quote(query),pagesize,pn,tocMode,pn,tocPN,optionToggle))                              pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s&optionToggle=%s&characterNormalization=%s'%(viewMode,queryType,urllib.quote(query),pagesize,pn,tocMode,pn,tocPN,optionToggle,characterNormalization))
                             hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)                                hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)  
                         if href.startswith('../lt/lemma.xql'):                          if href.startswith('../lt/lemma.xql'):
                             hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_lemma_New'%(selfurl))                                      hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_lemma_New'%(selfurl))        
Line 103  class MpdlXmlTextServer(SimpleItem): Line 103  class MpdlXmlTextServer(SimpleItem):
                     hrefNode = l.getAttributeNodeNS(None, u"href")                      hrefNode = l.getAttributeNodeNS(None, u"href")
                     if hrefNode:                      if hrefNode:
                         href = hrefNode.nodeValue                          href = hrefNode.nodeValue
                         hrefNode.nodeValue=href.replace('mode=text','mode=texttool&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s&optionToggle=%s'%(viewMode,tocMode,tocPN,pn,optionToggle))                                       hrefNode.nodeValue=href.replace('mode=text','mode=texttool&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s&optionToggle=%s&characterNormalization=%s'%(viewMode,tocMode,tocPN,pn,optionToggle,characterNormalization))             
                         if href.startswith('../lt/lex.xql'):                          if href.startswith('../lt/lex.xql'):
                             hrefNode.nodeValue = href.replace('../lt/lex.xql','%s/template/head_main_voc'%selfurl)                                       hrefNode.nodeValue = href.replace('../lt/lex.xql','%s/template/head_main_voc'%selfurl)         
                             l.setAttributeNS(None, 'target', '_blank')                              l.setAttributeNS(None, 'target', '_blank')
Line 117  class MpdlXmlTextServer(SimpleItem): Line 117  class MpdlXmlTextServer(SimpleItem):
                 return serializeNode(pagenode)                        return serializeNode(pagenode)      
         return "no text here"             return "no text here"   
                                                 
     """def getNumPages(self, docinfo):      
         ""get list of pages from fulltext and put in docinfo""      def getNumTextPages (self, docinfo=None):
         if 'numPages' in docinfo:  
             # already there  
             return docinfo          
         xquery = '//pb'  
         text = self.getServerData("xquery.xql","document=%s&xquery=%s"%(docinfo['textURLPath'],xquery))  
         docinfo['numPages'] = text.count("<pb ")  
         return docinfo  
      """  
     def getNumTextPages (self, docinfo):  
         """get list of pages from fulltext (texts without images) and put in docinfo"""          """get list of pages from fulltext (texts without images) and put in docinfo"""
           logging.debug("getNumTextPages")
           docpath = docinfo['textURLPath'] 
           selfurl = self.absolute_url()   
           #viewMode=  pageinfo['viewMode']
         if 'numPages' in docinfo:          if 'numPages' in docinfo:
             # allredy there              # allredy there
             return docinfo              return docinfo
         xpath ='/count(//pb)'  
         text=self.getServerData("xpath.xql", "document=%s&xpath=%s"%(docinfo['textURLPath'], xpath))  
         dom = Parse(text)  
         result= dom.xpath("//result/resultPage")  
                     
         docinfo['numPages']=int(getTextFromNode(result[0]))          text = self.getServerData("page-fragment.xql","document=%s"%(docinfo['textURLPath']))
           dom =Parse(text)
           pagedivs = dom.xpath("//div[@class='countPages']")
           logging.debug ("pagedivs=%s"%(pagedivs))
           if len(pagedivs)>0:
               docinfo['numPages']= int(getTextFromNode(pagedivs[0]))
         return docinfo          return docinfo
                           
       def getTocEntries (self, docinfo=None):
           """ number of text entries"""
           self.getInfoFromPage(docinfo)
           return docinfo['tocEntries']
               
       def getFigureEntries (self, docinfo=None):
           """ number of figure entries"""
           self.getInfoFromPage(docinfo)
           return docinfo['figureEntries']
                          
     def getGisPlaces(self, docinfo=None, pageinfo=None):      def getGisPlaces(self, docinfo=None, pageinfo=None):
         """ Show all Gis Places of whole Page"""          """ Show all Gis Places of whole Page"""
         xpath='//place'          xpath='//place'
         docpath = docinfo['textURLPath']           docpath = docinfo.get('textURLPath',None)
           if not docpath:
               return None
   
         url = docinfo['url']          url = docinfo['url']
         selfurl = self.absolute_url()          selfurl = self.absolute_url()
         pn = pageinfo['current']          pn = pageinfo['current']
Line 181  class MpdlXmlTextServer(SimpleItem): Line 190  class MpdlXmlTextServer(SimpleItem):
             logging.debug("getALLGisPlaces :%s"%(myList))              logging.debug("getALLGisPlaces :%s"%(myList))
         return myList          return myList
           
       
     def getPDF (self, docinfo=None, pageinfo=None):  
         """Show and Save different Pages as PDF in Options"""  
         selfurl=self.absolute_url()  
         pn=pageinfo['current']  
           
         viewMode =pageinfo['viewMode']  
           
         #text = ("page-fragment.xql","document=%s&mode=%s&pn=%s&export=%s"%(docinfo['textURLPath'], 'text',  pn,'pdf'))  
         #text = self.getServerData("page-fragment.xql", "document=%s&mode=%s&pn=%s&export=%s"(docinfo['textURLPath'],'text', pn,'pdf'))  
         #logging.debug("text :%s"%(text))  
         #dom =Parse(text)  
         #logging.debug("text :%s"%(text))  
         #return text   
              
     def getOrigPages (self, docinfo=None, pageinfo=None):      def getOrigPages (self, docinfo=None, pageinfo=None):
         """Show original page """          """Show original page """
         docpath = docinfo['textURLPath']           docpath = docinfo.get('textURLPath',None)
         logging.debug ("docinfo['textURLPath']=%s"%(docinfo['textURLPath']))          if not docpath:
         #url = docinfo['url']              return None
         selfurl = self.absolute_url()          selfurl = self.absolute_url()
         pn =pageinfo['current']          pn =pageinfo['current']
                 
Line 208  class MpdlXmlTextServer(SimpleItem): Line 202  class MpdlXmlTextServer(SimpleItem):
         text = self.getServerData("page-fragment.xql","document=%s&mode=%s&pn=%s"%(docinfo['textURLPath'], 'text',  pn))          text = self.getServerData("page-fragment.xql","document=%s&mode=%s&pn=%s"%(docinfo['textURLPath'], 'text',  pn))
         dom =Parse(text)          dom =Parse(text)
         pagedivs = dom.xpath("//div[@class='pageNumberOrig']")          pagedivs = dom.xpath("//div[@class='pageNumberOrig']")
         logging.debug("YYYYYYpagedivs :%s"%(pagedivs))  
         if len(pagedivs)>0:          if len(pagedivs)>0:
             originalPage= getTextFromNode(pagedivs[0])              originalPage= getTextFromNode(pagedivs[0])
             #return docinfo['originalPage']              #return docinfo['originalPage']
             return originalPage              return originalPage
           
       def getAllPlaces (self, docinfo=None):
           """Show all Places if no places than 0"""
           self.getInfoFromPage(docinfo)
           return docinfo['allPlaces']
   
       def getInfoFromPage(self, docinfo=None):
           """ extract diverse info from page-fragment"""
           docpath = docinfo['textURLPath']
           if 'allPlaces' in docinfo:
               # allredy there
               return docinfo
           
           if (docpath is not None):   
               text = self.getServerData("page-fragment.xql","document=%s"%(docinfo['textURLPath']))
               dom = Parse(text)
               # figureEntries
               pagedivs = dom.xpath("//div[@class='countFigureEntries']")
               docinfo['figureEntries'] = getTextFromNode(pagedivs[0])
               # tocEntries
               pagedivs = dom.xpath("//div[@class='countTocEntries']")
               docinfo['tocEntries'] = getTextFromNode(pagedivs[0])
               # allPlaces
               pagedivs = dom.xpath("//div[@class='countPlaces']")
               docinfo['allPlaces']= getTextFromNode(pagedivs[0])
   
           return docinfo
                          
           
     def getTextPage(self, mode="text", pn=1, docinfo=None, pageinfo=None, viewMode=None, tocMode=None, tocPN=None, characterNormalization="regPlusNorm", highlightQuery=None, sn=None, optionToggle=None):      def getTextPage(self, mode="text", pn=1, docinfo=None, pageinfo=None, viewMode=None, tocMode=None, tocPN=None, characterNormalization="reg", highlightQuery=None, sn=None, optionToggle=None):
         """returns single page from fulltext"""          """returns single page from fulltext"""
         docpath = docinfo['textURLPath']          docpath = docinfo['textURLPath']
         path = docinfo['textURLPath']          path = docinfo['textURLPath']
Line 376  class MpdlXmlTextServer(SimpleItem): Line 396  class MpdlXmlTextServer(SimpleItem):
             
     def getQueryResultHitsText(self,  docinfo=None, pageinfo=None):            def getQueryResultHitsText(self,  docinfo=None, pageinfo=None):      
          """number of hits in Text of Contents mode"""           """number of hits in Text of Contents mode"""
                     selfurl = self.absolute_url()
          docpath = docinfo['textURLPath']            docpath = docinfo['textURLPath'] 
          pagesize = pageinfo['queryPageSize']           viewMode=  pageinfo['viewMode']
          pn = pageinfo['searchPN']           text = self.getServerData("page-fragment.xql","document=%s&mode=%s"%(docinfo['textURLPath'], 'text'))
          query =pageinfo['query']           dom =Parse(text)
          queryType =pageinfo['queryType']           pagedivs = dom.xpath("//div[@class='countTocEntries']")
          tocSearch = 0           logging.debug ("pagedivs=%s"%(pagedivs))
          tocDiv = None           if len(pagedivs)>0:
          tocMode = pageinfo['tocMode']              originalPage= (getTextFromNode(pagedivs[0]))
          tocPN = pageinfo['tocPN']                tc = int (originalPage)
          pagexml=self.getServerData("doc-query.xql", "document=%s&queryType=%s"%(docpath,'toc'))              tc1 =tc/30+1
          pagedom = Parse(pagexml)              return tc1
          logging.debug("documentViewer (pagedom) pagedom: %s"%(pagedom))  
          numdivs = pagedom.xpath("//div[@class='queryResultHits']")  
          tocSearch = int(getTextFromNode(numdivs[0]))    
          tc=int((tocSearch/30)+1)    
          return tc   
   
     def getQueryResultHitsFigures(self,  docinfo=None, pageinfo=None):            def getQueryResultHitsFigures(self,  docinfo=None, pageinfo=None):      
          """number of hits in Text of Figures mode"""           """number of hits in Text of Figures mode"""
                     
            selfurl = self.absolute_url()
          docpath = docinfo['textURLPath']            docpath = docinfo['textURLPath'] 
          pagesize = pageinfo['queryPageSize']           viewMode=  pageinfo['viewMode']
          pn = pageinfo['searchPN']           text = self.getServerData("page-fragment.xql","document=%s&mode=%s"%(docinfo['textURLPath'], 'text'))
          query =pageinfo['query']           dom =Parse(text)
          queryType =pageinfo['queryType']           pagedivs = dom.xpath("//div[@class='countFigureEntries']")
          tocSearch = 0           logging.debug ("pagedivs=%s"%(pagedivs))
          tocDiv = None           if len(pagedivs)>0:
          tocMode = pageinfo['tocMode']              originalPage= (getTextFromNode(pagedivs[0]))
          tocPN = pageinfo['tocPN']                tc = int (originalPage)
          pagexml=self.getServerData("doc-query.xql", "document=%s&queryType=%s"%(docpath,'figures'))              tc1 =tc/30+1
          pagedom = Parse(pagexml)              return tc1 
          logging.debug("documentViewer (pagedom) pagedom: %s"%(pagedom))  
          numdivs = pagedom.xpath("//div[@class='queryResultHits']")  
          tocSearch = int(getTextFromNode(numdivs[0]))    
          tc=int((tocSearch/30)+1)    
          return tc   
   
   
     def getToc(self, mode="text", docinfo=None):      def getToc(self, mode="text", docinfo=None):
Line 466  class MpdlXmlTextServer(SimpleItem): Line 477  class MpdlXmlTextServer(SimpleItem):
         tocMode = pageinfo['tocMode']          tocMode = pageinfo['tocMode']
         tocPN = pageinfo['tocPN']            tocPN = pageinfo['tocPN']  
                   
         data = self.getServerData("doc-query.xql","document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s&characterNormalization=regPlusNorm&optionToggle=%s"%(docpath,queryType, pagesize, pn,optionToggle))            data = self.getServerData("doc-query.xql","document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s&characterNormalization=regPlusNorm&optionToggle=1"%(docpath,queryType, pagesize, pn))  
         page = data.replace('page-fragment.xql?document=%s'%str(path),'%s?url=%s&viewMode=%s&tocMode=%s&tocPN=%s&optionToggle=%s'%(selfurl,url, viewMode, tocMode, tocPN,optionToggle))          page = data.replace('page-fragment.xql?document=%s'%str(path),'%s?url=%s&viewMode=%s&tocMode=%s&tocPN=%s&optionToggle=1'%(selfurl,url, viewMode, tocMode, tocPN))
         text = page.replace('mode=image','mode=texttool')          text = page.replace('mode=image','mode=texttool')
         logging.debug("documentViewer (characterNormalization) characterNormalization: %s"%(characterNormalization))          logging.debug("documentViewer (characterNormalization) characterNormalization: %s"%(characterNormalization))
         #logging.debug("documentViewer (characterNormalization) text: %s"%(text))          #logging.debug("documentViewer (characterNormalization) text: %s"%(text))

Removed from v.1.212  
changed lines
  Added in v.1.218


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