def parse_rule(obj): match = obj.get('match') if 'rewrite' in obj: replace = RxRules.archival_rewrite() elif 'function' in obj: replace = load_py_name(obj['function']) else: replace = RxRules.format(obj.get('replace', '{0}')) group = obj.get('group', 0) result = (match, replace, group) return result
def parse_rewrite_rule(self, config): rw_config = config.get('rewrite') if not rw_config: return rule = rw_config url_prefix = config.get('url_prefix') if not isinstance(url_prefix, list): url_prefix = [url_prefix] rule['url_prefix'] = url_prefix regexs = rule.get('js_regexs') if regexs: parse_rules_func = self.init_js_regex(regexs) rule['js_regex_func'] = parse_rules_func mixin = rule.get('mixin') if mixin: rule['mixin'] = load_py_name(mixin) return rule