mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-21 13:50:29 +08:00
82 lines
4.3 KiB
JavaScript
82 lines
4.3 KiB
JavaScript
'use strict';const fetchRetry=require('./chunks/fetch-retry.D06uBUaW.cjs'),fetchTextByLine=require('./chunks/fetch-text-by-line.YY5b5610.cjs'),require$$3=require('csv-parse/sync'),trie=require('./chunks/trie.Vu1FNyv-.cjs'),require$$0=require('node:path'),parseDnsmasq=require('./chunks/parse-dnsmasq.CiH7YJVY.cjs');require('picocolors'),require('undici'),require('undici-cache-store-better-sqlite3'),require('node:util'),require('node:fs'),require('node:process'),require('node:readline'),require('node:stream/web'),require('foxts/guard'),require('./chunks/misc.BpcQjda1.cjs'),require('node:fs/promises'),require('foxts/noop'),require('foxts/fast-string-array-join'),require('foxts/bitwise'),require('./chunks/normalize-domain.Cfz4j8eP.cjs'),require('tldts'),require('./chunks/loose-tldts-opt.DLUpGXpj.cjs'),require('foxts/is-probably-ip');var validateDomestic$1 = {};var hasRequiredValidateDomestic;
|
|
|
|
function requireValidateDomestic () {
|
|
if (hasRequiredValidateDomestic) return validateDomestic$1;
|
|
hasRequiredValidateDomestic = 1;
|
|
(function (exports) {
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "parseDomesticList", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return parseDomesticList;
|
|
}
|
|
});
|
|
const _fetchtextbyline = /*@__PURE__*/ fetchTextByLine.a();
|
|
const _sync = require$$3;
|
|
const _trie = /*@__PURE__*/ trie.r();
|
|
const _nodepath = /*#__PURE__*/ _interop_require_default(require$$0);
|
|
const _processline = /*@__PURE__*/ fetchTextByLine.r();
|
|
const _dir = /*@__PURE__*/ fetchRetry.a();
|
|
const _parsednsmasq = /*@__PURE__*/ parseDnsmasq.r();
|
|
const _fetchretry = /*@__PURE__*/ fetchRetry.r();
|
|
function _interop_require_default(obj) {
|
|
return obj && obj.__esModule ? obj : {
|
|
default: obj
|
|
};
|
|
}
|
|
async function parseDomesticList() {
|
|
const trie = new _trie.HostnameSmolTrie(await (0, _parsednsmasq.parseFelixDnsmasqFromResp)(await (0, _fetchretry.$$fetch)('https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf')));
|
|
const top5000 = new Set();
|
|
const res = await (await (0, _fetchretry.$$fetch)('https://radar.cloudflare.com/charts/LargerTopDomainsTable/attachment?id=1077&top=10000', {
|
|
headers: {
|
|
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
|
|
'accept-language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6,es;q=0.5',
|
|
'sec-ch-ua': '"Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"macOS"',
|
|
'sec-fetch-dest': 'document',
|
|
'sec-fetch-mode': 'navigate',
|
|
'sec-fetch-site': 'none',
|
|
'sec-fetch-user': '?1',
|
|
'upgrade-insecure-requests': '1'
|
|
}
|
|
})).text();
|
|
const stream = (0, _sync.parse)(res);
|
|
for await (const [domain] of stream){
|
|
if (trie.has(domain)) {
|
|
top5000.add(domain);
|
|
}
|
|
console.log({
|
|
domain
|
|
});
|
|
}
|
|
const notIncludedDomestic = new Set(top5000);
|
|
const runAgainstRuleset = async (ruleset)=>{
|
|
for await (const l of (0, _fetchtextbyline.readFileByLine)(ruleset)){
|
|
const line = (0, _processline.processLine)(l);
|
|
if (!line) continue;
|
|
const [type, domain] = line.split(',');
|
|
if (type === 'DOMAIN-SUFFIX') {
|
|
if (top5000.has(domain)) {
|
|
notIncludedDomestic.delete(domain);
|
|
}
|
|
} else if (type === 'DOMAIN-KEYWORD') {
|
|
for (const d of top5000){
|
|
if (d.includes(domain)) {
|
|
notIncludedDomestic.delete(d);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
// await Promise.all([
|
|
await runAgainstRuleset(_nodepath.default.resolve(_dir.SOURCE_DIR, 'non_ip/domestic.conf'));
|
|
// ]);
|
|
console.log(notIncludedDomestic.size, notIncludedDomestic);
|
|
}
|
|
} (validateDomestic$1));
|
|
return validateDomestic$1;
|
|
}var validateDomesticExports = requireValidateDomestic();
|
|
const validateDomestic = /*@__PURE__*/fetchRetry.g(validateDomesticExports);module.exports=validateDomestic; |