import json

def merge_rules(singbox_file, rules_file, output_file):
    # Read the singbox configuration
    with open(singbox_file, 'r', encoding='utf-8') as f:
        singbox_config = json.load(f)

    # Read the rules
    with open(rules_file, 'r', encoding='utf-8') as f:
        rules_config = json.load(f)

    # Merge and replace the rules into singbox_merged.json
    singbox_config['route']['rules'] = singbox_config['route']['rules']+rules_config['route']['rules'] 
    # singbox_config['route']['rules'] = rules_config['route']['rules']

    # Write the merged configuration
    with open(output_file, 'w', encoding='utf-8') as f:
        json.dump(singbox_config, f, ensure_ascii=False, indent=2)

def merge_rule_set(singbox_file, rule_set_file, output_file):
        # Read the singbox configuration
    with open(singbox_file, 'r', encoding='utf-8') as f:
        singbox_config = json.load(f)

    # Read the rules
    with open(rule_set_file, 'r', encoding='utf-8') as f:
        rule_set_file = json.load(f)

    # Merge and replace the rules into singbox_merged.json
    # singbox_config['route']['rules'] = rules_config['route']['rules'] + singbox_config['route']['rules']
    singbox_config['route']['rule_set'] = rule_set_file['route']['rule_set']

    # Write the merged configuration
    with open(output_file, 'w', encoding='utf-8') as f:
        json.dump(singbox_config, f, ensure_ascii=False, indent=2)# Read the singbox configuration    


# Usage
singbox_file = 'singbox.json'
rules_file = 'singbox_rules.json'
rule_set_file = 'singbox_rule_set.json'
output_file = 'singbox_merged.json'

merge_rules(singbox_file, rules_file, output_file)
print(f"Merged configuration saved to {output_file}")

# merge_rule_set(output_file, rule_set_file, output_file)
# print(f"Merged configuration ruleset saved to {output_file}")
