diff --git a/Build/build-speedtest-domainset.ts b/Build/build-speedtest-domainset.ts index eb27631b..2f4a5f67 100644 --- a/Build/build-speedtest-domainset.ts +++ b/Build/build-speedtest-domainset.ts @@ -140,6 +140,9 @@ export const buildSpeedtestDomainSet = task(import.meta.path, async () => { '.speedtest.optitel.com.au', '.speednet.net.tr', '.speedtest.angolacables.co.ao', + // Wi-Fi Man + '.wifiman.com', + '.wifiman.me', // Fast.com '.fast.com', // MacPaw diff --git a/Build/build-sspanel-appprofile.ts b/Build/build-sspanel-appprofile.ts index 801883f7..be63f8e0 100644 --- a/Build/build-sspanel-appprofile.ts +++ b/Build/build-sspanel-appprofile.ts @@ -39,9 +39,11 @@ export const buildSSPanelUIMAppProfile = task(import.meta.path, async () => { globalDomains, globalPlusDomains, telegramDomains, + lanDomains, domesticCidrs, streamCidrs, - { results: rawTelegramCidrs } + { results: rawTelegramCidrs }, + lanCidrs ] = await Promise.all([ // domestic - domains getDomesticDomainsRulesetPromise().then(surgeRulesetToClashClassicalTextRuleset), @@ -58,6 +60,8 @@ export const buildSSPanelUIMAppProfile = task(import.meta.path, async () => { processLineFromReadline(readFileByLine(path.resolve(import.meta.dir, '../Source/non_ip/global.conf'))).then(surgeRulesetToClashClassicalTextRuleset), processLineFromReadline(readFileByLine(path.resolve(import.meta.dir, '../Source/non_ip/global_plus.conf'))).then(surgeRulesetToClashClassicalTextRuleset), processLineFromReadline(readFileByLine(path.resolve(import.meta.dir, '../Source/non_ip/telegram.conf'))).then(surgeRulesetToClashClassicalTextRuleset), + // lan - domains + processLineFromReadline(readFileByLine(path.resolve(import.meta.dir, '../Source/non_ip/lan.conf'))), // domestic - ip cidr getChnCidrPromise().then(cidrs => cidrs.map(cidr => `IP-CIDR,${cidr}`)), AllStreamServices.flatMap((i) => ( @@ -69,7 +73,9 @@ export const buildSSPanelUIMAppProfile = task(import.meta.path, async () => { : [] )), // global - ip cidr - getTelegramCIDRPromise() + getTelegramCIDRPromise(), + // lan - ip cidr + processLineFromReadline(readFileByLine(path.resolve(import.meta.dir, '../Source/ip/lan.conf'))) ] as const); const telegramCidrs = rawTelegramCidrs.map(removeNoResolved); @@ -92,11 +98,13 @@ export const buildSSPanelUIMAppProfile = task(import.meta.path, async () => { ...globalPlusDomains, ...telegramDomains ], + lanDomains, domesticCidrs, streamCidrs, [ ...telegramCidrs - ] + ], + lanCidrs ); await compareAndWriteFile( @@ -116,9 +124,11 @@ function generateAppProfile( microsoftAppleDomains: string[], streamDomains: string[], globalDomains: string[], + lanDomains: string[], directCidrs: string[], streamCidrs: string[], - globalCidrs: string[] + globalCidrs: string[], + lanCidrs: string[] ) { const result: string[] = []; @@ -183,12 +193,16 @@ function generateAppProfile( // global - domains ...globalDomains.map(line => ` '${line},Global',`), // microsoft & apple - ip cidr (nope) + // lan - domains + ...lanDomains.map(line => ` '${line},DIRECT',`), // stream - ip cidr ...streamCidrs.map(line => ` '${line},Stream',`), // global - ip cidr ...globalCidrs.map(line => ` '${line},Global',`), // domestic - ip cidr ...directCidrs.map(line => ` '${line},Domestic',`), + // lan - ip cidr + ...lanCidrs.map(line => ` '${line},DIRECT',`), // match ' \'MATCH,Final Match\',', ' ],', diff --git a/Build/download-previous-build.ts b/Build/download-previous-build.ts index a39d7269..b56a223b 100644 --- a/Build/download-previous-build.ts +++ b/Build/download-previous-build.ts @@ -5,7 +5,7 @@ import { Readable } from 'stream'; import { pipeline } from 'stream/promises'; import { readFileByLine } from './lib/fetch-text-by-line'; import { isCI } from 'ci-info'; -import { task, traceAsync } from './lib/trace-runner'; +import { task } from './lib/trace-runner'; import { defaultRequestInit, fetchWithRetry } from './lib/fetch-retry'; import tarStream from 'tar-stream'; import zlib from 'zlib'; @@ -55,7 +55,12 @@ export const downloadPreviousBuild = task(import.meta.path, async () => { } const extract = tarStream.extract(); - Readable.fromWeb(resp.body as any).pipe(zlib.createGunzip()).pipe(extract); + const gunzip = zlib.createGunzip(); + pipeline( + resp.body as any, + gunzip, + extract + ); const pathPrefix = `ruleset.skk.moe-master${path.sep}`; @@ -75,7 +80,7 @@ export const downloadPreviousBuild = task(import.meta.path, async () => { await fsp.mkdir(path.dirname(targetPath), { recursive: true }); await pipeline( - entry, + entry as any, fs.createWriteStream(targetPath) ); } diff --git a/Source/domainset/cdn.conf b/Source/domainset/cdn.conf index 9410da8c..3ae22959 100644 --- a/Source/domainset/cdn.conf +++ b/Source/domainset/cdn.conf @@ -500,6 +500,7 @@ ghavatars.staticblitz.com nr.staticblitz.com .w-credentialless.staticblitz.com .stackblitz.io +.local.webcontainer.io # >> hCaptcha newassets.hcaptcha.com @@ -587,6 +588,7 @@ www.pngmart.com i.imgflip.com .iili.io .imageban.ru +.cdn-uploads.huggingface.co # imgix custom domain www.datocms-assets.com images.pexels.com