Skip to content

Commit e077c23

Browse files
committed
fuzzy match: modify existing params to ensure any custom params are preserved
templates: add ability to set custom global vars, such as 'static_path' for all templates
1 parent b0b0adb commit e077c23

File tree

5 files changed

+34
-11
lines changed

5 files changed

+34
-11
lines changed

pywb/cdx/cdxdomainspecific.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,15 @@ def __call__(self, query):
104104
if inx > 0:
105105
url = url[:inx + 1]
106106

107-
params = {'url': url,
108-
'matchType': 'prefix',
109-
'filter': filter_,
110-
'output': output}
107+
params = query.params
108+
params.update({'url': url,
109+
'matchType': 'prefix',
110+
'filter': filter_})
111+
try:
112+
del params['reverse']
113+
del params['closest']
114+
except KeyError:
115+
pass
111116

112117
return params
113118

pywb/ui/head_insert.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!-- WB Insert -->
22
{% if rule.js_rewrite_location %}
3-
<script src='{{ wbrequest.host_prefix }}/static/default/wombat.js'> </script>
3+
<script src='{{ wbrequest.host_prefix }}/{{ static_path }}/wombat.js'> </script>
44
<script>
55
WB_wombat_init("{{wbrequest.wb_prefix}}",
66
"{{cdx['timestamp']}}",
@@ -13,7 +13,7 @@
1313
wbinfo.capture_str = "{{ cdx.timestamp | format_ts }}";
1414
wbinfo.is_embed = {{"true" if wbrequest.is_embed else "false"}};
1515
</script>
16-
<script src='{{ wbrequest.host_prefix }}/static/default/wb.js'> </script>
17-
<link rel='stylesheet' href='{{ wbrequest.host_prefix }}/static/default/wb.css'/>
16+
<script src='{{ wbrequest.host_prefix }}/{{ static_path }}/wb.js'> </script>
17+
<link rel='stylesheet' href='{{ wbrequest.host_prefix }}/{{ static_path }}/wb.css'/>
1818
<!-- End WB Insert -->
1919

pywb/webapp/pywb_init.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from pywb.rewrite.rewrite_content import RewriteContent
1212
from pywb.rewrite.rewriterules import use_lxml_parser
1313

14-
from views import load_template_file, load_query_template
14+
from views import load_template_file, load_query_template, add_env_globals
1515
from replay_views import ReplayView
1616

1717
from query_handler import QueryHandler
@@ -37,6 +37,8 @@
3737
'home_html': 'ui/index.html',
3838
'error_html': 'ui/error.html',
3939

40+
'template_globals': {'static_path': 'static/default'},
41+
4042
'static_routes': {'static/default': 'pywb/static/'},
4143

4244
'domain_specific_rules': DEFAULT_RULES_FILE,
@@ -61,7 +63,8 @@ def get(self, key, default_val=None):
6163

6264

6365
#=================================================================
64-
def create_wb_handler(query_handler, config, ds_rules_file=None):
66+
def create_wb_handler(query_handler, config,
67+
ds_rules_file=DEFAULT_RULES_FILE):
6568

6669
cookie_maker = config.get('cookie_maker')
6770
record_loader = ArcWarcRecordLoader(cookie_maker=cookie_maker)
@@ -71,6 +74,10 @@ def create_wb_handler(query_handler, config, ds_rules_file=None):
7174
resolving_loader = ResolvingLoader(paths=paths,
7275
record_loader=record_loader)
7376

77+
template_globals = config.get('template_globals')
78+
if template_globals:
79+
add_env_globals(template_globals)
80+
7481
head_insert_view = load_template_file(config.get('head_insert_html'),
7582
'Head Insert')
7683

pywb/webapp/query_handler.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,12 @@ def init_from_config(config,
3535
ds_rules_file=DEFAULT_RULES_FILE,
3636
html_view=None):
3737

38-
perms_policy = config.get('perms_policy')
38+
perms_policy = None
39+
server_cls = None
3940

40-
server_cls = config.get('server_cls')
41+
if hasattr(config, 'get'):
42+
perms_policy = config.get('perms_policy')
43+
server_cls = config.get('server_cls')
4144

4245
cdx_server = create_cdx_server(config, ds_rules_file, server_cls)
4346

pywb/webapp/views.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ def is_wb_handler(obj):
6666

6767
#=================================================================
6868
class J2TemplateView:
69+
env_globals = {}
70+
6971
def __init__(self, filename):
7072
template_dir, template_file = path.split(filename)
7173

@@ -81,6 +83,7 @@ def make_jinja_env(self, template_dir):
8183

8284
jinja_env = Environment(loader=loader, trim_blocks=True)
8385
jinja_env.filters.update(FILTERS)
86+
jinja_env.globals.update(self.env_globals)
8487
return jinja_env
8588

8689
def render_to_string(self, **kwargs):
@@ -99,6 +102,11 @@ def render_response(self, **kwargs):
99102
content_type=content_type)
100103

101104

105+
#=================================================================
106+
def add_env_globals(glb):
107+
J2TemplateView.env_globals.update(glb)
108+
109+
102110
#=================================================================
103111
def load_template_file(file, desc=None, view_class=J2TemplateView):
104112
if file:

0 commit comments

Comments
 (0)