diff --git a/pywb/cdx/cdxdomainspecific.py b/pywb/cdx/cdxdomainspecific.py index 4804ff47..83b4d1ee 100644 --- a/pywb/cdx/cdxdomainspecific.py +++ b/pywb/cdx/cdxdomainspecific.py @@ -104,10 +104,15 @@ class FuzzyQuery: if inx > 0: url = url[:inx + 1] - params = {'url': url, - 'matchType': 'prefix', - 'filter': filter_, - 'output': output} + params = query.params + params.update({'url': url, + 'matchType': 'prefix', + 'filter': filter_}) + try: + del params['reverse'] + del params['closest'] + except KeyError: + pass return params diff --git a/pywb/ui/head_insert.html b/pywb/ui/head_insert.html index 07f1f0c0..19c14fa0 100644 --- a/pywb/ui/head_insert.html +++ b/pywb/ui/head_insert.html @@ -1,6 +1,6 @@ {% if rule.js_rewrite_location %} - + - - + + diff --git a/pywb/webapp/pywb_init.py b/pywb/webapp/pywb_init.py index 4adec312..337c48c6 100644 --- a/pywb/webapp/pywb_init.py +++ b/pywb/webapp/pywb_init.py @@ -11,7 +11,7 @@ from pywb.warc.resolvingloader import ResolvingLoader from pywb.rewrite.rewrite_content import RewriteContent from pywb.rewrite.rewriterules import use_lxml_parser -from views import load_template_file, load_query_template +from views import load_template_file, load_query_template, add_env_globals from replay_views import ReplayView from query_handler import QueryHandler @@ -37,6 +37,8 @@ DEFAULTS = { 'home_html': 'ui/index.html', 'error_html': 'ui/error.html', + 'template_globals': {'static_path': 'static/default'}, + 'static_routes': {'static/default': 'pywb/static/'}, 'domain_specific_rules': DEFAULT_RULES_FILE, @@ -61,7 +63,8 @@ class DictChain: #================================================================= -def create_wb_handler(query_handler, config, ds_rules_file=None): +def create_wb_handler(query_handler, config, + ds_rules_file=DEFAULT_RULES_FILE): cookie_maker = config.get('cookie_maker') record_loader = ArcWarcRecordLoader(cookie_maker=cookie_maker) @@ -71,6 +74,10 @@ def create_wb_handler(query_handler, config, ds_rules_file=None): resolving_loader = ResolvingLoader(paths=paths, record_loader=record_loader) + template_globals = config.get('template_globals') + if template_globals: + add_env_globals(template_globals) + head_insert_view = load_template_file(config.get('head_insert_html'), 'Head Insert') diff --git a/pywb/webapp/query_handler.py b/pywb/webapp/query_handler.py index c388d948..5254eafb 100644 --- a/pywb/webapp/query_handler.py +++ b/pywb/webapp/query_handler.py @@ -35,9 +35,12 @@ class QueryHandler(object): ds_rules_file=DEFAULT_RULES_FILE, html_view=None): - perms_policy = config.get('perms_policy') + perms_policy = None + server_cls = None - server_cls = config.get('server_cls') + if hasattr(config, 'get'): + perms_policy = config.get('perms_policy') + server_cls = config.get('server_cls') cdx_server = create_cdx_server(config, ds_rules_file, server_cls) diff --git a/pywb/webapp/views.py b/pywb/webapp/views.py index bebab355..cc1ea7be 100644 --- a/pywb/webapp/views.py +++ b/pywb/webapp/views.py @@ -66,6 +66,8 @@ def is_wb_handler(obj): #================================================================= class J2TemplateView: + env_globals = {} + def __init__(self, filename): template_dir, template_file = path.split(filename) @@ -81,6 +83,7 @@ class J2TemplateView: jinja_env = Environment(loader=loader, trim_blocks=True) jinja_env.filters.update(FILTERS) + jinja_env.globals.update(self.env_globals) return jinja_env def render_to_string(self, **kwargs): @@ -99,6 +102,11 @@ class J2TemplateView: content_type=content_type) +#================================================================= +def add_env_globals(glb): + J2TemplateView.env_globals.update(glb) + + #================================================================= def load_template_file(file, desc=None, view_class=J2TemplateView): if file: