Mercurial > hg > purlService
view restService/restService.py @ 25:6776aeff118c
added imageURL to the services
author | dwinter |
---|---|
date | Wed, 13 Mar 2013 10:37:32 +0100 |
parents | 7fdd2d68fd6b |
children | cbae1998a2a9 |
line wrap: on
line source
''' Created on 31.10.2012 @author: dwinter ''' import web import managePurls.manageIndexMetaPURLs as manageIndexMetaPURLs from redirector import redirector import logging from searcher import searcher from searchService.searchLines import searchLines from getPurls import getPurls from searchService.searchSolr import searchSolr import config urls = ( '/purl/(.+)','purl', '/docuview/(.+)','redirector', '/search','searcher', '/indexMeta/(.+)','indexMeta', '/','serviceDescription', '/searchLines','searchLines', '/searchLines/annotator/search','searchLines', '/getPurls','getPurls', '/searchSolr','searchSolr', '/imagePath/(.+)','imagePath', '/imageURL/(.+)','imageURL' ) app = web.application(urls, globals()) SCALERPATH="http://digilib.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn=%s" class serviceDescription: def __init__(self): self.render = web.template.render(config.TEMPLATE_PATH) def GET(self): return self.render.serviceDescription() class indexMeta: def __init__(self): self.md=manageIndexMetaPURLs.IndexMetaPURLManager() def GET(self,purl): path,validity=self.md.getPathValidity(purl) if path is None: raise web.notfound("Cannnot find a URL to this path") if validity is manageIndexMetaPURLs.PERM_NON_VALID: raise web.notfound("PURL NON VALID ANYMORE!") if validity is manageIndexMetaPURLs.TEMP_NON_VALID: return web.notfound("PURL currently not VALID try later!") raise web.redirect(config.TEXTER_URL%path) class purl: def __init__(self): self.md=manageIndexMetaPURLs.IndexMetaPURLManager() def GET(self,purl): path,validity=self.md.getPathValidity(purl) if path is None: raise web.notfound("Cannnot find a URL to this purl") if validity is manageIndexMetaPURLs.PERM_NON_VALID: raise web.notfound("PURL NON VALID ANYMORE!") if validity is manageIndexMetaPURLs.TEMP_NON_VALID: return web.notfound("PURL currently not VALID try later!") return path class imagePath: def __init__(self): self.md=manageIndexMetaPURLs.IndexMetaPURLManager() def GET(self,purl): path,validity=self.md.getImagePathValidity(purl) if path is None: raise web.notfound("Cannnot find a URL to this purl") if validity is manageIndexMetaPURLs.PERM_NON_VALID: raise web.notfound("PURL NON VALID ANYMORE!") if validity is manageIndexMetaPURLs.TEMP_NON_VALID: return web.notfound("PURL currently not VALID try later!") return path class imageURL: def __init__(self): self.md=manageIndexMetaPURLs.IndexMetaPURLManager() def GET(self,purl): #first try check if path stored path,validity=self.md.getImagePathValidity(purl) if path=="": print "no path" #second try gessing path,validity=self.md.getPathValidity(purl) path=path.replace("index.meta","pageimg") #hope that images are stored at the required place if path.startswith("http"): # there is a url stored, than this cannot be a path for the image server raise web.notfound("NO IMAGE PATH STORED FOUND AN URL(%s)!"%path) if validity is manageIndexMetaPURLs.PERM_NON_VALID: raise web.notfound("PURL NON VALID ANYMORE!") if validity is manageIndexMetaPURLs.TEMP_NON_VALID: return web.notfound("PURL currently not VALID try later!") data = web.input() if not 'dw' in data.keys(): data['dw']="100" if not 'dh' in data.keys(): data['dh']="100" return SCALERPATH%path+"&"+"&".join(["%s=%s"%(key,value) for key,value in data.items()]) #http://digilib.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn=/permanent/echo/hellinomnimon/Gazis-Gram_A/img&dw=1298&dh=915&pn=3 if __name__ == "__main__": app.run()