From 9a6411103480193e60a78f0f2cca1d03d13e79b0 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Tue, 20 May 2025 21:55:53 +0800 Subject: [PATCH 1/6] Chore: increate fs write worker threshold --- Build/lib/create-file.worker.ts | 2 +- Build/lib/writing-strategy/base.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Build/lib/create-file.worker.ts b/Build/lib/create-file.worker.ts index 6dc21476..705675f8 100644 --- a/Build/lib/create-file.worker.ts +++ b/Build/lib/create-file.worker.ts @@ -49,7 +49,7 @@ const pool = new Worktank({ }); export function compareAndWriteFileInWorker(span: Span, linesA: string[], filePath: string) { - return span.traceChildAsync(`compare and write ${filePath}`, () => pool.exec('compareAndWriteFile', [linesA, filePath, import.meta.url])); + return span.traceChildAsync(`compare and write (worker) ${filePath}`, () => pool.exec('compareAndWriteFile', [linesA, filePath, import.meta.url])); } process.on('beforeExit', () => pool.terminate()); diff --git a/Build/lib/writing-strategy/base.ts b/Build/lib/writing-strategy/base.ts index d1639365..e27c83ca 100644 --- a/Build/lib/writing-strategy/base.ts +++ b/Build/lib/writing-strategy/base.ts @@ -79,7 +79,7 @@ export abstract class BaseWriteStrategy { return; } - if (this.result.length > 1000) { + if (this.result.length > 2000) { return compareAndWriteFileInWorker( span, this.withPadding( From ec28e98c7954b8a7d4bd05e79a9143ac9fea844c Mon Sep 17 00:00:00 2001 From: Nomad Chen Date: Wed, 21 May 2025 00:32:34 +0800 Subject: [PATCH 2/6] Update direct.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Internet Assigned Numbers Authority (IANA) has made a provisional determination that “.INTERNAL” should be reserved for private-use and internal network applications. - [proposed-top-level-domain-string-for-private-use-24-01-2024](https://www.icann.org/en/public-comment/proceeding/proposed-top-level-domain-string-for-private-use-24-01-2024) --- Source/non_ip/direct.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/non_ip/direct.ts b/Source/non_ip/direct.ts index 025a6209..4b0b323d 100644 --- a/Source/non_ip/direct.ts +++ b/Source/non_ip/direct.ts @@ -144,6 +144,7 @@ export const LAN = { domains: [ '+lan', '+local', + '+internal', // 'amplifi.lan', // '$localhost', '+localdomain', From 300d6c740963c9f52a6bd6387b11cb26d5f6f939 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Tue, 20 May 2025 21:55:53 +0800 Subject: [PATCH 3/6] Chore: increate fs write worker threshold --- Build/lib/create-file.worker.ts | 9 ++++++++- Build/lib/writing-strategy/base.ts | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Build/lib/create-file.worker.ts b/Build/lib/create-file.worker.ts index 705675f8..1da64328 100644 --- a/Build/lib/create-file.worker.ts +++ b/Build/lib/create-file.worker.ts @@ -5,7 +5,14 @@ import type { Span } from '../trace'; const pool = new Worktank({ name: 'process-phishing-domains', - size: Math.max(2, Math.max(1, ('availableParallelism' in os ? os.availableParallelism() : (os as typeof import('node:os')).cpus().length) - 1)), + size: Math.max( + 1, + ( + 'availableParallelism' in os + ? os.availableParallelism() + : (os as typeof import('node:os')).cpus().length + ) - 1 + ), timeout: 10000, // The maximum number of milliseconds to wait for the result from the worker, if exceeded the worker is terminated and the execution promise rejects warmup: true, autoterminate: 30000, // The interval of milliseconds at which to check if the pool can be automatically terminated, to free up resources, workers will be spawned up again if needed diff --git a/Build/lib/writing-strategy/base.ts b/Build/lib/writing-strategy/base.ts index e27c83ca..98a67f21 100644 --- a/Build/lib/writing-strategy/base.ts +++ b/Build/lib/writing-strategy/base.ts @@ -79,7 +79,7 @@ export abstract class BaseWriteStrategy { return; } - if (this.result.length > 2000) { + if (this.result.length > 3000) { return compareAndWriteFileInWorker( span, this.withPadding( From e87117ef89515de21f34c136cafc0835b1a6fa01 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Tue, 20 May 2025 23:26:13 +0800 Subject: [PATCH 4/6] Disable HTTP/2 --- Build/lib/fetch-retry.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build/lib/fetch-retry.ts b/Build/lib/fetch-retry.ts index 6076fcb1..c8e570e4 100644 --- a/Build/lib/fetch-retry.ts +++ b/Build/lib/fetch-retry.ts @@ -23,7 +23,7 @@ if (!fs.existsSync(CACHE_DIR)) { fs.mkdirSync(CACHE_DIR, { recursive: true }); } -const agent = new Agent({ allowH2: true }); +const agent = new Agent({ allowH2: false }); setGlobalDispatcher(agent.compose( interceptors.dns({ From 759d9f94aeee82b576a0e0494896f4447db62b6b Mon Sep 17 00:00:00 2001 From: SukkaW Date: Wed, 21 May 2025 00:38:03 +0800 Subject: [PATCH 5/6] Update Reject Hosts --- Build/lib/normalize-domain.ts | 2 +- Source/domainset/reject.conf | 69 +++++++++++++++++++++++++++++++++++ Source/non_ip/reject.conf | 9 +++++ 3 files changed, 79 insertions(+), 1 deletion(-) diff --git a/Build/lib/normalize-domain.ts b/Build/lib/normalize-domain.ts index c2f7983f..074a7292 100644 --- a/Build/lib/normalize-domain.ts +++ b/Build/lib/normalize-domain.ts @@ -22,7 +22,7 @@ export function fastNormalizeDomainWithoutWww(domain: string, parsed: TldTsParse if (!parsed.isIcann && !parsed.isPrivate) return null; if (parsed.subdomain) { - if (parsed.subdomain === 'www') { + if (parsed.subdomain === 'www' || parsed.subdomain === 'xml-v4') { return parsed.domain; } if (parsed.subdomain.startsWith('www.')) { diff --git a/Source/domainset/reject.conf b/Source/domainset/reject.conf index f0174acb..6e538f74 100644 --- a/Source/domainset/reject.conf +++ b/Source/domainset/reject.conf @@ -762,6 +762,70 @@ elads.kocpc.com.tw .abhijith.page .themoneytizer.com .adhigh.net +.a2btracking.com +.adeliom.com +.aderant.com + +.trackifyy.com +.adscholars.com +.adverttise.com +.adtapmedia.com +.adsimilate.com +.adservtday.com +.adportonic.com +.insightadz.com +.audienceye.com +.winkleads.com +.ripamatic.com +.popviking.com +.xmlorbit.com +.webfindi.com +.techdoor.com +.optumads.com +.srvqck13.com +.srvqck12.com +.srvqck10.com +.fstsrv21.com +.fstsrv20.com +.fstsrv19.com +.fstsrv17.com +.adzreach.com +.adxpoint.com +.0network.com +.xmlwolf.com +.tenxads.com +.ngcluster-a.online +.dkswshap-4.online +.dkswshap-2.online +.dkswshap-1.online +.sagewwll4.online +.sagewwll1.online +.blastmedia.site +.medialabs.info +.re-media.info +.springtides.xyz +.programmaticnexus.com +.regalrisemedia.com +.intellectscoop.com +.dollopsdigital.com +.staradsmedia.com +.xmladsystem.com +.mediataggus.com +.9versemedia.com +.pubsfusion.com +.kvicads.com +.adexone.com +.kvicads.com +.adquint.com +.nexrtb.com +.glcsrv.com +.clkfst.com +.adzinx.com +.strongmetrics.io +.pops.gg +.search-house.co +.mywaymedia.co +.appmonsta.ai adimg.daumcdn.net .ad.daum.net @@ -990,6 +1054,8 @@ qm.redbullracing.com .txdy.2016os.com ping.ifixit.com vocadb-analytics.fly.dev +.ping.t3.gg +.round.t3.gg cdn.perfops.net rum-cdn.perfops.net @@ -1140,6 +1206,9 @@ analytics-api.smzdm.com .unemissiveunjour.fr .bonnelectureatous.fr .net.anwalt.de +.m-shop.me +.hs.eloqua.com +.secureforms.mcafee.com # >> Alexa / Amazon device-metrics-us.amazon.com diff --git a/Source/non_ip/reject.conf b/Source/non_ip/reject.conf index 96e56b44..4f13fdc3 100644 --- a/Source/non_ip/reject.conf +++ b/Source/non_ip/reject.conf @@ -59,6 +59,15 @@ DOMAIN-KEYWORD,track.msadcenter DOMAIN-KEYWORD,dc.pimentaafricana DOMAIN-KEYWORD,-txtagstore DOMAIN-KEYWORD,thetollroads- +DOMAIN-KEYWORD,-go.experian.com +DOMAIN-KEYWORD,-adnow.com + +DOMAIN-KEYWORD,dkswshap- +DOMAIN-KEYWORD,.srvqck +DOMAIN-KEYWORD,.fstsrv +DOMAIN-KEYWORD,.sagewwl + +DOMAIN-WILDCARD,info.*.aleragroup.com DOMAIN,stun.smartgslb.com From e0ddbbd55923631db663579f95ca5d70ea7c5f99 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Wed, 21 May 2025 00:38:10 +0800 Subject: [PATCH 6/6] Chore: update ESLint/TS ignore --- eslint.config.js | 4 ++++ tsconfig.json | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/eslint.config.js b/eslint.config.js index 1355372a..268b9f37 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,6 +1,10 @@ 'use strict'; module.exports = require('eslint-config-sukka').sukka({ + ignores: [ + '**/*.conf', + '**/*.txt' + ], js: { disableNoConsoleInCLI: ['Build/**'] }, diff --git a/tsconfig.json b/tsconfig.json index 3973e4e0..88a58242 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,5 +18,9 @@ "./Source/**/*.js", "./Build/**/*.ts", "./Source/**/*.ts" + ], + "exclude": [ + "node_modules", + "public" ] }