Mercurial > hg > purlService
changeset 18:1eb5e3f6444b
encoding problems with the redirector solved
author | dwinter |
---|---|
date | Mon, 19 Nov 2012 12:14:25 +0100 |
parents | 64d6ac1a1354 |
children | cce127a28fc9 |
files | restService/redirector.py restService/restService.py restService/viewer.config searchService/searchLines.py |
diffstat | 4 files changed, 39 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/restService/redirector.py Fri Nov 16 15:26:05 2012 +0100 +++ b/restService/redirector.py Mon Nov 19 12:14:25 2012 +0100 @@ -9,6 +9,7 @@ import managePurls.manageIndexMetaPURLs as manageIndexMetaPURLs import logging import urllib +import urllib2 class redirector: @@ -16,8 +17,8 @@ purlHandler=None def __init__(self): #read config file for the viewers - #confFile= file("/usr/local/metadataServices/purlService/restService/viewer.config") - confFile= file("/Users/dwinter/Documents/Projekte/MetaDataManagement/purlService/restService/viewer.config") + confFile= file("/usr/local/metadataServices/purlService/restService/viewer.config") + #confFile= file("/Users/dwinter/Documents/Projekte/MetaDataManagement/purlService/restService/viewer.config") self.purlHandler = manageIndexMetaPURLs.IndexMetaPURLManager() for line in confFile.readlines(): @@ -44,7 +45,14 @@ params = web.input() - + + for key in params.keys(): + if key=="query" and params[key]=="()": #leere frage wegwerfen + del params[key] + + + + splitted=path.split("/") if len(splitted)!=2: #pfrad sollte zwei anteile habe "flavour/purl" raise web.notfound("not found") @@ -91,12 +99,15 @@ - + if len(params.keys())>0: - viewerUrl = viewerFormatString%path+'&'+urllib.urlencode(params) + ret=[key+"="+params[key] for key in params.keys()] + viewerUrl = viewerFormatString%path+'&'+u'&'.join(ret) + + else: viewerUrl = viewerFormatString%path - print viewerUrl + raise web.redirect(viewerUrl,"302 found") if __name__ == '__main__':
--- a/restService/restService.py Fri Nov 16 15:26:05 2012 +0100 +++ b/restService/restService.py Mon Nov 19 12:14:25 2012 +0100 @@ -30,7 +30,7 @@ class serviceDescription: def __init__(self): - self.render = web.template.render('templates/') + self.render = web.template.render('/usr/local/metadataServices/purlService/restService/templates/') def GET(self): return self.render.serviceDescription()
--- a/restService/viewer.config Fri Nov 16 15:26:05 2012 +0100 +++ b/restService/viewer.config Mon Nov 19 12:14:25 2012 +0100 @@ -1,3 +1,3 @@ -echo,http://echo.mpiwg-berlin.mpg.de/ECHOdocuViewfull?url=%s,http://echo.mpiwg-berlin.mpg.de/ECHOdocuViewfull?mode=imagepath&url=%s&viewMode=images -libcoll,http://libcoll.mpiwg-berlin.mpg.de/libviewa?url=%s,http://libcoll.mpiwg-berlin.mpg.de/libviewa?url=%s&viewMode=images +echo,http://echo.mpiwg-berlin.mpg.de/ECHOdocuViewfull?url=%s,http://echo.mpiwg-berlin.mpg.de/ECHOdocuViewfull?mode=imagepath&url=%s +libcoll,http://libcoll.mpiwg-berlin.mpg.de/libviewa?url=%s,http://libcoll.mpiwg-berlin.mpg.de/libviewa?url=%s&mode=imagepath digilib,,http://digilib.mpiwg-berlin.mpg.de/digitallibrary/jquery/digilib.html?fn=%s
--- a/searchService/searchLines.py Fri Nov 16 15:26:05 2012 +0100 +++ b/searchService/searchLines.py Mon Nov 19 12:14:25 2012 +0100 @@ -9,14 +9,17 @@ import urllib import os.path import json +import urllib2 +import logging -SOLR_SERVER="http://localhost:8983/solr" -DRI_SERVER="http://localhost:8080/purl/" +SOLR_SERVER="https://md.mpiwg-berlin.mpg.de/solr" +DRI_SERVER="http://md.mpiwg-berlin.mpg.de/" class searchLines: def __init__(self): - self.con = solr.SolrConnection(SOLR_SERVER) + #logging.basicConfig(filename='/tmp/solr.log',level=logging.DEBUG) + self.con = solr.SolrConnection(SOLR_SERVER,debug=False) self.search = solr.SearchHandler(self.con,"/fulltexts-line/select") self.searchText = solr.SearchHandler(self.con,"/fulltexts/select") @@ -25,15 +28,21 @@ paras = web.input() if len(paras.keys())==0: - raise web.badrequest("Needs at minimum one of the parametrs: query,doc,dri,page") + raise web.badrequest("Needs at minimum one of the parameters: query,doc,dri,page") queryString=paras.get("query") + + queryString=urllib2.unquote(queryString) + + if not queryString: queryString="q=" + docPath = paras.get("uri") if docPath: + docPath=urllib2.unquote(docPath) #make sure that docpath="/mpiwg/online/..." if not docPath.startswith("/mpiwg/"): if not docPath.startswith("/mpiwg/online/"): @@ -49,9 +58,10 @@ docPath=docPath[0:-1] docPath=os.path.normpath(docPath) + queryString+=""" AND archive-path-folder:"%s" """%docPath - + dri = paras.get('dri') if dri: @@ -80,7 +90,7 @@ queryString+=' AND archive-path-indexMeta:"%s"'%indexMeta - + page= paras.get("pf") if page: @@ -89,21 +99,17 @@ head,name=os.path.split(page) name,ext = os.path.splitext(name) - splitted=name.split(".") # schneide ausserdem das sufffix ab, falls eins da ist. - - if len(splitted)>1: - name=".".join(splitted[0,-1]) queryString+=" AND pf:%s"%name - - response = self.search(queryString,wt="json") + + response = self.search(queryString) ret="" hitId=0 rows=[] - + pageSize=self.getPageSize(queryString) for hit in response: