From 9931283ef868990ca5ef430ae8850cc0bf88c28d Mon Sep 17 00:00:00 2001 From: SukkaW Date: Mon, 29 Sep 2025 15:37:16 +0800 Subject: [PATCH] Fetch Librespeedtest Server List --- Build/build-speedtest-domainset.ts | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/Build/build-speedtest-domainset.ts b/Build/build-speedtest-domainset.ts index 32cb10bc..a3f16a6d 100644 --- a/Build/build-speedtest-domainset.ts +++ b/Build/build-speedtest-domainset.ts @@ -45,6 +45,30 @@ const getSpeedtestHostsGroupsPromise = $$fetch('https://speedtest-net-servers.cd 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) + .then((data) => data.reduce((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)( async (span) => new DomainsetOutput(span, 'speedtest') .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(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() );