浏览代码

Fetch Librespeedtest Server List

SukkaW 6 月之前
父节点
当前提交
9931283ef8
共有 1 个文件被更改,包括 26 次插入1 次删除
  1. 26 1
      Build/build-speedtest-domainset.ts

+ 26 - 1
Build/build-speedtest-domainset.ts

@@ -45,6 +45,30 @@ const getSpeedtestHostsGroupsPromise = $$fetch('https://speedtest-net-servers.cd
     return prev;
     return prev;
   }, []));
   }, []));
 
 
+interface LibreSpeedServerInfo {
+  name: string,
+  dlURL: string,
+  ulURL: string,
+  pingURL: string,
+  getIpURL: string,
+  server: string,
+  sponsorName: string
+}
+
+const getLibrespeedBackendsPromise = $$fetch('https://speedtest-net-servers.cdn.skk.moe/librespeed-servers.json')
+  .then(res => res.json() as Promise<LibreSpeedServerInfo[]>)
+  .then((data) => data.reduce<string[]>((prev, cur) => {
+    let hn: string | null | undefined = null;
+    if (cur.server) {
+      hn = fastUri.parse(cur.server).host;
+      if (hn) {
+        prev.push(hn);
+      }
+    }
+
+    return prev;
+  }, []));
+
 export const buildSpeedtestDomainSet = task(require.main === module, __filename)(
 export const buildSpeedtestDomainSet = task(require.main === module, __filename)(
   async (span) => new DomainsetOutput(span, 'speedtest')
   async (span) => new DomainsetOutput(span, 'speedtest')
     .withTitle('Sukka\'s Ruleset - Speedtest Domains')
     .withTitle('Sukka\'s Ruleset - Speedtest Domains')
@@ -55,6 +79,7 @@ export const buildSpeedtestDomainSet = task(require.main === module, __filename)
     )
     )
     .addFromDomainset(readFileIntoProcessedArray(path.resolve(SOURCE_DIR, 'domainset/speedtest.conf')))
     .addFromDomainset(readFileIntoProcessedArray(path.resolve(SOURCE_DIR, 'domainset/speedtest.conf')))
     .addFromDomainset(readFileIntoProcessedArray(path.resolve(OUTPUT_SURGE_DIR, 'domainset/speedtest.conf')))
     .addFromDomainset(readFileIntoProcessedArray(path.resolve(OUTPUT_SURGE_DIR, 'domainset/speedtest.conf')))
-    .bulkAddDomain(await span.traceChildPromise('get speedtest hosts groups', getSpeedtestHostsGroupsPromise))
+    .bulkAddDomain(await span.traceChildPromise('get speedtest.test servers', getSpeedtestHostsGroupsPromise))
+    .bulkAddDomain(await span.traceChildPromise('get librespeed backends', getLibrespeedBackendsPromise))
     .write()
     .write()
 );
 );