From 4cf0b484bcfa93aa6e4fc171a9793a80c7f564c0 Mon Sep 17 00:00:00 2001 From: Dorae <86833913+Toperlock@users.noreply.github.com> Date: Sun, 31 Dec 2023 17:08:36 +0800 Subject: [PATCH] Update main.py --- main.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/main.py b/main.py index f0ac7f2..4205863 100644 --- a/main.py +++ b/main.py @@ -56,6 +56,17 @@ def parse_and_convert_to_dataframe(link): df = read_list_from_url(link) return df +# 对字典进行排序,含list of dict +def sort_dict(obj): + if isinstance(obj, dict): + return {k: sort_dict(obj[k]) for k in sorted(obj)} + elif isinstance(obj, list) and all(isinstance(elem, dict) for elem in obj): + return sorted([sort_dict(x) for x in obj], key=lambda d: sorted(d.keys())[0]) + elif isinstance(obj, list): + return sorted(sort_dict(x) for x in obj) + else: + return obj + def parse_list_file(link, output_directory): with concurrent.futures.ThreadPoolExecutor() as executor: # 使用executor.map并行处理链接 @@ -107,12 +118,16 @@ def parse_list_file(link, output_directory): with open(file_name, 'w', encoding='utf-8') as output_file: json.dump(result_rules, output_file, ensure_ascii=False, indent=2) + srs_path = file_name.replace(".json", ".srs") + os.system(f"sing-box rule-set compile --output {srs_path} {file_name}") return file_name # 读取 links.txt 中的每个链接并生成对应的 JSON 文件 with open("../links.txt", 'r') as links_file: links = links_file.read().splitlines() +links = [l for l in links if l.strip() and not l.strip().startswith("#")] + output_dir = "./" result_file_names = []