# HG changeset patch
# User casties
# Date 1331575377 -3600
# Node ID 9a3cc3732194bc340d2e7aa1d31848c4ce10cd7e
# Parent 91051b36b9cc90a948ff72c7b39261111e58c05a
uses xml from doc-info.xql for table of contents now.
diff -r 91051b36b9cc -r 9a3cc3732194 MpdlXmlTextServer.py
--- a/MpdlXmlTextServer.py Mon Mar 12 19:01:14 2012 +0100
+++ b/MpdlXmlTextServer.py Mon Mar 12 19:02:57 2012 +0100
@@ -499,113 +499,10 @@
tp += '
'%(pageurl, toc['pn'])
tp += '\n'
- tp += ''
+ tp += '\n'
return tp
-
-
- def getToc_old(self, mode="text", docinfo=None):
- """loads table of contents and stores XML in docinfo"""
- logging.debug("getToc mode=%s"%mode)
- if mode == "none":
- return docinfo
-
- if 'tocSize_%s'%mode in docinfo:
- # cached toc
- return docinfo
-
- docpath = docinfo['textURLPath']
- # we need to set a result set size
- pagesize = 1000
- pn = 1
- if mode == "text":
- queryType = "toc"
- else:
- queryType = mode
- # number of entries in toc
- tocSize = 0
- tocDiv = None
- # fetch full toc
- pagexml = self.getServerData("doc-query.xql","document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType, pagesize, pn))
- dom = ET.fromstring(pagexml)
- # page content is in
- pagediv = None
- # ElementTree 1.2 in Python 2.6 can't do div[@class='queryResultPage']
- alldivs = dom.findall("div")
- for div in alldivs:
- dc = div.get('class')
- # page content div
- if dc == 'queryResultPage':
- pagediv = div
-
- elif dc == 'queryResultHits':
- docinfo['tocSize_%s'%mode] = getInt(div.text)
-
- if pagediv is not None:
- # store XML in docinfo
- docinfo['tocXML_%s'%mode] = ET.tostring(pagediv, 'UTF-8')
-
- return docinfo
-
- def getTocPage_old(self, mode="text", pn=None, start=None, size=None, pageinfo=None, docinfo=None):
- """returns single page from the table of contents"""
- logging.debug("getTocPage mode=%s, pn=%s"%(mode,pn))
- if mode == "text":
- queryType = "toc"
- else:
- queryType = mode
-
- # check for cached TOC
- if not docinfo.has_key('tocXML_%s'%mode):
- self.getToc(mode=mode, docinfo=docinfo)
-
- tocxml = docinfo.get('tocXML_%s'%mode, None)
- if not tocxml:
- logging.error("getTocPage: unable to find tocXML")
- return "Error: no table of contents!"
-
- if size is None:
- size = pageinfo.get('tocPageSize', 30)
-
- if start is None:
- start = (pn - 1) * size
-
- fulltoc = ET.fromstring(tocxml)
-
- if fulltoc is not None:
- # paginate
- first = (start - 1) * 2
- len = size * 2
- del fulltoc[:first]
- del fulltoc[len:]
- tocdivs = fulltoc
-
- # check all a-tags
- links = tocdivs.findall(".//a")
- for l in links:
- href = l.get('href')
- if href:
- # take pn from href
- m = re.match(r'page-fragment\.xql.*pn=(\d+)', href)
- if m is not None:
- # and create new url (assuming parent is documentViewer)
- url = self.getLink('pn', m.group(1))
- l.set('href', url)
- else:
- logging.warning("getTocPage: Problem with link=%s"%href)
-
- # fix two-divs-per-row with containing div
- newtoc = ET.Element('div', {'class':'queryResultPage'})
- for (d1,d2) in zip(tocdivs[::2],tocdivs[1::2]):
- e = ET.Element('div',{'class':'tocline'})
- e.append(d1)
- e.append(d2)
- newtoc.append(e)
-
- return serialize(newtoc)
-
- return "ERROR: no table of contents!"
-
+
def manage_changeMpdlXmlTextServer(self,title="",serverUrl="http://mpdl-text.mpiwg-berlin.mpg.de/mpdl/interface/",timeout=40,RESPONSE=None):
"""change settings"""