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 |
