From 259afe83215fe346d0d894f3a12b7c599aa97772 Mon Sep 17 00:00:00 2001 From: BROBIRD <7692707+BROBIRD@users.noreply.github.com> Date: Tue, 2 Jun 2026 02:06:58 +0800 Subject: [PATCH] fix some bugs --- scripts/gfwlist_parser.py | 42 ++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/scripts/gfwlist_parser.py b/scripts/gfwlist_parser.py index 57c7f4d..ca4babe 100644 --- a/scripts/gfwlist_parser.py +++ b/scripts/gfwlist_parser.py @@ -112,6 +112,12 @@ def parse_gfwlist(content): if not line or line.startswith('!') or line.startswith('['): continue + + # 忽略特定的无效规则 + if line == '||addons.mozilla.org/*-*/firefox/addon/ublock-origin/*': + continue + if line == '||addons.mozilla.org/firefox/downloads/file/*/ublock_origin-*.xpi': + continue if line.startswith('@@||'): rule = line[4:] @@ -220,16 +226,18 @@ def generate_clash_provider_yaml(domain_list, ip_list, filename, title="payload" # 生成分离的临时文件用于 mrs 转换 base_name = filename.replace('.yaml', '') # 域名规则 - YAML 格式 - domain_yaml = f"{title}:\n" - for domain in unique_domains: - domain_yaml += f" - DOMAIN-SUFFIX,{domain}\n" - write_file(f"{base_name}_domain.yaml", domain_yaml) + if unique_domains: + domain_yaml = f"{title}:\n" + for domain in unique_domains: + domain_yaml += f" - DOMAIN-SUFFIX,{domain}\n" + write_file(f"{base_name}_domain.yaml", domain_yaml) # IP 规则 - YAML 格式 - ip_yaml = f"{title}:\n" - for rule in ip_rules: - ip_yaml += f" - {rule}\n" - write_file(f"{base_name}_ip.yaml", ip_yaml) + if ip_rules: + ip_yaml = f"{title}:\n" + for rule in ip_rules: + ip_yaml += f" - {rule}\n" + write_file(f"{base_name}_ip.yaml", ip_yaml) def generate_clash_ruleset_list(domain_list, ip_list, filename, title="GFWList"): unique_domains = sorted(set(domain_list)) @@ -245,16 +253,18 @@ def generate_clash_ruleset_list(domain_list, ip_list, filename, title="GFWList") # 生成分离的临时文件用于 mrs 转换 base_name = filename.replace('.list', '') # 域名规则 - text 格式 - domain_text = "" - for domain in unique_domains: - domain_text += f"DOMAIN-SUFFIX,{domain}\n" - write_file(f"{base_name}_domain.list", domain_text) + if unique_domains: + domain_text = "" + for domain in unique_domains: + domain_text += f"DOMAIN-SUFFIX,{domain}\n" + write_file(f"{base_name}_domain.list", domain_text) # IP 规则 - text 格式 - ip_text = "" - for rule in ip_rules: - ip_text += f"{rule}\n" - write_file(f"{base_name}_ip.list", ip_text) + if ip_rules: + ip_text = "" + for rule in ip_rules: + ip_text += f"{rule}\n" + write_file(f"{base_name}_ip.list", ip_text) def main(): print("Fetching GFWList...")