1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 00:03:28 +01:00

framework/urlrewriter: allow overriding UrlRewriter with optional urlrewriter_class param,

easier to override create_rebased_rewriter() with custom rewriter as well
This commit is contained in:
Ilya Kreymer 2015-02-12 10:34:04 -08:00
parent dcf3688dc3
commit 79cfdd6a08
2 changed files with 8 additions and 2 deletions

View File

@ -23,6 +23,9 @@ class ArchivalRouter(object):
self.home_view = kwargs.get('home_view')
self.error_view = kwargs.get('error_view')
self.urlrewriter_class = (kwargs.get('config', {}).
get('urlrewriter_class', UrlRewriter))
def __call__(self, env):
request_uri = env['REL_REQUEST_URI']
@ -61,7 +64,7 @@ class ArchivalRouter(object):
coll=coll,
use_abs_prefix=use_abs_prefix,
wburl_class=route.handler.get_wburl_type(),
urlrewriter_class=UrlRewriter,
urlrewriter_class=self.urlrewriter_class,
cookie_scope=route.cookie_scope,
rewrite_opts=route.rewrite_opts)

View File

@ -90,7 +90,10 @@ class UrlRewriter(object):
new_url = new_url[len(self.prefix):]
new_wburl = WbUrl(new_url)
return UrlRewriter(new_wburl, self.prefix)
return self._create_rebased_rewriter(new_wburl, self.prefix)
def _create_rebased_rewriter(self, new_wburl, prefix):
return UrlRewriter(new_wburl, prefix)
def get_cookie_rewriter(self, scope=None):
# collection scope overrides rule scope?