|
|
| version 1.1.2.1, 2010/06/14 10:50:06 | version 1.1.2.2, 2010/06/16 09:16:02 |
|---|---|
| Line 21 import urllib | Line 21 import urllib |
| import logging | import logging |
| import math | import math |
| import documentViewer | import documentViewer |
| import urllib2 | |
| import urllib | |
| import urlparse | import urlparse |
| from types import * | from types import * |
| Line 69 class extraFunction(Folder): | Line 70 class extraFunction(Folder): |
| tocMode = pageinfo['tocMode'] | tocMode = pageinfo['tocMode'] |
| tocPN = pageinfo['tocPN'] | tocPN = pageinfo['tocPN'] |
| selfurl = self.absolute_url() | selfurl = self.absolute_url() |
| 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 = page.replace('?document=%s'%str(docpath),'?url=%s'%url) | page = urllib2.urlopen("http://mpdl-proto.mpiwg-berlin.mpg.de/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)) |
| #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) | |
| data = page.read() | |
| page.close() | |
| pagexml = data.replace('?document=%s'%str(docpath),'?url=%s'%url) | |
| pagedom = Parse(pagexml) | pagedom = Parse(pagexml) |
| if (queryType=="fulltext")or(queryType=="xpath")or(queryType=="xquery")or(queryType=="fulltextMorphLemma"): | if (queryType=="fulltext")or(queryType=="xpath")or(queryType=="xquery")or(queryType=="fulltextMorphLemma"): |
| pagedivs = pagedom.xpath("//div[@class='queryResultPage']") | pagedivs = pagedom.xpath("//div[@class='queryResultPage']") |
| Line 132 class extraFunction(Folder): | Line 138 class extraFunction(Folder): |
| def getNumPages(self,docinfo=None): | def getNumPages(self,docinfo=None): |
| """get list of pages from fulltext and put in docinfo""" | """get list of pages from fulltext and put in docinfo""" |
| xquery = '//pb' | xquery = '//pb' |
| text = self.template.fulltextclient.eval("/mpdl/interface/xquery.xql", "document=%s&xquery=%s"%(docinfo['textURLPath'],xquery)) | text = urllib2.urlopen("http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/xquery.xql","document=%s&xquery=%s"%(docinfo['textURLPath'],xquery)) |
| #text = self.template.fulltextclient.eval("/mpdl/interface/xquery.xql", "document=%s&xquery=%s"%(docinfo['textURLPath'],xquery)) | |
| docinfo['numPages'] = text.count("<pb ") | docinfo['numPages'] = text.count("<pb ") |
| return docinfo | return docinfo |
| Line 153 class extraFunction(Folder): | Line 160 class extraFunction(Folder): |
| textParam = "document=%s&mode=%s&pn=%s"%(docpath,textmode,pn) | textParam = "document=%s&mode=%s&pn=%s"%(docpath,textmode,pn) |
| if highlightQuery is not None: | if highlightQuery is not None: |
| textParam +="&highlightQuery=%s&sn=%s"%(highlightQuery,sn) | textParam +="&highlightQuery=%s&sn=%s"%(highlightQuery,sn) |
| pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", textParam, outputUnicode=False) | |
| pagexml = urllib2.urlopen("http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/page-fragment.xql",textParam) | |
| """pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", textParam, outputUnicode=False)""" | |
| pagedom = Parse(pagexml) | pagedom = Parse(pagexml) |
| # plain text mode | # plain text mode |
| if mode == "text": | if mode == "text": |
| Line 216 class extraFunction(Folder): | Line 226 class extraFunction(Folder): |
| def getTranslate(self, query=None, language=None): | def getTranslate(self, query=None, language=None): |
| """translate into another languages""" | """translate into another languages""" |
| pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lex.xql","document=&language="+str(language)+"&query="+url_quote(str(query))) | pagexml = urllib2.urlopen("http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/lt/lex.xql","document=&language="+str(language)+"&query="+url_quote(str(query))) |
| return pagexml | #pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lex.xql","document=&language="+str(language)+"&query="+url_quote(str(query))) |
| data = pagexml.read() | |
| pagexml.close() | |
| return data | |
| def getLemma(self, lemma=None, language=None): | def getLemma(self, lemma=None, language=None): |
| """simular words lemma """ | """simular words lemma """ |
| pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(lemma))) | pagexml = urllib2.urlopen("http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(lemma))) |
| return pagexml | #pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(lemma))) |
| data = pagexml.read() | |
| pagexml.close() | |
| return data | |
| def getLemmaNew(self, query=None, language=None): | def getLemmaNew(self, query=None, language=None): |
| """simular words lemma """ | """simular words lemma """ |
| pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(query))) | |
| return pagexml | pagexml = urllib2.urlopen("http://mpdl-proto.mpiwg-berlin.mpg.de/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))) | |
| data = pagexml.read() | |
| pagexml.close() | |
| 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): |
| """number of""" | """number of""" |
| Line 238 class extraFunction(Folder): | Line 258 class extraFunction(Folder): |
| queryType =pageinfo['queryType'] | queryType =pageinfo['queryType'] |
| tocSearch = 0 | tocSearch = 0 |
| tocDiv = None | tocDiv = None |
| 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) | |
| pagexml = urllib2.urlopen("http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath, 'text', queryType, 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) | 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])) |
| Line 266 class extraFunction(Folder): | Line 288 class extraFunction(Folder): |
| # number of entries in toc | # number of entries in toc |
| tocSize = 0 | tocSize = 0 |
| tocDiv = None | tocDiv = None |
| pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql", "document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType,pagesize,pn), outputUnicode=False) | |
| pagexml = urllib2.urlopen("http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/doc-query.xql","document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType, pagesize, pn)) | |
| #pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql", "document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType,pagesize,pn), outputUnicode=False) | |
| # post-processing downloaded xml | # post-processing downloaded xml |
| pagedom = Parse(pagexml) | pagedom = Parse(pagexml) |
| # get number of entries | # get number of entries |
| Line 292 class extraFunction(Folder): | Line 316 class extraFunction(Folder): |
| viewMode= pageinfo['viewMode'] | viewMode= pageinfo['viewMode'] |
| tocMode = pageinfo['tocMode'] | tocMode = pageinfo['tocMode'] |
| tocPN = pageinfo['tocPN'] | tocPN = pageinfo['tocPN'] |
| pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql", "document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType, pagesize, pn), outputUnicode=False) | |
| page = pagexml.replace('page-fragment.xql?document=%s'%str(path),'%s?url=%s&viewMode=%s&tocMode=%s&tocPN=%s'%(selfurl,url, viewMode, tocMode, tocPN)) | pagexml = urllib2.urlopen("http://mpdl-proto.mpiwg-berlin.mpg.de/mpdl/interface/doc-query.xql","document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType, pagesize, pn)) |
| data = pagexml.read() | |
| pagexml.close() | |
| page = data.replace('page-fragment.xql?document=%s'%str(path),'%s?url=%s&viewMode=%s&tocMode=%s&tocPN=%s'%(selfurl,url, viewMode, tocMode, tocPN)) | |
| text = page.replace('mode=image','mode=texttool') | text = page.replace('mode=image','mode=texttool') |
| return text | return text |