瀏覽代碼

Update CDN Hosts

SukkaW 3 年之前
父節點
當前提交
16bbc886d1
共有 4 個文件被更改,包括 50 次插入26 次删除
  1. 39 25
      Build/download-previous-build.js
  2. 4 0
      List/domainset/cdn.conf
  3. 3 0
      List/domainset/download.conf
  4. 4 1
      package.json

+ 39 - 25
Build/download-previous-build.js

@@ -8,6 +8,12 @@ const { Stream, Readable } = require('stream');
 const { promisify } = require('util');
 const pipeline = promisify(Stream.pipeline);
 
+const fileExists = (path) => {
+  return fs.promises.access(path, fs.constants.F_OK)
+    .then(() => true)
+    .catch(() => false);
+};
+
 (async () => {
   const filesList = (
     await fs.promises.readFile(resolve(__dirname, '../.gitignore'), { encoding: 'utf-8' })
@@ -15,32 +21,40 @@ const pipeline = promisify(Stream.pipeline);
     .split('\n')
     .filter(p => p.startsWith('List/'));
 
-  const tempFile = join(tmpdir(), `sukka-surge-last-build-tar-${Date.now()}`);
-  const resp = await fetch('https://codeload.github.com/sukkaw/surge/tar.gz/gh-pages');
-  const readableNodeStream = Readable.fromWeb(resp.body);
-  await pipeline(
-    readableNodeStream,
-    fs.createWriteStream(tempFile)
-  );
+  if (
+    (await Promise.all(
+      filesList.map(p => fileExists(join(__dirname, '..', p)))
+    )).some(exist => !exist)
+  ) {
+    const tempFile = join(tmpdir(), `sukka-surge-last-build-tar-${Date.now()}`);
+    const resp = await fetch('https://codeload.github.com/sukkaw/surge/tar.gz/gh-pages');
+    const readableNodeStream = Readable.fromWeb(resp.body);
+    await pipeline(
+      readableNodeStream,
+      fs.createWriteStream(tempFile)
+    );
 
-  const extractedPath = join(tmpdir(), `sukka-surge-last-build-extracted-${Date.now()}`);
-  await fse.ensureDir(extractedPath);
-  await tar.x({
-    file: tempFile,
-    cwd: extractedPath,
-    filter: (p) => {
-      return p.split('/')[1] === 'List'
-    }
-  });
+    const extractedPath = join(tmpdir(), `sukka-surge-last-build-extracted-${Date.now()}`);
+    await fse.ensureDir(extractedPath);
+    await tar.x({
+      file: tempFile,
+      cwd: extractedPath,
+      filter: (p) => {
+        return p.split('/')[1] === 'List'
+      }
+    });
 
-  await Promise.all(filesList.map(p => fse.copy(
-    join(extractedPath, 'Surge-gh-pages', p),
-    join(__dirname, '..', p),
-    {
-      overwrite: true
-    }
-  )))
+    await Promise.all(filesList.map(p => fse.copy(
+      join(extractedPath, 'Surge-gh-pages', p),
+      join(__dirname, '..', p),
+      {
+        overwrite: true
+      }
+    )))
 
-  await fs.promises.unlink(tempFile).catch(() => {});
-  await fs.promises.unlink(extractedPath).catch(() => {});
+    await fs.promises.unlink(tempFile).catch(() => { });
+    await fs.promises.unlink(extractedPath).catch(() => { });
+  } else {
+    console.log('All files exists, skip download.');
+  }
 })();

+ 4 - 0
List/domainset/cdn.conf

@@ -878,6 +878,10 @@ static-cdn.mastodon.social
 .wsimg.com
 # SurveyMonkey
 .smassets.net
+# Envato
+.envato-static.com
+.envatousercontent.com
+s3.envato.com
 # Others
 .yelpcdn.com
 cf-images.us-east-1.prod.boltdns.net

+ 3 - 0
List/domainset/download.conf

@@ -2,6 +2,9 @@
 .nitro.download
 .download.mokeedev.com
 
+get.pixelexperience.org
+download.pixelexperience.org
+
 # >> MEGA
 
 .mega.nz

+ 4 - 1
package.json

@@ -52,7 +52,10 @@
       ]
     },
     "build:telegram-cidr": {
-      "command": "node ./Build/build-telegram-cidr.js"
+      "command": "node ./Build/build-telegram-cidr.js",
+      "dependencies": [
+        "download-previous-build"
+      ]
     },
     "build:chn-cidr": {
       "command": "node ./Build/build-chn-cidr.js",