diff --git a/Build/constants/domains.ts b/Build/constants/domains.ts new file mode 100644 index 00000000..3350adfc --- /dev/null +++ b/Build/constants/domains.ts @@ -0,0 +1,130 @@ +export const ICP_TLD = [ + 'ren', + 'wang', + 'citic', + 'top', + 'sohu', + 'xin', + 'com', + 'net', + 'club', + 'xyz', + 'site', + 'shop', + 'info', + 'mobi', + 'red', + 'pro', + 'kim', + 'ltd', + 'group', + 'biz', + 'link', + 'store', + 'tech', + 'fun', + 'online', + 'art', + 'design', + 'love', + 'center', + 'video', + 'social', + 'team', + 'show', + 'cool', + 'zone', + 'world', + 'today', + 'city', + 'chat', + 'company', + 'live', + 'fund', + 'gold', + 'plus', + 'guru', + 'run', + 'pub', + 'email', + 'life', + 'co', + 'baidu', + 'cloud', + 'host', + 'space', + 'press', + 'website', + 'archi', + 'asia', + 'bio', + 'black', + 'blue', + 'green', + 'lotto', + 'organic', + 'pet', + 'pink', + 'poker', + 'promo', + 'ski', + 'vote', + 'voto', + 'icu', + 'fans', + 'unicom', + 'jpmorgan', + 'chase', + 'cc', + 'band', + 'cab', + 'cafe', + 'cash', + 'fan', + 'fyi', + 'games', + 'market', + 'mba', + 'news', + 'media', + 'sale', + 'shopping', + 'studio', + 'tax', + 'technology', + 'vin', + 'baby', + 'college', + 'monster', + 'protection', + 'rent', + 'security', + 'storage', + 'theatre', + 'bond', + 'cyou', + 'uno', + 'school', + 'global', + 'me', + 'pw', + 'hk', + 'tv', + 'saxo', + 'click', + 'auto', + 'autos', + 'beauty', + 'boats', + 'car', + 'cars', + 'hair', + 'homes', + 'makeup', + 'motorcycles', + 'quest', + 'skin', + 'tickets', + 'yachts', + 'kids' +]; diff --git a/Build/validate-global-tld.ts b/Build/validate-global-tld.ts new file mode 100644 index 00000000..ee49a463 --- /dev/null +++ b/Build/validate-global-tld.ts @@ -0,0 +1,45 @@ +import path from 'node:path'; +import { readFileByLine } from './lib/fetch-text-by-line'; +import { HostnameSmolTrie } from './lib/trie'; +import { OUTPUT_SURGE_DIR, SOURCE_DIR } from './constants/dir'; +import { ICP_TLD } from './constants/domains'; +import tldts from 'tldts'; +import { looseTldtsOpt } from './constants/loose-tldts-opt'; + +(async () => { + const trie = new HostnameSmolTrie(); + const extraWhiteTLDs = new Set(); + + for await (const line of readFileByLine(path.join(OUTPUT_SURGE_DIR, 'non_ip', 'domestic.conf'))) { + const [type, domain] = line.split(','); + if (type !== 'DOMAIN' && type !== 'DOMAIN-SUFFIX') { + continue; + } + if (domain === 'this_ruleset_is_made_by_sukkaw.ruleset.skk.moe') { + continue; + } + const tld = tldts.getPublicSuffix(domain, looseTldtsOpt); + if (tld) { + extraWhiteTLDs.add(tld); + } + } + + for await (const line of readFileByLine(path.join(SOURCE_DIR, 'non_ip', 'global.conf'))) { + const [type, domain] = line.split(','); + switch (type) { + case 'DOMAIN': + trie.add(domain); + break; + case 'DOMAIN-SUFFIX': + trie.add(domain, true); + break; + default: + break; + } + } + + ICP_TLD.forEach(tld => trie.whitelist(tld, true)); + extraWhiteTLDs.forEach(tld => trie.whitelist(tld, true)); + + console.log(trie.dump().join('\n')); +})(); diff --git a/Source/non_ip/domestic.conf b/Source/non_ip/domestic.conf index c2df9dcf..477c9b7d 100644 --- a/Source/non_ip/domestic.conf +++ b/Source/non_ip/domestic.conf @@ -529,7 +529,6 @@ DOMAIN-SUFFIX,jiguang.cn DOMAIN-SUFFIX,jb51.net DOMAIN-SUFFIX,jpush.cn DOMAIN-SUFFIX,juejin.cn -DOMAIN-SUFFIX,juejin.im DOMAIN-SUFFIX,kaiyanapp.com DOMAIN-SUFFIX,kdslife.net DOMAIN-SUFFIX,keepcdn.com diff --git a/Source/non_ip/global.conf b/Source/non_ip/global.conf index 474afe14..f2d229a3 100644 --- a/Source/non_ip/global.conf +++ b/Source/non_ip/global.conf @@ -397,13 +397,58 @@ DOMAIN-SUFFIX,fly.dev DOMAIN-SUFFIX,shw.io DOMAIN-SUFFIX,edgeapp.net -# >> TLD +# >> ccTLD +DOMAIN-SUFFIX,ai +DOMAIN-SUFFIX,au +DOMAIN-SUFFIX,be +DOMAIN-SUFFIX,ca +DOMAIN-SUFFIX,ee +DOMAIN-SUFFIX,eu +DOMAIN-SUFFIX,fm +DOMAIN-SUFFIX,fo +DOMAIN-SUFFIX,gl +DOMAIN-SUFFIX,in +DOMAIN-SUFFIX,io +DOMAIN-SUFFIX,is +DOMAIN-SUFFIX,it +DOMAIN-SUFFIX,jp +DOMAIN-SUFFIX,la +DOMAIN-SUFFIX,ly +DOMAIN-SUFFIX,mn +DOMAIN-SUFFIX,ms +DOMAIN-SUFFIX,nz +DOMAIN-SUFFIX,pe +DOMAIN-SUFFIX,ph +DOMAIN-SUFFIX,rs +DOMAIN-SUFFIX,ru +DOMAIN-SUFFIX,sb +DOMAIN-SUFFIX,se +DOMAIN-SUFFIX,sg +DOMAIN-SUFFIX,sh +DOMAIN-SUFFIX,si +DOMAIN-SUFFIX,sk +DOMAIN-SUFFIX,so +DOMAIN-SUFFIX,st +DOMAIN-SUFFIX,su +DOMAIN-SUFFIX,sx +DOMAIN-SUFFIX,to +DOMAIN-SUFFIX,tw +DOMAIN-SUFFIX,uk +DOMAIN-SUFFIX,us +DOMAIN-SUFFIX,ws + +# >> gTLD +DOMAIN-SUFFIX,app +DOMAIN-SUFFIX,blog +DOMAIN-SUFFIX,dev +DOMAIN-SUFFIX,gle +DOMAIN-SUFFIX,goog +DOMAIN-SUFFIX,google DOMAIN-SUFFIX,gov DOMAIN-SUFFIX,mil -DOMAIN-SUFFIX,fm -DOMAIN-SUFFIX,sk -DOMAIN-SUFFIX,sb -DOMAIN-SUFFIX,dev +DOMAIN-SUFFIX,moe +DOMAIN-SUFFIX,rip +DOMAIN-SUFFIX,xxx # >> --------- DOMAIN-SUFFIX,18comic.vip @@ -471,6 +516,7 @@ DOMAIN-SUFFIX,bsky.network DOMAIN-SUFFIX,businessinsider.com DOMAIN-SUFFIX,buyee.jp DOMAIN-SUFFIX,bwh1.net +DOMAIN-SUFFIX,c.mi.com DOMAIN-SUFFIX,cachefly.net DOMAIN-SUFFIX,cal.com DOMAIN-SUFFIX,castbox.fm