Fetch Librespeedtest Server List
Some checks failed
Build / Build (push) Has been cancelled
Build / Diff output (push) Has been cancelled
Build / Deploy to Cloudflare Pages (3.114.12) (push) Has been cancelled
Build / Deploy to GitHub and GitLab (push) Has been cancelled

This commit is contained in:
SukkaW 2025-09-29 15:37:16 +08:00
parent d9b114f534
commit 9931283ef8

View File

@ -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<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)(
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()
);