Diff for /documentViewer/MpdlXmlTextServer.py between versions 1.74 and 1.205

version 1.74, 2010/10/11 14:04:21 version 1.205, 2010/11/08 15:04:06
Line 38  class MpdlXmlTextServer(SimpleItem): Line 38  class MpdlXmlTextServer(SimpleItem):
         url = self.serverUrl+method          url = self.serverUrl+method
         return documentViewer.getHttpData(url,data,timeout=self.timeout)          return documentViewer.getHttpData(url,data,timeout=self.timeout)
   
     def getSearch(self, pn=1, pageinfo=None,  docinfo=None, query=None, queryType=None, lemma=None):      def getSearch(self, pn=1, pageinfo=None,  docinfo=None, query=None, queryType=None, lemma=None, characterNormalization=None, optionsClose=None):
         """get search list"""          """get search list"""
         docpath = docinfo['textURLPath']           docpath = docinfo['textURLPath'] 
         url = docinfo['url']          url = docinfo['url']
         logging.debug("documentViewer (gettoc) docpath: %s"%(docpath))  
         logging.debug("documentViewer (gettoc) url: %s"%(url))  
         pagesize = pageinfo['queryPageSize']          pagesize = pageinfo['queryPageSize']
         pn = pageinfo['searchPN']          pn = pageinfo['searchPN']
         sn = pageinfo['sn']          sn = pageinfo['sn']
Line 56  class MpdlXmlTextServer(SimpleItem): Line 54  class MpdlXmlTextServer(SimpleItem):
         tocPN = pageinfo['tocPN']          tocPN = pageinfo['tocPN']
         selfurl = self.absolute_url()          selfurl = self.absolute_url()
                   
         data = self.getServerData("doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s&viewMode=%s&highlightQuery=%s"%(docpath, 'text', queryType, urllib.quote(query), pagesize, pn, sn, viewMode,urllib.quote(highlightQuery)))          data = self.getServerData("doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s&viewMode=%s&characterNormalization=%s&highlightQuery=%s"%(docpath, 'text', queryType, urllib.quote(query), pagesize, pn, sn, viewMode,characterNormalization ,urllib.quote(highlightQuery)))
         #page=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s&viewMode=%s&highlightQuery=%s"%(docpath, 'text', queryType, query, pagesize, pn, sn, viewMode,highlightQuery) ,outputUnicode=False)                          #page=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s&viewMode=%s&highlightQuery=%s"%(docpath, 'text', queryType, query, pagesize, pn, sn, viewMode,highlightQuery) ,outputUnicode=False)                
                   
         pagexml = data.replace('?document=%s'%str(docpath),'?url=%s'%url)          pagexml = data.replace('?document=%s'%str(docpath),'?url=%s'%url)
Line 137  class MpdlXmlTextServer(SimpleItem): Line 135  class MpdlXmlTextServer(SimpleItem):
         text=self.getServerData("xpath.xql", "document=%s&xpath=%s"%(docinfo['textURLPath'], xpath))          text=self.getServerData("xpath.xql", "document=%s&xpath=%s"%(docinfo['textURLPath'], xpath))
         dom = Parse(text)          dom = Parse(text)
         result= dom.xpath("//result/resultPage")          result= dom.xpath("//result/resultPage")
            
         docinfo['numPages']=int(getTextFromNode(result[0]))          docinfo['numPages']=int(getTextFromNode(result[0]))
         return docinfo          return docinfo
           
     def getGisPlases(self, docinfo):      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'] 
           url = docinfo['url']
           selfurl = self.absolute_url()
           pn = pageinfo['current']
           hrefList=[]
           myList= ""
           text=self.getServerData("xpath.xql", "document=%s&xpath=%s&pn=%s"%(docinfo['textURLPath'],xpath,pn))
           dom = Parse(text)
           result = dom.xpath("//result/resultPage/place")
           for l in result:
               hrefNode= l.getAttributeNodeNS(None, u"id")
               href= hrefNode.nodeValue
               hrefList.append(href)
               myList = ",".join(hrefList)
           logging.debug("getGisPlaces :%s"%(myList))                             
           return myList
       
       def getAllGisPlaces (self, docinfo=None, pageinfo=None):
           """Show all Gis Places of whole Book """
           xpath ='//echo:place'
           docpath =docinfo['textURLPath']
           url = docinfo['url']
           selfurl =self.absolute_url()
           pn =pageinfo['current']
           hrefList=[]
           myList=""
         text=self.getServerData("xpath.xql", "document=%s&xpath=%s"%(docinfo['textURLPath'], xpath))          text=self.getServerData("xpath.xql", "document=%s&xpath=%s"%(docinfo['textURLPath'], xpath))
         pagedom = Parse(text)          dom =Parse(text)
         result =pagedom.xpath("//result/resultPage/")          result = dom.xpath("//result/resultPage/place")
           
         for l in result:          for l in result:
             hrefNode= l.getAttributeNodeNS(None, u"id")              hrefNode= l.getAttributeNodeNS(None, u"id")
         docinfo['place']=getTextFromNode(result[0])              href= hrefNode.nodeValue
         return docinfo              hrefList.append(href)
               myList = ",".join(hrefList)
               logging.debug("getALLGisPlaces :%s"%(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']
           
     def getTextPage(self, mode="text", pn=1, docinfo=None, pageinfo=None, highlightQuery=None,sn=None, viewMode=None, tocMode=None, tocPN=None, characterNormalization=""):          #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):
           """Show original page """
           docpath = docinfo['textURLPath'] 
           logging.debug ("docinfo['textURLPath']=%s"%(docinfo['textURLPath']))
           #url = docinfo['url']
           selfurl = self.absolute_url()
           pn =pageinfo['current']
          
           viewMode=  pageinfo['viewMode']
           text = self.getServerData("page-fragment.xql","document=%s&mode=%s&pn=%s"%(docinfo['textURLPath'], 'text',  pn))
           dom =Parse(text)
           pagedivs = dom.xpath("//div[@class='pageNumberOrig']")
           logging.debug("YYYYYYpagedivs :%s"%(pagedivs))
           if len(pagedivs)>0:
               originalPage= getTextFromNode(pagedivs[0])
               #return docinfo['originalPage']
               return originalPage
       
       
       def getTextPage(self, mode="text", pn=1, docinfo=None, pageinfo=None, viewMode=None, tocMode=None, tocPN=None, characterNormalization="", highlightQuery=None, sn=None, optionsClose=None):
         """returns single page from fulltext"""          """returns single page from fulltext"""
         docpath = docinfo['textURLPath']          docpath = docinfo['textURLPath']
         path = docinfo['textURLPath']          path = docinfo['textURLPath']
         url = docinfo['url']          url = docinfo['url']
         name = docinfo['name']          name = docinfo['name']
         viewMode= pageinfo['viewMode']          viewMode= pageinfo['viewMode']
           sn = pageinfo['sn']
           highlightQuery = pageinfo['highlightQuery']
           
         tocMode = pageinfo['tocMode']          tocMode = pageinfo['tocMode']
         characterNormalization=pageinfo['characterNormalization']          characterNormalization=pageinfo['characterNormalization']
         tocPN = pageinfo['tocPN']          tocPN = pageinfo['tocPN']
Line 166  class MpdlXmlTextServer(SimpleItem): Line 232  class MpdlXmlTextServer(SimpleItem):
             textmode = "textPollux"              textmode = "textPollux"
         else:          else:
             textmode = mode              textmode = mode
         #logging.debug("documentViewer (characterNormalization) characterNormalization: %s"%(characterNormalization))          #logging.debug("documentViewer highlightQuery: %s"%(highlightQuery))
         textParam = "document=%s&mode=%s&pn=%s&characterNormalization=%s"%(docpath,textmode,pn,characterNormalization)          textParam = "document=%s&mode=%s&pn=%s&characterNormalization=%s"%(docpath,textmode,pn,characterNormalization)
         if highlightQuery is not None:          if highlightQuery is not None:
             textParam +="&highlightQuery=%s&sn=%s"%(urllib.quote(highlightQuery),sn)                         textParam +="&highlightQuery=%s&sn=%s"%(urllib.quote(highlightQuery),sn)           
                       #logging.debug("documentViewer highlightQuery: %s"%(highlightQuery))
         pagexml = self.getServerData("page-fragment.xql",textParam)          pagexml = self.getServerData("page-fragment.xql",textParam)
           logging.debug("documentViewer highlightQuery: %s"%(highlightQuery))
         #pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", textParam, outputUnicode=False)          #pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", textParam, outputUnicode=False)
                   
         pagedom = Parse(pagexml)          pagedom = Parse(pagexml)
Line 206  class MpdlXmlTextServer(SimpleItem): Line 273  class MpdlXmlTextServer(SimpleItem):
                       if hrefNode:                        if hrefNode:
                           href=hrefNode.nodeValue                            href=hrefNode.nodeValue
                           if href.startswith('http://chinagis.mpiwg-berlin.mpg.de'):                            if href.startswith('http://chinagis.mpiwg-berlin.mpg.de'):
                               hrefNode.nodeValue =href.replace('chinagis_REST/REST/db/chgis/mpdl','chinagis/REST/db/mpdl/name=%s'%name)                                hrefNode.nodeValue =href.replace('chinagis_REST/REST/db/chgis/mpdl','chinagis/REST/db/mpdl/%s'%name)
                              #hrefNode.nodeValue =href.replace('chinagis_REST/REST/db/chgis/mpdl','chinagis/REST/db/mpdl%s'%url)  
                               logging.debug("YYYYY docinfo[name] %s"%docinfo['name'])  
                               l.setAttributeNS(None, 'target', '_blank')                                 l.setAttributeNS(None, 'target', '_blank') 
                   return serializeNode(pagenode)                    return serializeNode(pagenode)
                                           
Line 269  class MpdlXmlTextServer(SimpleItem): Line 334  class MpdlXmlTextServer(SimpleItem):
         #pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(query)))          #pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(query)))
         return data          return data
           
     def getQuery (self,  docinfo=None, pageinfo=None, query=None, queryType=None, pn=1):      def getQuery (self,  docinfo=None, pageinfo=None, query=None, queryType=None, pn=1, optionsClose=None):
          """number of"""           """number of"""
          docpath = docinfo['textURLPath']            docpath = docinfo['textURLPath'] 
          pagesize = pageinfo['queryPageSize']           pagesize = pageinfo['queryPageSize']
Line 284  class MpdlXmlTextServer(SimpleItem): Line 349  class MpdlXmlTextServer(SimpleItem):
          pagedom = Parse(pagexml)           pagedom = Parse(pagexml)
          numdivs = pagedom.xpath("//div[@class='queryResultHits']")           numdivs = pagedom.xpath("//div[@class='queryResultHits']")
          tocSearch = int(getTextFromNode(numdivs[0]))           tocSearch = int(getTextFromNode(numdivs[0]))
            logging.debug("documentViewer (gettoc) tocSearch: %s"%(tocSearch))
          tc=int((tocSearch/10)+1)           tc=int((tocSearch/10)+1)
          logging.debug("documentViewer (gettoc) tc: %s"%(tc))           logging.debug("documentViewer (gettoc) tc: %s"%(tc))
          return tc           return tc
   
       def getQueryResultHits(self,  docinfo=None, pageinfo=None, query=None, queryType=None, pn=1, optionsClose=None):
           
            """number of hits in Search mode"""
            docpath = docinfo['textURLPath'] 
            pagesize = pageinfo['queryPageSize']
            pn = pageinfo['searchPN']
            query =pageinfo['query']
            queryType =pageinfo['queryType']
            tocSearch = 0
            tocDiv = None
            
            pagexml = self.getServerData("doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath, 'text', queryType, urllib.quote(query), pagesize, pn))
            #pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath, 'text', queryType, query, pagesize, pn) ,outputUnicode=False)
            pagedom = Parse(pagexml)
            numdivs = pagedom.xpath("//div[@class='queryResultHits']")
            tocSearch = int(getTextFromNode(numdivs[0]))    
            return tocSearch
        
       def getQueryResultHitsText(self,  docinfo=None, pageinfo=None):      
            """number of hits in Text of Contents mode"""
            
            docpath = docinfo['textURLPath'] 
            pagesize = pageinfo['queryPageSize']
            pn = pageinfo['searchPN']
            query =pageinfo['query']
            queryType =pageinfo['queryType']
            tocSearch = 0
            tocDiv = None
            tocMode = pageinfo['tocMode']
            tocPN = pageinfo['tocPN']  
            pagexml=self.getServerData("doc-query.xql", "document=%s&queryType=%s"%(docpath,'toc'))
            pagedom = Parse(pagexml)
            logging.debug("documentViewer (pagedom) pagedom: %s"%(pagedom))
            numdivs = pagedom.xpath("//div[@class='queryResultHits']")
            tocSearch = int(getTextFromNode(numdivs[0]))    
            return tocSearch 
   
       def getQueryResultHitsFigures(self,  docinfo=None, pageinfo=None):      
            """number of hits in Text of Figures mode"""
            
            docpath = docinfo['textURLPath'] 
            pagesize = pageinfo['queryPageSize']
            pn = pageinfo['searchPN']
            query =pageinfo['query']
            queryType =pageinfo['queryType']
            tocSearch = 0
            tocDiv = None
            tocMode = pageinfo['tocMode']
            tocPN = pageinfo['tocPN']  
            pagexml=self.getServerData("doc-query.xql", "document=%s&queryType=%s"%(docpath,'figures'))
            pagedom = Parse(pagexml)
            logging.debug("documentViewer (pagedom) pagedom: %s"%(pagedom))
            numdivs = pagedom.xpath("//div[@class='queryResultHits']")
            tocSearch = int(getTextFromNode(numdivs[0]))    
            return tocSearch 
   
   
     def getToc(self, mode="text", docinfo=None):      def getToc(self, mode="text", docinfo=None):
         """loads table of contents and stores in docinfo"""          """loads table of contents and stores in docinfo"""
         logging.debug("documentViewer (gettoc) mode: %s"%(mode))          logging.debug("documentViewer (gettoc) mode: %s"%(mode))

Removed from v.1.74  
changed lines
  Added in v.1.205


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