mirror of
https://github.com/itdoginfo/allow-domains.git
synced 2025-09-04 19:49:56 +00:00
Added discrod subnets srs
This commit is contained in:
parent
5b9c1eabf3
commit
c4df3ca047
1 changed files with 47 additions and 4 deletions
51
convert.py
51
convert.py
|
@ -16,6 +16,7 @@ rusDomainsOutsideSrc='src/Russia-domains-outside.lst'
|
||||||
rusDomainsOutsideOut='Russia/outside'
|
rusDomainsOutsideOut='Russia/outside'
|
||||||
uaDomainsSrc='src/Ukraine-domains-inside.lst'
|
uaDomainsSrc='src/Ukraine-domains-inside.lst'
|
||||||
uaDomainsOut='Ukraine/inside'
|
uaDomainsOut='Ukraine/inside'
|
||||||
|
DiscordSubnets = 'Subnets/IPv4/Discord.lst'
|
||||||
|
|
||||||
def raw(src, out):
|
def raw(src, out):
|
||||||
domains = set()
|
domains = set()
|
||||||
|
@ -177,7 +178,7 @@ def domains_from_file(filepath):
|
||||||
print(f"File not found: {filepath}")
|
print(f"File not found: {filepath}")
|
||||||
return domains
|
return domains
|
||||||
|
|
||||||
def generate_srs(domains, output_name):
|
def generate_srs_domains(domains, output_name):
|
||||||
output_directory = 'JSON'
|
output_directory = 'JSON'
|
||||||
compiled_output_directory = 'SRS'
|
compiled_output_directory = 'SRS'
|
||||||
|
|
||||||
|
@ -253,6 +254,45 @@ def generate_srs_for_categories(directories, output_json_directory='JSON', compi
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
print(f"Compile error {json_file_path}: {e}")
|
print(f"Compile error {json_file_path}: {e}")
|
||||||
|
|
||||||
|
def generate_srs_subnets(input_file, output_json_directory='JSON', compiled_output_directory='SRS'):
|
||||||
|
os.makedirs(output_json_directory, exist_ok=True)
|
||||||
|
os.makedirs(compiled_output_directory, exist_ok=True)
|
||||||
|
|
||||||
|
subnets = []
|
||||||
|
with open(input_file, 'r', encoding='utf-8') as file:
|
||||||
|
for line in file:
|
||||||
|
subnet = line.strip()
|
||||||
|
if subnet:
|
||||||
|
subnets.append(subnet)
|
||||||
|
|
||||||
|
data = {
|
||||||
|
"version": 2,
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"network": ["udp"],
|
||||||
|
"ip_cidr": subnets,
|
||||||
|
"port_range": ["50000:65535"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
filename = os.path.splitext(os.path.basename(input_file))[0]
|
||||||
|
output_file_path = os.path.join(output_json_directory, f"{filename}-subnets.json")
|
||||||
|
|
||||||
|
with open(output_file_path, 'w', encoding='utf-8') as output_file:
|
||||||
|
json.dump(data, output_file, indent=4)
|
||||||
|
|
||||||
|
print(f"JSON file generated: {output_file_path}")
|
||||||
|
|
||||||
|
srs_file_path = os.path.join(compiled_output_directory, f"{filename}-subnets.srs")
|
||||||
|
try:
|
||||||
|
subprocess.run(
|
||||||
|
["sing-box", "rule-set", "compile", output_file_path, "-o", srs_file_path], check=True
|
||||||
|
)
|
||||||
|
print(f"Compiled .srs file: {srs_file_path}")
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
print(f"Compile error {output_file_path}: {e}")
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# Russia inside
|
# Russia inside
|
||||||
Path("Russia").mkdir(parents=True, exist_ok=True)
|
Path("Russia").mkdir(parents=True, exist_ok=True)
|
||||||
|
@ -298,10 +338,13 @@ if __name__ == '__main__':
|
||||||
russia_inside = domains_from_file('Russia/inside-raw.lst')
|
russia_inside = domains_from_file('Russia/inside-raw.lst')
|
||||||
russia_outside = domains_from_file('Russia/outside-raw.lst')
|
russia_outside = domains_from_file('Russia/outside-raw.lst')
|
||||||
ukraine_inside = domains_from_file('Ukraine/inside-raw.lst')
|
ukraine_inside = domains_from_file('Ukraine/inside-raw.lst')
|
||||||
generate_srs(russia_inside, 'russia-inside')
|
generate_srs_domains(russia_inside, 'russia-inside')
|
||||||
generate_srs(russia_outside, 'russia-outside')
|
generate_srs_domains(russia_outside, 'russia-outside')
|
||||||
generate_srs(ukraine_inside, 'ukraine-inside')
|
generate_srs_domains(ukraine_inside, 'ukraine-inside')
|
||||||
|
|
||||||
# Sing-box categories
|
# Sing-box categories
|
||||||
directories = ['Categories', 'Services']
|
directories = ['Categories', 'Services']
|
||||||
generate_srs_for_categories(directories)
|
generate_srs_for_categories(directories)
|
||||||
|
|
||||||
|
# Sing-box subnets
|
||||||
|
generate_srs_subnets(DiscordSubnets)
|
Loading…
Add table
Reference in a new issue