changeset 415:b93a2e5d5506

new getInfoFromPage to read multiple parameters at once
author casties
date Thu, 23 Dec 2010 17:12:23 +0100
parents ad201f406dd1
children 1c821283556a
files MpdlXmlTextServer.py
diffstat 1 files changed, 26 insertions(+), 36 deletions(-) [+]
line wrap: on
line diff
--- a/MpdlXmlTextServer.py	Thu Dec 23 16:38:41 2010 +0100
+++ b/MpdlXmlTextServer.py	Thu Dec 23 17:12:23 2010 +0100
@@ -120,6 +120,7 @@
     
     def getNumTextPages (self, docinfo=None):
         """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']
@@ -137,35 +138,13 @@
      
     def getTocEntries (self, docinfo=None):
         """ number of text entries"""
-        docpath = docinfo['textURLPath'] 
-        selfurl = self.absolute_url()
-        if 'tocEntries' in docinfo:
-            # allredy there
-            return docinfo['tocEntries']
-        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))
-            docinfo['tocEntries'] = getTextFromNode(pagedivs[0])
-            #tc = int (originalPage)
-            return docinfo['tocEntries']
+        self.getInfoFromPage(docinfo)
+        return docinfo['tocEntries']
             
     def getFigureEntries (self, docinfo=None):
         """ number of figure entries"""
-        docpath = docinfo['textURLPath'] 
-        selfurl = self.absolute_url()
-        if 'figureEntries' in docinfo:
-            # allredy there
-            return docinfo['figureEntries']
-        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))
-            docinfo['figureEntries'] = getTextFromNode(pagedivs[0])
-            #tc = int (docinfo['figureEntries'])
-            return docinfo['figureEntries']
+        self.getInfoFromPage(docinfo)
+        return docinfo['figureEntries']
                        
     def getGisPlaces(self, docinfo=None, pageinfo=None):
         """ Show all Gis Places of whole Page"""
@@ -230,20 +209,31 @@
     
     def getAllPlaces (self, docinfo=None):
         """Show all Places if no places than 0"""
-        docpath = docinfo['textURLPath'] 
-        selfurl = self.absolute_url()
+        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['allPlaces']
+            return docinfo
         
-        text = self.getServerData("page-fragment.xql","document=%s"%(docinfo['textURLPath']))
-        dom =Parse(text)
-        pagedivs = dom.xpath("//div[@class='countPlaces']")
-        logging.debug ("pagedivs=%s"%(pagedivs))
-        if len(pagedivs)>0:
+        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])
-            #logging.debug ("docinfo['allPlaces']=%s"%(docinfo['allPlaces']))
-            return docinfo['allPlaces']
+
+        return docinfo
+                       
            
     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"""