瀏覽代碼

Add internal reverse chnroute build

SukkaW 2 年之前
父節點
當前提交
f57093df6a
共有 4 個文件被更改,包括 64 次插入10 次删除
  1. 0 0
      Build/build-internal-cdn-rules.js
  2. 48 0
      Build/build-internal-reverse-chn-cidr.js
  3. 12 6
      package.json
  4. 4 4
      pnpm-lock.yaml

+ 0 - 0
Build/build-internal-rules.js → Build/build-internal-cdn-rules.js


+ 48 - 0
Build/build-internal-reverse-chn-cidr.js

@@ -0,0 +1,48 @@
+// @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');
+
+const RESERVED_IPV4_CIDR = [
+  '0.0.0.0/8',
+  '10.0.0.0/8',
+  '100.64.0.0/10',
+  '127.0.0.0/8',
+  '169.254.0.0/16',
+  '172.16.0.0/12',
+  '192.0.0.0/24',
+  '192.0.2.0/24',
+  '192.168.0.0/16',
+  '198.18.0.0/15',
+  '198.51.100.0/24',
+  '203.0.113.0/24',
+  '224.0.0.0/4',
+  '233.252.0.0/24',
+  '240.0.0.0/4'
+];
+
+(async () => {
+  const { exclude } = await import('cidr-tools-wasm');
+
+  /** @type {Set<string>} */
+  const cidr = new Set();
+  for await (const line of await fetchRemoteTextAndCreateReadlineInterface('https://raw.githubusercontent.com/misakaio/chnroutes2/master/chnroutes.txt')) {
+    const l = processLine(line);
+    if (l) {
+      cidr.add(l);
+    }
+  }
+
+  const reversedCidr = exclude(
+    ['0.0.0.0/0'],
+    RESERVED_IPV4_CIDR.concat(Array.from(cidr))
+  );
+
+  await fse.ensureDir(path.resolve(__dirname, '../List/internal'));
+  await fs.promises.writeFile(
+    path.resolve(__dirname, '../List/internal/cdn.txt'),
+    `${reversedCidr.join('\n')}\n`
+  );
+})();

+ 12 - 6
package.json

@@ -14,7 +14,8 @@
     "build:phishing-domainset": "wireit",
     "build:telegram-cidr": "wireit",
     "build:chn-cidr": "wireit",
-    "build:internal-rules": "wireit",
+    "build:internal-cdn-rules": "wireit",
+    "build:internal-reverse-chn-cidr": "wireit",
     "validate:domainset": "wireit"
   },
   "wireit": {
@@ -64,19 +65,23 @@
         "download-previous-build"
       ]
     },
-    "build:internal-rules": {
-      "command": "node ./Build/build-internal-rules.js",
+    "build:internal-cdn-rules": {
+      "command": "node ./Build/build-internal-cdn-rules.js",
       "dependencies": [
         "build:cdn-conf"
       ]
     },
+    "build:internal-reverse-chn-cidr": {
+      "command": "node ./Build/build-internal-reverse-chn-cidr.js"
+    },
     "build:public": {
       "command": "node ./Build/build-public.js",
       "dependencies": [
         "build:anti-bogus-domain",
         "build:apple-cdn",
         "build:cdn-conf",
-        "build:internal-rules",
+        "build:internal-cdn-rules",
+        "build:internal-reverse-chn-cidr",
         "build:reject-domainset",
         "build:telegram-cidr"
       ]
@@ -98,7 +103,8 @@
         "build:reject-domainset",
         "build:telegram-cidr",
         "build:chn-cidr",
-        "build:internal-rules",
+        "build:internal-cdn-rules",
+        "build:internal-reverse-chn-cidr",
         "build:public",
         "validate:domainset"
       ]
@@ -115,7 +121,7 @@
     "@sukka/listdir": "^0.2.0",
     "@vercel/fetch-retry": "^5.1.3",
     "ci-info": "^3.8.0",
-    "cidr-tools-wasm": "^0.0.7",
+    "cidr-tools-wasm": "^0.0.10",
     "fs-extra": "^11.1.1",
     "picocolors": "^1.0.0",
     "piscina": "^4.0.0",

+ 4 - 4
pnpm-lock.yaml

@@ -23,8 +23,8 @@ dependencies:
     specifier: ^3.8.0
     version: 3.8.0
   cidr-tools-wasm:
-    specifier: ^0.0.7
-    version: 0.0.7
+    specifier: ^0.0.10
+    version: 0.0.10
   fs-extra:
     specifier: ^11.1.1
     version: 11.1.1
@@ -444,8 +444,8 @@ packages:
     engines: {node: '>=8'}
     dev: false
 
-  /cidr-tools-wasm@0.0.7:
-    resolution: {integrity: sha512-3pxBac4rB6Aoj/CkS0DfQlnNskH1Dq7YNtcxkPjiroLFVJ3TQT680VZ5HRrmigVlwK8ntS3ZNQMQDsI3q7JQ4A==}
+  /cidr-tools-wasm@0.0.10:
+    resolution: {integrity: sha512-P1l8AWtMe7WA01RLao9fTYAtuIwAZJaunuXJ7iFlJ3k/L1oEBsWi82ZzBW3mYwhMiFWZ8CTqv0aWRKKFxUsMJQ==}
     dev: false
 
   /cliui@7.0.4: