def isbn_redirect(self, isbn_param): isbn = normalize_isbn(isbn_param) if not isbn: return ed = Edition.from_isbn(isbn) if ed: web.seeother(ed.key)
def GET(self, isbn): # Preserve the url type (e.g. `.json`) and query params ext = '' if web.ctx.encoding and web.ctx.path.endswith('.' + web.ctx.encoding): ext = '.' + web.ctx.encoding if web.ctx.env.get('QUERY_STRING'): ext += '?' + web.ctx.env['QUERY_STRING'] try: ed = Edition.from_isbn(isbn) if ed: return web.found(ed.key + ext) except Exception as e: logger.error(e) return repr(e) web.ctx.status = '404 Not Found' return render.notfound(web.ctx.path, create=False)