comparison documentViewer.py @ 96:a679c8c7148d

getTranslate, getLemma two functions
author abukhman
date Wed, 21 Apr 2010 15:50:59 +0200
parents db6d594aa4d9
children 2b8fd19432fb
comparison
equal deleted inserted replaced
95:db6d594aa4d9 96:a679c8c7148d
667 pagesize = pageinfo['queryPageSize'] 667 pagesize = pageinfo['queryPageSize']
668 pn = pageinfo['searchPN'] 668 pn = pageinfo['searchPN']
669 sn = pageinfo['sn'] 669 sn = pageinfo['sn']
670 query =pageinfo['query'] 670 query =pageinfo['query']
671 queryType =pageinfo['queryType'] 671 queryType =pageinfo['queryType']
672 672 viewMode= pageinfo['viewMode']
673 tocMode = pageinfo['tocMode']
674 tocPN = pageinfo['tocPN']
673 pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s"%(docpath, 'text', queryType, query, pagesize, pn, sn) ,outputUnicode=False) 675 pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s"%(docpath, 'text', queryType, query, pagesize, pn, sn) ,outputUnicode=False)
674 pagedom = Parse(pagexml) 676 pagedom = Parse(pagexml)
675 #pagedivs = pagedom.xpath("//div[@class='queryResultPage']") 677 #pagedivs = pagedom.xpath("//div[@class='queryResultPage']")
676 678 selfurl = self.absolute_url()
677 return pagexml 679 page = pagexml.replace('page-fragment.xql?document=/echo/la/Benedetti_1585.xml','%s?url=/mpiwg/online/permanent/library/163127KK&viewMode=%s&tocMode=%s&tocPN=%s&query=%s&queryType=%s'%(selfurl, viewMode, tocMode, tocPN, query, queryType))
680 text =page.replace('mode=text','mode=texttool')
681 return text
678 #if len(pagedivs) > 0: 682 #if len(pagedivs) > 0:
679 # pagenode = pagedom[0] 683 # pagenode = pagedom[0]
680 # return serializeNode(pagenode) 684 # return serializeNode(pagenode)
681 #else: 685 #else:
682 # return "xaxa" 686 # return "xaxa"
687 text = self.template.fulltextclient.eval("/mpdl/interface/xquery.xql", "document=%s&xquery=%s"%(docinfo['textURLPath'],xquery)) 691 text = self.template.fulltextclient.eval("/mpdl/interface/xquery.xql", "document=%s&xquery=%s"%(docinfo['textURLPath'],xquery))
688 # TODO: better processing of the page list. do we need the info somewhere else also? 692 # TODO: better processing of the page list. do we need the info somewhere else also?
689 docinfo['numPages'] = text.count("<pb ") 693 docinfo['numPages'] = text.count("<pb ")
690 return docinfo 694 return docinfo
691 695
692 def getTextPage(self, mode="text", pn=1, docinfo=None): 696 def getTextPage(self, mode="text", pn=1, docinfo=None, pageinfo=None,):
693 """returns single page from fulltext""" 697 """returns single page from fulltext"""
694 docpath = docinfo['textURLPath'] 698 docpath = docinfo['textURLPath']
695 if mode == "text_dict": 699 if mode == "text_dict":
696 textmode = "textPollux" 700 textmode = "textPollux"
697 else: 701 else:
698 textmode = mode 702 textmode = mode
699 703
704 #selfurl = self.absolute_url()
705 #viewMode= pageinfo['viewMode']
706 #tocMode = pageinfo['tocMode']
707 #tocPN = pageinfo['tocPN']
708
700 pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", "document=%s&mode=%s&pn=%s"%(docpath,textmode,pn), outputUnicode=False) 709 pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", "document=%s&mode=%s&pn=%s"%(docpath,textmode,pn), outputUnicode=False)
701 ####### 710 #######
702 #textpython = pagexml.replace('page-fragment.xql?document=/echo/la/Benedetti_1585.xml','?url=/mpiwg/online/permanent/library/163127KK&tocMode='+str(tocMode)+'&queryResultPN='+str(queryResultPN)+'&viewMode='+str(viewMode)) 711 #page = pagexml.replace('page-fragment.xql?document=/echo/la/Benedetti_1585.xml','%s?url=/mpiwg/online/permanent/library/163127KK&viewMode=%s&tocMode=%s&tocPN=%s'%(selfurl, viewMode, tocMode, tocPN))
703 #textnew =textpython.replace('mode=text','mode=texttool') 712 #text =page.replace('mode=text','mode=texttool')
704 ####### 713 #######
705 # post-processing downloaded xml 714 # post-processing downloaded xml
706 pagedom = Parse(pagexml) 715 pagedom = Parse(pagexml)
707 # plain text mode 716 # plain text mode
708 if mode == "text": 717 if mode == "text":
728 href = hrefNode.nodeValue 737 href = hrefNode.nodeValue
729 if href.startswith('lt/lex.xql'): 738 if href.startswith('lt/lex.xql'):
730 # is pollux link 739 # is pollux link
731 selfurl = self.absolute_url() 740 selfurl = self.absolute_url()
732 # change href 741 # change href
733 hrefNode.nodeValue = href.replace('lt/lex.xql','%s/head_main_voc'%selfurl) 742 hrefNode.nodeValue = href.replace('lt/lex.xql','%s/template/head_main_voc'%selfurl)
734 # add target 743 # add target
735 l.setAttributeNS(None, 'target', '_blank') 744 l.setAttributeNS(None, 'target', '_blank')
745
746 if href.startswith('lt/lemma.xql'):
747 selfurl = self.absolute_url()
748 hrefNode.nodeValue = href.replace('lt/lemma.xql','%s/template/head_main_lemma'%selfurl)
749 l.setAttributeNS(None, 'target', '_blank')
736 return serializeNode(pagenode) 750 return serializeNode(pagenode)
737 751
738 return "no text here" 752 return "no text here"
753
754 def getTranslate(self, query=None, language=None):
755 """translate into another languages"""
756 pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lex.xql","query=%s&language=%s"%(query,language),outputUnicode=False)
757 return pagexml
758
759 def getLemma(self):
760 """lemma"""
761 pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","query=%s&language=%s"%(query,language),outputUnicode=False)
762 return pagexml
739 763
740 def getToc(self, mode="text", docinfo=None): 764 def getToc(self, mode="text", docinfo=None):
741 """loads table of contents and stores in docinfo""" 765 """loads table of contents and stores in docinfo"""
742 logging.debug("documentViewer (gettoc) mode: %s"%(mode)) 766 logging.debug("documentViewer (gettoc) mode: %s"%(mode))
743 if 'tocSize_%s'%mode in docinfo: 767 if 'tocSize_%s'%mode in docinfo:
779 else: 803 else:
780 queryType = mode 804 queryType = mode
781 docpath = docinfo['textURLPath'] 805 docpath = docinfo['textURLPath']
782 pagesize = pageinfo['tocPageSize'] 806 pagesize = pageinfo['tocPageSize']
783 pn = pageinfo['tocPN'] 807 pn = pageinfo['tocPN']
808
809 selfurl = self.absolute_url()
810 viewMode= pageinfo['viewMode']
811 tocMode = pageinfo['tocMode']
812 tocPN = pageinfo['tocPN']
813
784 pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql", "document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType, pagesize, pn), outputUnicode=False) 814 pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql", "document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType, pagesize, pn), outputUnicode=False)
815 page = pagexml.replace('page-fragment.xql?document=/echo/la/Benedetti_1585.xml','%s?url=/mpiwg/online/permanent/library/163127KK&viewMode=%s&tocMode=%s&tocPN=%s'%(selfurl, viewMode, tocMode, tocPN))
816 text = page.replace('mode=image','mode=texttool')
817 return text
785 # post-processing downloaded xml 818 # post-processing downloaded xml
786 pagedom = Parse(pagexml) 819 #pagedom = Parse(text)
787 # div contains text 820 # div contains text
788 pagedivs = pagedom.xpath("//div[@class='queryResultPage']") 821 #pagedivs = pagedom.xpath("//div[@class='queryResultPage']")
789 if len(pagedivs) > 0: 822 #if len(pagedivs) > 0:
790 pagenode = pagedivs[0] 823 # pagenode = pagedivs[0]
791 return serializeNode(pagenode) 824 # return serializeNode(pagenode)
792 else: 825 #else:
793 return "No TOC!" 826 # return "No TOC!"
794 827
795 828
796 def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None): 829 def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None):
797 """init document viewer""" 830 """init document viewer"""
798 self.title=title 831 self.title=title