Compare commits

..

5 Commits

Author SHA1 Message Date
itdoginfo
dd4b4d9abd Fix 2025-01-28 00:22:35 +03:00
itdoginfo
b6cd8cc2b9 Update version 2025-01-28 00:19:25 +03:00
itdoginfo
c4df3ca047 Added discrod subnets srs 2025-01-28 00:18:12 +03:00
GitHub Action
5b9c1eabf3 Update lists 2025-01-27 19:24:39 +00:00
itdoginfo
df80200bef Update 2025-01-27 22:24:14 +03:00
9 changed files with 57 additions and 6 deletions

View File

@@ -24,12 +24,13 @@ jobs:
run: | run: |
docker run --rm \ docker run --rm \
-v ${{ github.workspace }}/src:/app/src \ -v ${{ github.workspace }}/src:/app/src \
-v ${{ github.workspace }}/Subnets:/app/Subnets \
-v ${{ github.workspace }}/Russia:/app/Russia \ -v ${{ github.workspace }}/Russia:/app/Russia \
-v ${{ github.workspace }}/Ukraine:/app/Ukraine \ -v ${{ github.workspace }}/Ukraine:/app/Ukraine \
-v ${{ github.workspace }}/Categories:/app/Categories \ -v ${{ github.workspace }}/Categories:/app/Categories \
-v ${{ github.workspace }}/Services:/app/Services \ -v ${{ github.workspace }}/Services:/app/Services \
-v ${{ github.workspace }}/SRS:/app/SRS \ -v ${{ github.workspace }}/SRS:/app/SRS \
itdoginfo/compilesrs:0.1.1 itdoginfo/compilesrs:0.1.2
- name: Check Russia/inside-dnsmasq-ipset - name: Check Russia/inside-dnsmasq-ipset
uses: itdoginfo/dnsmasq-action@0.1 uses: itdoginfo/dnsmasq-action@0.1

View File

@@ -239,4 +239,5 @@ w.atwiki.jp
www3.corsair.com www3.corsair.com
groupon.com groupon.com
qt.io qt.io
strava.com strava.com
watermarkremover.io

View File

@@ -674,6 +674,7 @@ DOMAIN-SUFFIX,vpnlove.me
DOMAIN-SUFFIX,vpnpay.io DOMAIN-SUFFIX,vpnpay.io
DOMAIN-SUFFIX,w.atwiki.jp DOMAIN-SUFFIX,w.atwiki.jp
DOMAIN-SUFFIX,walmart.com DOMAIN-SUFFIX,walmart.com
DOMAIN-SUFFIX,watermarkremover.io
DOMAIN-SUFFIX,webnames.ca DOMAIN-SUFFIX,webnames.ca
DOMAIN-SUFFIX,webtoons.com DOMAIN-SUFFIX,webtoons.com
DOMAIN-SUFFIX,weebly.com DOMAIN-SUFFIX,weebly.com

View File

@@ -674,6 +674,7 @@ ipset=/vpnlove.me/vpn_domains
ipset=/vpnpay.io/vpn_domains ipset=/vpnpay.io/vpn_domains
ipset=/w.atwiki.jp/vpn_domains ipset=/w.atwiki.jp/vpn_domains
ipset=/walmart.com/vpn_domains ipset=/walmart.com/vpn_domains
ipset=/watermarkremover.io/vpn_domains
ipset=/webnames.ca/vpn_domains ipset=/webnames.ca/vpn_domains
ipset=/webtoons.com/vpn_domains ipset=/webtoons.com/vpn_domains
ipset=/weebly.com/vpn_domains ipset=/weebly.com/vpn_domains

View File

@@ -674,6 +674,7 @@ nftset=/vpnlove.me/4#inet#fw4#vpn_domains
nftset=/vpnpay.io/4#inet#fw4#vpn_domains nftset=/vpnpay.io/4#inet#fw4#vpn_domains
nftset=/w.atwiki.jp/4#inet#fw4#vpn_domains nftset=/w.atwiki.jp/4#inet#fw4#vpn_domains
nftset=/walmart.com/4#inet#fw4#vpn_domains nftset=/walmart.com/4#inet#fw4#vpn_domains
nftset=/watermarkremover.io/4#inet#fw4#vpn_domains
nftset=/webnames.ca/4#inet#fw4#vpn_domains nftset=/webnames.ca/4#inet#fw4#vpn_domains
nftset=/webtoons.com/4#inet#fw4#vpn_domains nftset=/webtoons.com/4#inet#fw4#vpn_domains
nftset=/weebly.com/4#inet#fw4#vpn_domains nftset=/weebly.com/4#inet#fw4#vpn_domains

View File

@@ -674,6 +674,7 @@ vpnlove.me
vpnpay.io vpnpay.io
w.atwiki.jp w.atwiki.jp
walmart.com walmart.com
watermarkremover.io
webnames.ca webnames.ca
webtoons.com webtoons.com
weebly.com weebly.com

View File

@@ -674,6 +674,7 @@
/ip dns static add name=vpnpay.io type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost /ip dns static add name=vpnpay.io type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=w.atwiki.jp type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost /ip dns static add name=w.atwiki.jp type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=walmart.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost /ip dns static add name=walmart.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=watermarkremover.io type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=webnames.ca type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost /ip dns static add name=webnames.ca type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=webtoons.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost /ip dns static add name=webtoons.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=weebly.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost /ip dns static add name=weebly.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost

View File

@@ -674,6 +674,7 @@ vpnlove.me
vpnpay.io vpnpay.io
w.atwiki.jp w.atwiki.jp
walmart.com walmart.com
watermarkremover.io
webnames.ca webnames.ca
webtoons.com webtoons.com
weebly.com weebly.com

View File

@@ -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)