Compare commits

...

7 Commits

Author SHA1 Message Date
GitHub Action
f10a2826ec Update lists 2025-01-29 15:55:57 +00:00
itdoginfo
4876681ec9 Update 2025-01-29 18:55:30 +03:00
GitHub Action
3fda44d6f3 Update subnet 2025-01-29 15:38:24 +00:00
itdoginfo
e1b3fcbbd5 Remove capital letter of subnet. Leave the old value the same for now 2025-01-29 18:37:20 +03:00
GitHub Action
3d44dabac5 Update lists 2025-01-28 14:07:09 +00:00
itdoginfo
89dcc32a69 Update 2025-01-28 17:06:37 +03:00
itdoginfo
e243c5e671 Added srs for subnets 2025-01-28 17:00:32 +03:00
17 changed files with 152 additions and 39 deletions

View File

@@ -2,7 +2,7 @@ name: Create lists
on:
push:
branches: [ "main", "srs" ]
branches: [ "main" ]
paths:
- .github/workflows/create-lists.yml
- Categories/**
@@ -10,7 +10,7 @@ on:
- src/**
- convert.py
schedule:
- cron: '29 */8 * * *'
- cron: '29 8 * * 1'
permissions:
contents: write
@@ -30,7 +30,7 @@ jobs:
-v ${{ github.workspace }}/Categories:/app/Categories \
-v ${{ github.workspace }}/Services:/app/Services \
-v ${{ github.workspace }}/SRS:/app/SRS \
itdoginfo/compilesrs:0.1.2
itdoginfo/compilesrs:0.1.4
- name: Check Russia/inside-dnsmasq-ipset
uses: itdoginfo/dnsmasq-action@0.1

View File

@@ -24,6 +24,7 @@ kinozal.guru
cnd2exp.online
torrentgalaxy.to
rutor.org
rutor.info
cdnbunny.org
rutracker.org
rutracker.net
@@ -34,6 +35,21 @@ riperam.org
megapeer.vip
piratbit.top
vpnlove.me
redshieldvpn.com
psiphon.ca
vpngate.net
mullvad.net
censortracker.org
prostovpn.org
vpngen.org
amnezia.org
cyberghostvpn.com
getoutline.org
vpnpay.io
protonvpn.com
surfshark.com
pages.dev
remove.bg
unscreen.com
@@ -181,6 +197,7 @@ lucid.app
hdkinoteatr.com
steamstat.info
statology.org
lostfilm.tv
lostfilmtv2.site
static.lostfilm.top
filmix.fm
@@ -197,17 +214,4 @@ ionos.com
digitalocean.com
godaddy.com
hetzner.com
vpnlove.me
redshieldvpn.com
psiphon.ca
vpngate.net
mullvad.net
censortracker.org
prostovpn.org
vpngen.org
amnezia.org
cyberghostvpn.com
getoutline.org
vpnpay.io
protonvpn.com
surfshark.com
tidal.com

View File

@@ -246,4 +246,5 @@ www3.corsair.com
groupon.com
qt.io
strava.com
watermarkremover.io
watermarkremover.io
cdromance.org

View File

@@ -87,6 +87,7 @@ DOMAIN-SUFFIX,cbilling.vip
DOMAIN-SUFFIX,cdn.web-platform.io
DOMAIN-SUFFIX,cdnbunny.org
DOMAIN-SUFFIX,cdninstagram.com
DOMAIN-SUFFIX,cdromance.org
DOMAIN-SUFFIX,cdw.com
DOMAIN-SUFFIX,censortracker.org
DOMAIN-SUFFIX,chaos.com
@@ -342,6 +343,7 @@ DOMAIN-SUFFIX,liveuamap.com
DOMAIN-SUFFIX,locals.md
DOMAIN-SUFFIX,lolz.guru
DOMAIN-SUFFIX,lookerstudio.google.com
DOMAIN-SUFFIX,lostfilm.tv
DOMAIN-SUFFIX,lostfilmtv2.site
DOMAIN-SUFFIX,lucid.app
DOMAIN-SUFFIX,mail-api.proton.me
@@ -513,6 +515,7 @@ DOMAIN-SUFFIX,rublacklist.net
DOMAIN-SUFFIX,rule34.art
DOMAIN-SUFFIX,rus.delfi.ee
DOMAIN-SUFFIX,rus.jauns.lv
DOMAIN-SUFFIX,rutor.info
DOMAIN-SUFFIX,rutor.org
DOMAIN-SUFFIX,rutracker.net
DOMAIN-SUFFIX,rutracker.org
@@ -610,6 +613,7 @@ DOMAIN-SUFFIX,thetruestory.news
DOMAIN-SUFFIX,threads.net
DOMAIN-SUFFIX,threema.ch
DOMAIN-SUFFIX,ti.com
DOMAIN-SUFFIX,tidal.com
DOMAIN-SUFFIX,tik-tokapi.com
DOMAIN-SUFFIX,tiktok.com
DOMAIN-SUFFIX,tiktokcdn-eu.com

View File

@@ -87,6 +87,7 @@ ipset=/cbilling.vip/vpn_domains
ipset=/cdn.web-platform.io/vpn_domains
ipset=/cdnbunny.org/vpn_domains
ipset=/cdninstagram.com/vpn_domains
ipset=/cdromance.org/vpn_domains
ipset=/cdw.com/vpn_domains
ipset=/censortracker.org/vpn_domains
ipset=/chaos.com/vpn_domains
@@ -342,6 +343,7 @@ ipset=/liveuamap.com/vpn_domains
ipset=/locals.md/vpn_domains
ipset=/lolz.guru/vpn_domains
ipset=/lookerstudio.google.com/vpn_domains
ipset=/lostfilm.tv/vpn_domains
ipset=/lostfilmtv2.site/vpn_domains
ipset=/lucid.app/vpn_domains
ipset=/mail-api.proton.me/vpn_domains
@@ -513,6 +515,7 @@ ipset=/rublacklist.net/vpn_domains
ipset=/rule34.art/vpn_domains
ipset=/rus.delfi.ee/vpn_domains
ipset=/rus.jauns.lv/vpn_domains
ipset=/rutor.info/vpn_domains
ipset=/rutor.org/vpn_domains
ipset=/rutracker.net/vpn_domains
ipset=/rutracker.org/vpn_domains
@@ -610,6 +613,7 @@ ipset=/thetruestory.news/vpn_domains
ipset=/threads.net/vpn_domains
ipset=/threema.ch/vpn_domains
ipset=/ti.com/vpn_domains
ipset=/tidal.com/vpn_domains
ipset=/tik-tokapi.com/vpn_domains
ipset=/tiktok.com/vpn_domains
ipset=/tiktokcdn-eu.com/vpn_domains

View File

@@ -87,6 +87,7 @@ nftset=/cbilling.vip/4#inet#fw4#vpn_domains
nftset=/cdn.web-platform.io/4#inet#fw4#vpn_domains
nftset=/cdnbunny.org/4#inet#fw4#vpn_domains
nftset=/cdninstagram.com/4#inet#fw4#vpn_domains
nftset=/cdromance.org/4#inet#fw4#vpn_domains
nftset=/cdw.com/4#inet#fw4#vpn_domains
nftset=/censortracker.org/4#inet#fw4#vpn_domains
nftset=/chaos.com/4#inet#fw4#vpn_domains
@@ -342,6 +343,7 @@ nftset=/liveuamap.com/4#inet#fw4#vpn_domains
nftset=/locals.md/4#inet#fw4#vpn_domains
nftset=/lolz.guru/4#inet#fw4#vpn_domains
nftset=/lookerstudio.google.com/4#inet#fw4#vpn_domains
nftset=/lostfilm.tv/4#inet#fw4#vpn_domains
nftset=/lostfilmtv2.site/4#inet#fw4#vpn_domains
nftset=/lucid.app/4#inet#fw4#vpn_domains
nftset=/mail-api.proton.me/4#inet#fw4#vpn_domains
@@ -513,6 +515,7 @@ nftset=/rublacklist.net/4#inet#fw4#vpn_domains
nftset=/rule34.art/4#inet#fw4#vpn_domains
nftset=/rus.delfi.ee/4#inet#fw4#vpn_domains
nftset=/rus.jauns.lv/4#inet#fw4#vpn_domains
nftset=/rutor.info/4#inet#fw4#vpn_domains
nftset=/rutor.org/4#inet#fw4#vpn_domains
nftset=/rutracker.net/4#inet#fw4#vpn_domains
nftset=/rutracker.org/4#inet#fw4#vpn_domains
@@ -610,6 +613,7 @@ nftset=/thetruestory.news/4#inet#fw4#vpn_domains
nftset=/threads.net/4#inet#fw4#vpn_domains
nftset=/threema.ch/4#inet#fw4#vpn_domains
nftset=/ti.com/4#inet#fw4#vpn_domains
nftset=/tidal.com/4#inet#fw4#vpn_domains
nftset=/tik-tokapi.com/4#inet#fw4#vpn_domains
nftset=/tiktok.com/4#inet#fw4#vpn_domains
nftset=/tiktokcdn-eu.com/4#inet#fw4#vpn_domains

View File

@@ -86,6 +86,7 @@ cbilling.vip
cdn.web-platform.io
cdnbunny.org
cdninstagram.com
cdromance.org
cdw.com
censortracker.org
chaos.com
@@ -341,6 +342,7 @@ liveuamap.com
locals.md
lolz.guru
lookerstudio.google.com
lostfilm.tv
lostfilmtv2.site
lucid.app
mail-api.proton.me
@@ -512,6 +514,7 @@ rublacklist.net
rule34.art
rus.delfi.ee
rus.jauns.lv
rutor.info
rutor.org
rutracker.net
rutracker.org
@@ -609,6 +612,7 @@ thetruestory.news
threads.net
threema.ch
ti.com
tidal.com
tik-tokapi.com
tiktok.com
tiktokcdn-eu.com

View File

@@ -87,6 +87,7 @@
/ip dns static add name=cdn.web-platform.io type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=cdnbunny.org type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=cdninstagram.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=cdromance.org type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=cdw.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=censortracker.org type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=chaos.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
@@ -342,6 +343,7 @@
/ip dns static add name=locals.md type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=lolz.guru type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=lookerstudio.google.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=lostfilm.tv type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=lostfilmtv2.site type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=lucid.app type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=mail-api.proton.me type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
@@ -513,6 +515,7 @@
/ip dns static add name=rule34.art type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=rus.delfi.ee type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=rus.jauns.lv type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=rutor.info type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=rutor.org type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=rutracker.net type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=rutracker.org type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
@@ -610,6 +613,7 @@
/ip dns static add name=threads.net type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=threema.ch type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=ti.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=tidal.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=tik-tokapi.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=tiktok.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost
/ip dns static add name=tiktokcdn-eu.com type=FWD address-list=allow-domains match-subdomain=yes forward-to=localhost

View File

@@ -87,6 +87,7 @@ cbilling.vip
cdn.web-platform.io
cdnbunny.org
cdninstagram.com
cdromance.org
cdw.com
censortracker.org
chaos.com
@@ -342,6 +343,7 @@ liveuamap.com
locals.md
lolz.guru
lookerstudio.google.com
lostfilm.tv
lostfilmtv2.site
lucid.app
mail-api.proton.me
@@ -513,6 +515,7 @@ rublacklist.net
rule34.art
rus.delfi.ee
rus.jauns.lv
rutor.info
rutor.org
rutracker.net
rutracker.org
@@ -610,6 +613,7 @@ thetruestory.news
threads.net
threema.ch
ti.com
tidal.com
tik-tokapi.com
tiktok.com
tiktokcdn-eu.com

9
Subnets/IPv4/discord.lst Normal file
View File

@@ -0,0 +1,9 @@
138.128.136.0/21
162.158.0.0/15
172.64.0.0/13
34.0.0.0/15
34.2.0.0/15
35.192.0.0/12
35.208.0.0/12
5.200.14.128/25
66.22.192.0/18

26
Subnets/IPv4/meta.lst Normal file
View File

@@ -0,0 +1,26 @@
31.13.24.0/21
31.13.64.0/18
45.64.40.0/22
57.141.0.0/24
57.141.3.0/24
57.141.5.0/24
57.141.7.0/24
57.141.8.0/24
57.141.10.0/24
57.141.13.0/24
57.144.0.0/14
66.220.144.0/20
69.63.176.0/20
69.171.224.0/19
74.119.76.0/22
102.132.96.0/20
103.4.96.0/22
129.134.0.0/17
157.240.0.0/17
157.240.192.0/18
163.70.128.0/17
173.252.64.0/18
179.60.192.0/22
185.60.216.0/22
185.89.216.0/22
204.15.20.0/22

13
Subnets/IPv4/twitter.lst Normal file
View File

@@ -0,0 +1,13 @@
64.63.0.0/18
69.195.160.0/19
103.252.112.0/22
104.244.40.0/23
104.244.42.0/24
104.244.44.0/22
188.64.224.0/21
192.133.76.0/22
199.16.156.0/22
199.59.148.0/22
199.96.56.0/23
202.160.128.0/22
209.237.192.0/19

1
Subnets/IPv6/discord.lst Normal file
View File

@@ -0,0 +1 @@
2606:4700::/32

2
Subnets/IPv6/meta.lst Normal file
View File

@@ -0,0 +1,2 @@
2620:0:1c00::/40
2a03:2880::/32

3
Subnets/IPv6/twitter.lst Normal file
View File

@@ -0,0 +1,3 @@
2400:6680:f000::/36
2606:1f80:f000::/36
2a04:9d40:f000::/36

View File

@@ -16,7 +16,9 @@ rusDomainsOutsideSrc='src/Russia-domains-outside.lst'
rusDomainsOutsideOut='Russia/outside'
uaDomainsSrc='src/Ukraine-domains-inside.lst'
uaDomainsOut='Ukraine/inside'
DiscordSubnets = 'Subnets/IPv4/Discord.lst'
DiscordSubnets = 'Subnets/IPv4/discord.lst'
MetaSubnets = 'Subnets/IPv4/meta.lst'
TwitterSubnets = 'Subnets/IPv4/twitter.lst'
def raw(src, out):
domains = set()
@@ -265,26 +267,37 @@ def generate_srs_subnets(input_file, output_json_directory='JSON', compiled_outp
if subnet:
subnets.append(subnet)
data = {
"version": 2,
"rules": [
{
"network": ["udp"],
"ip_cidr": subnets,
"port_range": ["50000:65535"]
}
]
}
if input_file == "Subnets/IPv4/discord.lst":
data = {
"version": 2,
"rules": [
{
"network": ["udp"],
"ip_cidr": subnets,
"port_range": ["50000:65535"]
}
]
}
else:
data = {
"version": 2,
"rules": [
{
"ip_cidr": subnets
}
]
}
filename = os.path.splitext(os.path.basename(input_file))[0]
output_file_path = os.path.join(output_json_directory, f"{filename}-subnets.json")
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")
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
@@ -338,13 +351,15 @@ if __name__ == '__main__':
russia_inside = domains_from_file('Russia/inside-raw.lst')
russia_outside = domains_from_file('Russia/outside-raw.lst')
ukraine_inside = domains_from_file('Ukraine/inside-raw.lst')
generate_srs_domains(russia_inside, 'russia-inside')
generate_srs_domains(russia_outside, 'russia-outside')
generate_srs_domains(ukraine_inside, 'ukraine-inside')
generate_srs_domains(russia_inside, 'russia_inside')
generate_srs_domains(russia_outside, 'russia_outside')
generate_srs_domains(ukraine_inside, 'ukraine_inside')
# Sing-box categories
directories = ['Categories', 'Services']
generate_srs_for_categories(directories)
# Sing-box subnets
generate_srs_subnets(DiscordSubnets)
generate_srs_subnets(DiscordSubnets)
generate_srs_subnets(TwitterSubnets)
generate_srs_subnets(MetaSubnets)

View File

@@ -2,6 +2,8 @@
import ipaddress
import urllib.request
import os
import shutil
BGP_TOOLS_URL = 'https://bgp.tools/table.txt'
USER_AGENT = 'itdog.info - hi@itdog.info'
@@ -11,14 +13,14 @@ IPv6_DIR = 'Subnets/IPv6'
AS_META = '32934'
AS_TWITTER = '13414'
META = 'Meta.lst'
TWITTER = 'Twitter.lst'
META = 'meta.lst'
TWITTER = 'twitter.lst'
# From https://iplist.opencck.org/
DISCORD_VOICE_V4='https://iplist.opencck.org/?format=text&data=cidr4&site=discord.gg&site=discord.media'
DISCORD_VOICE_V6='https://iplist.opencck.org/?format=text&data=cidr6&site=discord.gg&site=discord.media'
DISCORD = 'Discord.lst'
DISCORD = 'discord.lst'
subnet_list = []
@@ -80,6 +82,11 @@ def write_subnets_to_file(subnets, filename):
for subnet in subnets:
file.write(f'{subnet}\n')
def copy_file_legacy(src_filename):
base_filename = os.path.basename(src_filename)
new_filename = base_filename.capitalize()
shutil.copy(src_filename, os.path.join(os.path.dirname(src_filename), new_filename))
if __name__ == '__main__':
request = urllib.request.Request(BGP_TOOLS_URL, headers={'User-Agent': USER_AGENT})
@@ -102,4 +109,12 @@ if __name__ == '__main__':
# Discord voice
ipv4_discord, ipv6_discord = download_ready_subnets(DISCORD_VOICE_V4, DISCORD_VOICE_V6)
write_subnets_to_file(ipv4_discord, f'{IPv4_DIR}/{DISCORD}')
write_subnets_to_file(ipv6_discord, f'{IPv6_DIR}/{DISCORD}')
write_subnets_to_file(ipv6_discord, f'{IPv6_DIR}/{DISCORD}')
# Legacy name
copy_file_legacy(f'{IPv4_DIR}/{META}')
copy_file_legacy(f'{IPv6_DIR}/{META}')
copy_file_legacy(f'{IPv4_DIR}/{TWITTER}')
copy_file_legacy(f'{IPv6_DIR}/{TWITTER}')
copy_file_legacy(f'{IPv4_DIR}/{DISCORD}')
copy_file_legacy(f'{IPv6_DIR}/{DISCORD}')