From 373f862c6dbbc18aa3ec12597cd154d032731420 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Sun, 17 Aug 2025 17:35:02 +0800 Subject: [PATCH] Feat: ability to handle inline comment --- Build/build-cdn-download-conf.ts | 2 ++ Build/build-common.ts | 3 ++- Build/lib/fetch-text-by-line.ts | 6 ++++-- Build/lib/process-line.ts | 6 ++++++ Build/lib/run-against-source-file.ts | 3 ++- Build/tools-dedupe-src.ts | 4 +++- Source/domainset/cdn.conf | 8 +++----- 7 files changed, 22 insertions(+), 10 deletions(-) diff --git a/Build/build-cdn-download-conf.ts b/Build/build-cdn-download-conf.ts index eb792ce0..e8b8f9e0 100644 --- a/Build/build-cdn-download-conf.ts +++ b/Build/build-cdn-download-conf.ts @@ -88,6 +88,8 @@ export const buildCdnDownloadConf = task(require.main === module, __filename)(as steamDomainSetPromise ]); + console.log(JSON.stringify(cdnDomainsList, null, 2)); + // Move S3 domains to download domain set, since S3 files may be large appendArrayInPlace(downloadDomainSet, S3OSSDomains); appendArrayInPlace(downloadDomainSet, steamDomainSet); diff --git a/Build/build-common.ts b/Build/build-common.ts index 2cdc7450..ca3af8e6 100644 --- a/Build/build-common.ts +++ b/Build/build-common.ts @@ -63,6 +63,7 @@ function processFile(span: Span, sourcePath: string) { let sgmodulePathname: string | null = null; try { + let l: string | null = ''; for await (const line of readFileByLine(sourcePath)) { if (line.startsWith(MAGIC_COMMAND_SKIP)) { return $skip; @@ -83,7 +84,7 @@ function processFile(span: Span, sourcePath: string) { continue; } - const l = processLine(line); + l = processLine(line); if (l) { lines.push(l); } diff --git a/Build/lib/fetch-text-by-line.ts b/Build/lib/fetch-text-by-line.ts index 9fc22bd0..cd70b571 100644 --- a/Build/lib/fetch-text-by-line.ts +++ b/Build/lib/fetch-text-by-line.ts @@ -45,9 +45,11 @@ export function fetchRemoteTextByLine(url: string, processLine = false): Promise export async function readFileIntoProcessedArray(file: string /* | FileHandle */) { const results = []; + let processed: string | null = ''; for await (const line of readFileByLine(file)) { - if (processLine(line)) { - results.push(line); + processed = processLine(line); + if (processed) { + results.push(processed); } } return results; diff --git a/Build/lib/process-line.ts b/Build/lib/process-line.ts index 92d72920..952d2bcb 100644 --- a/Build/lib/process-line.ts +++ b/Build/lib/process-line.ts @@ -37,6 +37,12 @@ export function processLine(line: string): string | null { */ } + const otherPoundSign = trimmed.indexOf('#'); + + if (otherPoundSign > 0) { + return trimmed.slice(0, otherPoundSign).trimEnd(); + } + return trimmed; } diff --git a/Build/lib/run-against-source-file.ts b/Build/lib/run-against-source-file.ts index 9cb88f8f..4f13ca8a 100644 --- a/Build/lib/run-against-source-file.ts +++ b/Build/lib/run-against-source-file.ts @@ -9,8 +9,9 @@ export default async function runAgainstSourceFile( /** Secret keyword collection, only use for special purpose */ keywordSet?: Set | null ) { + let l: string | null = ''; for await (const line of readFileByLine(filePath)) { - const l = processLine(line); + l = processLine(line); if (!l) { continue; } diff --git a/Build/tools-dedupe-src.ts b/Build/tools-dedupe-src.ts index 0365d372..ef680ee1 100644 --- a/Build/tools-dedupe-src.ts +++ b/Build/tools-dedupe-src.ts @@ -50,8 +50,10 @@ async function dedupeFile(file: string, whitelist: HostnameSmolTrie) { const trie = new HostnameTrie(); + let line: string | null = ''; + for await (const l of readFileByLine(file)) { - const line = processLine(l); + line = processLine(l); if (!line) { if (l.startsWith('# $ skip_dedupe_src')) { diff --git a/Source/domainset/cdn.conf b/Source/domainset/cdn.conf index 1843c143..db79c92f 100644 --- a/Source/domainset/cdn.conf +++ b/Source/domainset/cdn.conf @@ -3217,8 +3217,7 @@ s-cdnstatic.svc.litv.tv jsmodule.svc.litv.tv bulletin.svc.litv.tv static.svc.litv.tv -# Amazon S3 -fino.svc.litv.tv +fino.svc.litv.tv # Amazon S3 player.svc.litv.tv # >> General CDN @@ -4804,9 +4803,6 @@ images.findagrave.com cdn.streamlabs.com sp.streamlabs.com images.blockscan.com -# AWS S3 -cdn.highporn.net -img.highporn.net apim.m3pd.com eomd1.fembeqq.xyz .anyhentai.com @@ -4844,3 +4840,5 @@ cms.worldpokerdeals.com assets.hackmd.io images.mooncloud.top pmecdn.protonweb.com +cdn.highporn.net # AWS S3 +img.highporn.net