Mercurial > hg > documentViewer
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 |