diff --git a/Build/build-internal-chn-domains.js b/Build/build-internal-chn-domains.js new file mode 100644 index 00000000..5798362c --- /dev/null +++ b/Build/build-internal-chn-domains.js @@ -0,0 +1,25 @@ +// @ts-check +const { fetchRemoteTextAndCreateReadlineInterface } = require('./lib/fetch-remote-text-by-line'); +const { processLine } = require('./lib/process-line'); +const path = require('path'); +const fse = require('fs-extra'); +const fs = require('fs'); + +(async () => { + /** @type {Set} */ + const result = new Set(); + for await (const line of await fetchRemoteTextAndCreateReadlineInterface('https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf')) { + const l = processLine(line); + if (l) { + result.add( + l.replace('server=/', '').replace('/114.114.114.114', '') + ); + } + } + + await fse.ensureDir(path.resolve(__dirname, '../List/internal')); + await fs.promises.writeFile( + path.resolve(__dirname, '../List/internal/accelerated-china-domains.txt'), + `${Array.from(result).map(line => `SUFFIX,${line}`).join('\n')}\n` + ); +})(); diff --git a/package.json b/package.json index f3195270..e2d91d3f 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "build:chn-cidr": "wireit", "build:internal-cdn-rules": "wireit", "build:internal-reverse-chn-cidr": "wireit", + "build:internal-chn-domains": "wireit", "validate:domainset": "wireit" }, "wireit": { @@ -74,6 +75,9 @@ "build:internal-reverse-chn-cidr": { "command": "node ./Build/build-internal-reverse-chn-cidr.js" }, + "build:internal-chn-domains": { + "command": "node ./Build/build-internal-chn-domains.js" + }, "build:public": { "command": "node ./Build/build-public.js", "dependencies": [ @@ -82,6 +86,7 @@ "build:cdn-conf", "build:internal-cdn-rules", "build:internal-reverse-chn-cidr", + "build:internal-chn-domains", "build:reject-domainset", "build:telegram-cidr" ] @@ -105,6 +110,7 @@ "build:chn-cidr", "build:internal-cdn-rules", "build:internal-reverse-chn-cidr", + "build:internal-chn-domains", "build:public", "validate:domainset" ]