diff MpdlXmlTextServer.py @ 412:759ed7577eef

zwei neue Methoden
author abukhman
date Mon, 20 Dec 2010 14:52:07 +0100
parents 691f0c341b33
children ad201f406dd1
line wrap: on
line diff
--- a/MpdlXmlTextServer.py	Mon Dec 06 11:41:55 2010 +0100
+++ b/MpdlXmlTextServer.py	Mon Dec 20 14:52:07 2010 +0100
@@ -117,29 +117,50 @@
                 return serializeNode(pagenode)      
         return "no text here"   
                        
-    """def getNumPages(self, docinfo):
-        ""get list of pages from fulltext and put in docinfo""
-        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):
+    
+    def getNumTextPages (self, docinfo=None):
         """get list of pages from fulltext (texts without images) and put in docinfo"""
+        docpath = docinfo['textURLPath'] 
+        selfurl = self.absolute_url()   
+        #viewMode=  pageinfo['viewMode']
         if 'numPages' in docinfo:
             # allredy there
             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]))
-        return docinfo
+        
+        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
+     
+    def getTocEntries (self, docinfo=None):
+        """ number of text entries"""
+        docpath = docinfo['textURLPath'] 
+        selfurl = self.absolute_url()
+        if (docpath!=None):
+            text = self.getServerData("page-fragment.xql","document=%s"%(docinfo['textURLPath']))
+            dom =Parse(text)
+            pagedivs = dom.xpath("//div[@class='countTocEntries']")
+            logging.debug ("pagedivs=%s"%(pagedivs))
+            originalPage = getTextFromNode(pagedivs[0])
+            tc = int (originalPage)
+            return tc
             
+    def getFigureEntries (self, docinfo=None):
+        """ number of figure entries"""
+        docpath = docinfo['textURLPath'] 
+        selfurl = self.absolute_url()
+        if (docpath!=None):   
+            text = self.getServerData("page-fragment.xql","document=%s"%(docinfo['textURLPath']))
+            dom = Parse(text)
+            pagedivs = dom.xpath("//div[@class='countFigureEntries']")
+            logging.debug ("pagedivs=%s"%(pagedivs))
+            originalPage = getTextFromNode(pagedivs[0])
+            tc = int (originalPage)
+            return tc
+                       
     def getGisPlaces(self, docinfo=None, pageinfo=None):
         """ Show all Gis Places of whole Page"""
         xpath='//place'
@@ -183,22 +204,7 @@
             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']
-        
-        #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.get('textURLPath',None)
@@ -228,14 +234,11 @@
         dom =Parse(text)
         pagedivs = dom.xpath("//div[@class='countPlaces']")
         logging.debug ("pagedivs=%s"%(pagedivs))
-        #originalPage= getTextFromNode(pagedivs[0])
-        #return allPlaces
         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="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"""
         docpath = docinfo['textURLPath']
         path = docinfo['textURLPath']
@@ -396,43 +399,34 @@
      
     def getQueryResultHitsText(self,  docinfo=None, pageinfo=None):      
          """number of hits in Text of Contents mode"""
+         selfurl = self.absolute_url()
+         docpath = docinfo['textURLPath']
+         viewMode=  pageinfo['viewMode']
+         text = self.getServerData("page-fragment.xql","document=%s&mode=%s"%(docinfo['textURLPath'], 'text'))
+         dom =Parse(text)
+         pagedivs = dom.xpath("//div[@class='countTocEntries']")
+         logging.debug ("pagedivs=%s"%(pagedivs))
+         if len(pagedivs)>0:
+            originalPage= (getTextFromNode(pagedivs[0]))
+            tc = int (originalPage)
+            tc1 =tc/30+1
+            return tc1
          
-         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]))  
-         tc=int((tocSearch/30)+1)  
-         return tc 
-
     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]))  
-         tc=int((tocSearch/30)+1)  
-         return tc 
+         selfurl = self.absolute_url()
+         docpath = docinfo['textURLPath']
+         viewMode=  pageinfo['viewMode']
+         text = self.getServerData("page-fragment.xql","document=%s&mode=%s"%(docinfo['textURLPath'], 'text'))
+         dom =Parse(text)
+         pagedivs = dom.xpath("//div[@class='countFigureEntries']")
+         logging.debug ("pagedivs=%s"%(pagedivs))
+         if len(pagedivs)>0:
+            originalPage= (getTextFromNode(pagedivs[0]))
+            tc = int (originalPage)
+            tc1 =tc/30+1
+            return tc1 
 
 
     def getToc(self, mode="text", docinfo=None):