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

proxy mode: add special 'proxy_js' rewriter which defaults to none rewriter, but supports custom rules

from rules.yaml, to avoid inserting WB_wombat_ overrides in proxy mode #198
This commit is contained in:
Ilya Kreymer 2016-09-30 11:33:30 -07:00
parent 2079ce191c
commit a4efa58d1e
2 changed files with 14 additions and 6 deletions

View File

@ -156,7 +156,12 @@ class RewriteContent(object):
text_type,
stream)
rewriter_class = rule.rewriters[text_type]
# for proxy mode: use special js_proxy rewriter
# which may be none rewriter + custom rules (if any)
if text_type == 'js' and not urlrewriter.prefix:
rewriter_class = rule.rewriters['js_proxy']
else:
rewriter_class = rule.rewriters[text_type]
# for html, need to perform header insert, supply js, css, xml
# rewriters

View File

@ -45,8 +45,11 @@ class RewriteRules(BaseRule):
# set js class, using either default or override from config
self.rewriters['js'] = config.get('js_class', js_default_class)
self.rewriters['js_proxy'] = JSNoneRewriter
# add any regexs for js rewriter
self._add_custom_regexs('js', config)
self._add_custom_regexs('js', 'js_regexs', config)
self._add_custom_regexs('js_proxy', 'js_regexs', config)
# cookie rewrite scope
self.cookie_scope = config.get('cookie_scope', 'default')
@ -57,12 +60,12 @@ class RewriteRules(BaseRule):
self.req_cookie_rewrite = req_cookie_rewrite
def _add_custom_regexs(self, field, config):
regexs = config.get(field + '_regexs')
def _add_custom_regexs(self, rw_id, field, config):
regexs = config.get(field)
if not regexs:
return
rewriter_cls = self.rewriters[field]
rewriter_cls = self.rewriters[rw_id]
#rule_def_tuples = RegexRewriter.parse_rules_from_config(regexs)
parse_rules_func = RegexRewriter.parse_rules_from_config(regexs)
@ -71,4 +74,4 @@ class RewriteRules(BaseRule):
rule_def_tuples = parse_rules_func(urlrewriter)
return rewriter_cls(urlrewriter, rule_def_tuples)
self.rewriters[field] = extend_rewriter_with_regex
self.rewriters[rw_id] = extend_rewriter_with_regex