mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-28 00:25:21 +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:
parent
2079ce191c
commit
a4efa58d1e
@ -156,6 +156,11 @@ class RewriteContent(object):
|
|||||||
text_type,
|
text_type,
|
||||||
stream)
|
stream)
|
||||||
|
|
||||||
|
# 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]
|
rewriter_class = rule.rewriters[text_type]
|
||||||
|
|
||||||
# for html, need to perform header insert, supply js, css, xml
|
# for html, need to perform header insert, supply js, css, xml
|
||||||
|
@ -45,8 +45,11 @@ class RewriteRules(BaseRule):
|
|||||||
# set js class, using either default or override from config
|
# set js class, using either default or override from config
|
||||||
self.rewriters['js'] = config.get('js_class', js_default_class)
|
self.rewriters['js'] = config.get('js_class', js_default_class)
|
||||||
|
|
||||||
|
self.rewriters['js_proxy'] = JSNoneRewriter
|
||||||
|
|
||||||
# add any regexs for js rewriter
|
# 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
|
# cookie rewrite scope
|
||||||
self.cookie_scope = config.get('cookie_scope', 'default')
|
self.cookie_scope = config.get('cookie_scope', 'default')
|
||||||
@ -57,12 +60,12 @@ class RewriteRules(BaseRule):
|
|||||||
|
|
||||||
self.req_cookie_rewrite = req_cookie_rewrite
|
self.req_cookie_rewrite = req_cookie_rewrite
|
||||||
|
|
||||||
def _add_custom_regexs(self, field, config):
|
def _add_custom_regexs(self, rw_id, field, config):
|
||||||
regexs = config.get(field + '_regexs')
|
regexs = config.get(field)
|
||||||
if not regexs:
|
if not regexs:
|
||||||
return
|
return
|
||||||
|
|
||||||
rewriter_cls = self.rewriters[field]
|
rewriter_cls = self.rewriters[rw_id]
|
||||||
|
|
||||||
#rule_def_tuples = RegexRewriter.parse_rules_from_config(regexs)
|
#rule_def_tuples = RegexRewriter.parse_rules_from_config(regexs)
|
||||||
parse_rules_func = 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)
|
rule_def_tuples = parse_rules_func(urlrewriter)
|
||||||
return rewriter_cls(urlrewriter, rule_def_tuples)
|
return rewriter_cls(urlrewriter, rule_def_tuples)
|
||||||
|
|
||||||
self.rewriters[field] = extend_rewriter_with_regex
|
self.rewriters[rw_id] = extend_rewriter_with_regex
|
||||||
|
Loading…
x
Reference in New Issue
Block a user