From 7fab977c60c9e214d7f5e105a995eeb3740cdafc Mon Sep 17 00:00:00 2001 From: SukkaW Date: Mon, 6 Jan 2025 23:51:44 +0800 Subject: [PATCH 1/8] Update Global & CDN Hosts --- Source/domainset/cdn.conf | 12 ++++++++++++ Source/non_ip/global.conf | 1 + 2 files changed, 13 insertions(+) diff --git a/Source/domainset/cdn.conf b/Source/domainset/cdn.conf index 8aa948c15..8f651346f 100644 --- a/Source/domainset/cdn.conf +++ b/Source/domainset/cdn.conf @@ -963,6 +963,7 @@ js.chilipiper.com .statuspage.io cdn.statuspage.io api.producthunt.com +s3.producthunt.com app-api.vidjet.io freeshippingbar.herokuapp.com sdk.qikify.com @@ -1153,6 +1154,7 @@ jssdk.opin.media us-js.zonka.co code.upscope.io js.upscope.io +sdk.customfit.ai js.chargebee.com js1.chargebee.com @@ -1174,6 +1176,7 @@ cdn-yotpo-images-production.yotpo.com img.announcekit.app cdn.announcekit.app +cdn.jotfor.ms cdn01.jotfor.ms cdn02.jotfor.ms cdn03.jotfor.ms @@ -1209,6 +1212,7 @@ f.convertkit.com static.scroll.com assets.scroll.com +static-staging.scroll.com participants.evolv.ai media.evolv.ai @@ -3847,3 +3851,11 @@ assets.dify.ai bookface-static.ycombinator.com .sthlstatic.com image.hkhl.hk +cdn.joinhoney.com +media.kit.com +webstatic.chargebee.com +images.typeform.com +media-cms.onesignal.com +import-cdn.default.com +assets.embeddables.com +netlify.apollo.io diff --git a/Source/non_ip/global.conf b/Source/non_ip/global.conf index 4ba7193a6..39a4b213d 100644 --- a/Source/non_ip/global.conf +++ b/Source/non_ip/global.conf @@ -495,6 +495,7 @@ DOMAIN-SUFFIX,akamaihd.net DOMAIN-SUFFIX,amazon.com DOMAIN-SUFFIX,amazon.co.jp DOMAIN-SUFFIX,amazonaws.com +DOMAIN-SUFFIX,androidpolice.com DOMAIN-SUFFIX,ant.design DOMAIN-SUFFIX,apernet.io DOMAIN-SUFFIX,apibay.org From e9614290ea0e33a8e2737f01469ffb9982c223ee Mon Sep 17 00:00:00 2001 From: SukkaW Date: Tue, 7 Jan 2025 22:19:41 +0800 Subject: [PATCH 2/8] Chore: Housekeeping --- package.json | 12 ++++---- pnpm-lock.yaml | 82 +++++++++++++++++++++++++------------------------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/package.json b/package.json index a562c2fd9..65feace72 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@ghostery/adblocker": "^2.3.1", "@henrygd/queue": "^1.0.7", "async-retry": "^1.3.3", - "better-sqlite3": "^11.7.0", + "better-sqlite3": "^11.7.2", "cacache": "^19.0.1", "ci-info": "^4.1.0", "csv-parse": "^5.6.0", @@ -38,8 +38,8 @@ "picocolors": "^1.1.1", "tar-fs": "^3.0.6", "tinyexec": "^0.3.2", - "tldts": "^6.1.70", - "tldts-experimental": "^6.1.70", + "tldts": "^6.1.71", + "tldts-experimental": "^6.1.71", "undici": "^7.2.0", "undici-cache-store-better-sqlite3": "^0.1.1", "whoiser": "^1.18.0", @@ -58,7 +58,7 @@ "@types/fast-fifo": "^1.3.0", "@types/make-fetch-happen": "^10.0.4", "@types/mocha": "^10.0.10", - "@types/node": "^22.10.2", + "@types/node": "^22.10.5", "@types/node-fetch": "^2.6.12", "@types/tar-fs": "^2.0.4", "@types/tar-stream": "^3.1.3", @@ -66,11 +66,11 @@ "eslint-config-sukka": "^6.13.0", "eslint-formatter-sukka": "^6.13.0", "expect": "^29.7.0", - "mitata": "^1.0.23", + "mitata": "^1.0.26", "mocha": "^11.0.1", "typescript": "^5.7.2" }, - "packageManager": "pnpm@9.15.2", + "packageManager": "pnpm@9.15.3", "resolutions": { "has": "npm:@nolyfill/has@latest" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e0729d62..4650a2b76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: specifier: ^1.3.3 version: 1.3.3 better-sqlite3: - specifier: ^11.7.0 - version: 11.7.0 + specifier: ^11.7.2 + version: 11.7.2 cacache: specifier: ^19.0.1 version: 19.0.1 @@ -66,11 +66,11 @@ importers: specifier: ^0.3.2 version: 0.3.2 tldts: - specifier: ^6.1.70 - version: 6.1.70 + specifier: ^6.1.71 + version: 6.1.71 tldts-experimental: - specifier: ^6.1.70 - version: 6.1.70 + specifier: ^6.1.71 + version: 6.1.71 undici: specifier: ^7.2.0 version: 7.2.0 @@ -121,8 +121,8 @@ importers: specifier: ^10.0.10 version: 10.0.10 '@types/node': - specifier: ^22.10.2 - version: 22.10.2 + specifier: ^22.10.5 + version: 22.10.5 '@types/node-fetch': specifier: ^2.6.12 version: 2.6.12 @@ -145,8 +145,8 @@ importers: specifier: ^29.7.0 version: 29.7.0 mitata: - specifier: ^1.0.23 - version: 1.0.23 + specifier: ^1.0.26 + version: 1.0.26 mocha: specifier: ^11.0.1 version: 11.0.1 @@ -543,8 +543,8 @@ packages: '@types/node-fetch@2.6.12': resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} - '@types/node@22.10.2': - resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + '@types/node@22.10.5': + resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} '@types/retry@0.12.5': resolution: {integrity: sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw==} @@ -723,8 +723,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - better-sqlite3@11.7.0: - resolution: {integrity: sha512-mXpa5jnIKKHeoGzBrUJrc65cXFKcILGZpU3FXR0pradUEm9MA7UZz02qfEejaMcm9iXrSOCenwwYMJ/tZ1y5Ig==} + better-sqlite3@11.7.2: + resolution: {integrity: sha512-10a57cHVDmfNQS4jrZ9AH2t+2ekzYh5Rhbcnb4ytpmYweoLdogDmyTt5D+hLiY9b44Mx9foowb/4iXBTO2yP3Q==} binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} @@ -1436,8 +1436,8 @@ packages: resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} engines: {node: '>= 18'} - mitata@1.0.23: - resolution: {integrity: sha512-G2t4HG01WGOceXNSq72IARFURXQh/9lNDdnxIfGHGHO31LTrpHuzRrZwoRqMgvgnF4uo0Cjo6SNMP8XGSbttCg==} + mitata@1.0.26: + resolution: {integrity: sha512-Zl8N9JabcjFKTEDZUZGRzT577w3sl951Heq2c1JO/g399w2AhQYly+3fzGnhpBwj/JECObkE9Nqj/Kzdrk1s+A==} mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -1776,14 +1776,14 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tldts-core@6.1.70: - resolution: {integrity: sha512-RNnIXDB1FD4T9cpQRErEqw6ZpjLlGdMOitdV+0xtbsnwr4YFka1zpc7D4KD+aAn8oSG5JyFrdasZTE04qDE9Yg==} + tldts-core@6.1.71: + resolution: {integrity: sha512-LRbChn2YRpic1KxY+ldL1pGXN/oVvKfCVufwfVzEQdFYNo39uF7AJa/WXdo+gYO7PTvdfkCPCed6Hkvz/kR7jg==} - tldts-experimental@6.1.70: - resolution: {integrity: sha512-cEhsyUBfW/elb1FpPAfnqqTa0Av9OJlcG9Nabiuqn8/1Xggpqch7H8QfZA55SNHonj1x1uRB/NzRETvCiQqz5Q==} + tldts-experimental@6.1.71: + resolution: {integrity: sha512-78lfP/3fRJ3HoCT5JSLOLj5ElHiWCAyglYNzjkFqBO7ykLZYst2u2jM1igSHWV0J2GFfOplApeDsfTF+XACrlA==} - tldts@6.1.70: - resolution: {integrity: sha512-/W1YVgYVJd9ZDjey5NXadNh0mJXkiUMUue9Zebd0vpdo1sU+H4zFFTaJ1RKD4N6KFoHfcXy6l+Vu7bh+bdWCzA==} + tldts@6.1.71: + resolution: {integrity: sha512-LQIHmHnuzfZgZWAf2HzL83TIIrD8NhhI0DVxqo9/FdOd4ilec+NTNZOlDZf7EwrTNoutccbsHjvWHYXLAtvxjw==} hasBin: true to-regex-range@5.0.1: @@ -2020,7 +2020,7 @@ snapshots: '@remusao/guess-url-type': 1.3.0 '@remusao/small': 1.3.0 '@remusao/smaz': 1.10.0 - tldts-experimental: 6.1.70 + tldts-experimental: 6.1.71 '@henrygd/queue@1.0.7': {} @@ -2063,7 +2063,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -2269,15 +2269,15 @@ snapshots: '@types/better-sqlite3@7.6.12': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/cacache@17.0.2': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/dns2@2.0.9': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/doctrine@0.0.9': {} @@ -2312,10 +2312,10 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 form-data: 4.0.1 - '@types/node@22.10.2': + '@types/node@22.10.5': dependencies: undici-types: 6.20.0 @@ -2323,18 +2323,18 @@ snapshots: '@types/ssri@7.1.5': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/stack-utils@2.0.3': {} '@types/tar-fs@2.0.4': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/tar-stream': 3.1.3 '@types/tar-stream@3.1.3': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/yargs-parser@21.0.3': {} @@ -2533,7 +2533,7 @@ snapshots: base64-js@1.5.1: {} - better-sqlite3@11.7.0: + better-sqlite3@11.7.2: dependencies: bindings: 1.5.0 prebuild-install: 7.1.2 @@ -3192,7 +3192,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.10.5 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -3325,7 +3325,7 @@ snapshots: minipass: 7.1.2 rimraf: 5.0.10 - mitata@1.0.23: {} + mitata@1.0.26: {} mkdirp-classic@0.5.3: {} @@ -3695,15 +3695,15 @@ snapshots: tinyexec@0.3.2: {} - tldts-core@6.1.70: {} + tldts-core@6.1.71: {} - tldts-experimental@6.1.70: + tldts-experimental@6.1.71: dependencies: - tldts-core: 6.1.70 + tldts-core: 6.1.71 - tldts@6.1.70: + tldts@6.1.71: dependencies: - tldts-core: 6.1.70 + tldts-core: 6.1.71 to-regex-range@5.0.1: dependencies: @@ -3737,7 +3737,7 @@ snapshots: undici-cache-store-better-sqlite3@0.1.1(undici@7.2.0): dependencies: - better-sqlite3: 11.7.0 + better-sqlite3: 11.7.2 undici: 7.2.0 undici-types@6.20.0: {} From 317d91408651092c16fc6ef7a1e5d275f31e6a62 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Tue, 7 Jan 2025 22:19:50 +0800 Subject: [PATCH 3/8] CI: always continue deploy --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 77f7e47ec..f3f2da01a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -124,6 +124,7 @@ jobs: name: build-artifact-${{ github.ref_name }} path: public - name: Upload Dist to GitLab + continue-on-error: true run: | git clone --filter=tree:0 https://${GITLAB_TOKEN_NAME}:${GITLAB_TOKEN}@gitlab.com/SukkaW/ruleset.skk.moe.git ./deploy-git cd ./deploy-git From e43ba55357230ad6d54e6b69561e6802b250754d Mon Sep 17 00:00:00 2001 From: SukkaW Date: Tue, 7 Jan 2025 22:36:43 +0800 Subject: [PATCH 4/8] CI: only run deploy if build actually finished --- .github/workflows/main.yml | 4 ++++ .gitignore | 1 + Build/index.ts | 11 +++++++++++ 3 files changed, 16 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f3f2da01a..5468894b1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -68,6 +68,10 @@ jobs: echo "public directory is empty" exit 1 fi + if [ ! -f .BUILD_FINISHED ]; then + echo ".BUILD_FINISHED not found" + exit 1 + fi - uses: actions/upload-artifact@v4 with: name: build-artifact-${{ github. ref_name }} diff --git a/.gitignore b/.gitignore index 096e1f75d..35fd7c3f8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ node_modules .cache public tmp.* +.BUILD_FINISHED diff --git a/Build/index.ts b/Build/index.ts index 9b16fba2e..a8d67fb39 100644 --- a/Build/index.ts +++ b/Build/index.ts @@ -1,5 +1,6 @@ import process from 'node:process'; import os from 'node:os'; +import fs from 'node:fs'; import { downloadPreviousBuild } from './download-previous-build'; import { buildCommon } from './build-common'; @@ -28,6 +29,7 @@ import { buildCloudMounterRules } from './build-cloudmounter-rules'; import { createSpan, printTraceResult, whyIsNodeRunning } from './trace'; import { buildDeprecateFiles } from './build-deprecate-files'; import { cacheGc } from './lib/make-fetch-happen'; +import path from 'node:path'; process.on('uncaughtException', (error) => { console.error('Uncaught exception:', error); @@ -38,6 +40,8 @@ process.on('unhandledRejection', (reason) => { process.exit(1); }); +const buildFinishedLock = path.join(__dirname, '../.BUILD_FINISHED'); + (async () => { console.log('Version:', process.version); @@ -60,6 +64,10 @@ process.on('unhandledRejection', (reason) => { const rootSpan = createSpan('root'); + if (fs.existsSync(buildFinishedLock)) { + fs.unlinkSync(buildFinishedLock); + } + try { const downloadPreviousBuildPromise = downloadPreviousBuild(rootSpan); const buildCommonPromise = downloadPreviousBuildPromise.then(() => buildCommon(rootSpan)); @@ -97,6 +105,9 @@ process.on('unhandledRejection', (reason) => { printTraceResult(rootSpan.traceResult); + // write a file to demonstrate that the build is finished + fs.writeFileSync(buildFinishedLock, 'BUILD_FINISHED\n'); + // Finish the build to avoid leaking timer/fetch ref await whyIsNodeRunning(); process.exit(0); From 4e9e206ec0c89ef220f83bc081a2ef87ae4e1b15 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Tue, 7 Jan 2025 23:17:38 +0800 Subject: [PATCH 5/8] Feat: include `my_reject` in adguardhome --- Build/build-reject-domainset.ts | 15 ++++++++++++--- Build/lib/rules/base.ts | 12 +++++++++--- Source/non_ip/my_reject.conf | 12 ------------ 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/Build/build-reject-domainset.ts b/Build/build-reject-domainset.ts index e2caddc48..685cd59b5 100644 --- a/Build/build-reject-domainset.ts +++ b/Build/build-reject-domainset.ts @@ -6,7 +6,7 @@ import { processHosts, processFilterRules, processDomainLists } from './lib/pars import { HOSTS, ADGUARD_FILTERS, PREDEFINED_WHITELIST, DOMAIN_LISTS, HOSTS_EXTRA, DOMAIN_LISTS_EXTRA, ADGUARD_FILTERS_EXTRA, PHISHING_DOMAIN_LISTS_EXTRA, ADGUARD_FILTERS_WHITELIST } from './constants/reject-data-source'; import { compareAndWriteFile } from './lib/create-file'; -import { readFileByLine, readFileIntoProcessedArray } from './lib/fetch-text-by-line'; +import { readFileIntoProcessedArray } from './lib/fetch-text-by-line'; import { task } from './trace'; // tldts-experimental is way faster than tldts, but very little bit inaccurate // (since it is hashes based). But the result is still deterministic, which is @@ -21,7 +21,8 @@ import { DomainsetOutput } from './lib/create-file'; const readLocalRejectDomainsetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'domainset/reject_sukka.conf')); const readLocalRejectExtraDomainsetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'domainset/reject_sukka_extra.conf')); -const readLocalRejectRulesetPromise = readFileByLine(path.join(SOURCE_DIR, 'non_ip/reject.conf')); +const readLocalRejectRulesetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/reject.conf')); +const readLocalMyRejectRulesetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/my_reject.conf')); export const buildRejectDomainSet = task(require.main === module, __filename)(async (span) => { const rejectBaseDescription = [ @@ -171,7 +172,15 @@ export const buildRejectDomainSet = task(require.main === module, __filename)(as '! Description: The domainset supports AD blocking, tracking protection, privacy protection, anti-phishing, anti-mining', '!' ], - rejectOutput.adguardhome() + appendArrayInPlace( + rejectOutput.adguardhome(), + ( + await new DomainsetOutput(span, 'my_reject') + .addFromRuleset(readLocalMyRejectRulesetPromise) + .addFromRuleset(readLocalRejectRulesetPromise) + .done() + ).adguardhome() + ) ), path.join(OUTPUT_INTERNAL_DIR, 'reject-adguardhome.txt') ) diff --git a/Build/lib/rules/base.ts b/Build/lib/rules/base.ts index 49155a991..b6e36b0e8 100644 --- a/Build/lib/rules/base.ts +++ b/Build/lib/rules/base.ts @@ -36,7 +36,7 @@ export abstract class RuleOutput { protected otherRules: string[] = []; protected abstract type: 'domainset' | 'non_ip' | 'ip'; - private pendingPromise: Promise | null = null; + private pendingPromise: Promise | null = null; static readonly jsonToLines = (json: unknown): string[] => stringify(json).split('\n'); @@ -201,8 +201,13 @@ export abstract class RuleOutput { } } - addFromRuleset(source: AsyncIterable | Iterable) { - this.pendingPromise = (this.pendingPromise ||= Promise.resolve()).then(() => this.addFromRulesetPromise(source)); + addFromRuleset(source: AsyncIterable | Iterable | Promise>) { + if (this.pendingPromise) { + this.pendingPromise = this.pendingPromise.then(() => source); + } else { + this.pendingPromise = Promise.resolve(source); + } + this.pendingPromise = this.pendingPromise.then((source) => this.addFromRulesetPromise(source)); return this; } @@ -247,6 +252,7 @@ export abstract class RuleOutput { async done() { await this.pendingPromise; this.pendingPromise = null; + return this; } private guardPendingPromise() { diff --git a/Source/non_ip/my_reject.conf b/Source/non_ip/my_reject.conf index 3746ff74c..c6d01a7e5 100644 --- a/Source/non_ip/my_reject.conf +++ b/Source/non_ip/my_reject.conf @@ -38,18 +38,6 @@ DOMAIN-SUFFIX,uhabo.com DOMAIN-SUFFIX,xycdn.com # >> Misc -DOMAIN-SUFFIX,parallels.com -DOMAIN-SUFFIX,www.parallelskorea.com -DOMAIN-SUFFIX,parallels.cn -DOMAIN-SUFFIX,parallels.de -DOMAIN-SUFFIX,parallels.es -DOMAIN-SUFFIX,parallels.fr -DOMAIN-SUFFIX,parallels.nl -DOMAIN-SUFFIX,parallels.pt -DOMAIN-SUFFIX,parallels.ru -DOMAIN-SUFFIX,parallelskorea.com -DOMAIN-SUFFIX,myparallels.com -DOMAIN-SUFFIX,my.parallels.com DOMAIN-KEYWORD,bahoom DOMAIN,daisydiskapp.com From 8c45a8fc5652a9f478e1ff58461f41dbae3b7666 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Tue, 7 Jan 2025 23:30:48 +0800 Subject: [PATCH 6/8] Update Reject & CDN Hosts --- Source/domainset/cdn.conf | 1 + Source/non_ip/reject.conf | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Source/domainset/cdn.conf b/Source/domainset/cdn.conf index 8f651346f..b08256eae 100644 --- a/Source/domainset/cdn.conf +++ b/Source/domainset/cdn.conf @@ -932,6 +932,7 @@ sentry.ainopara.com telemetry.individual.githubcopilot.com telemetry.business.githubcopilot.com .scorecardresearch.com +analytics.twitter.com # these domains pop up few months ago, dont block since we dunnno what they are # but they can definitely go through secondary policy .ogads-pa.googleapis.com diff --git a/Source/non_ip/reject.conf b/Source/non_ip/reject.conf index c1b52d14c..eae9f7e86 100644 --- a/Source/non_ip/reject.conf +++ b/Source/non_ip/reject.conf @@ -102,6 +102,8 @@ DOMAIN-SUFFIX,scorecardresearch.com DOMAIN-SUFFIX,omtrdc.net # Force Block histats.com DOMAIN-SUFFIX,histats.com +# Force Block minexmr.com +DOMAIN-SUFFIX,minexmr.com DOMAIN-KEYWORD,.net.daraz. DOMAIN-KEYWORD,.zooplus. From d12435834e20b9472c917cf14058ab7d590bde77 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Wed, 8 Jan 2025 12:43:24 +0800 Subject: [PATCH 7/8] Update CDN Hosts & Minor Changes --- Source/domainset/cdn.conf | 5 +++++ Source/non_ip/global.conf | 6 ++---- Source/non_ip/my_us.conf | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Source/domainset/cdn.conf b/Source/domainset/cdn.conf index b08256eae..c0f3a0138 100644 --- a/Source/domainset/cdn.conf +++ b/Source/domainset/cdn.conf @@ -158,6 +158,7 @@ vscode-sync-insiders.trafficmanager.net # https://learn.microsoft.com/en-us/visualstudio/install/install-and-use-visual-studio-behind-a-firewall-or-proxy-server?view=vs-2022 az700632.vo.msecnd.net open-vsx.org +.tunnels.api.visualstudio.com # NPM registry.npmjs.org npm.im @@ -933,6 +934,7 @@ telemetry.individual.githubcopilot.com telemetry.business.githubcopilot.com .scorecardresearch.com analytics.twitter.com +tracking.inflection.io # these domains pop up few months ago, dont block since we dunnno what they are # but they can definitely go through secondary policy .ogads-pa.googleapis.com @@ -3860,3 +3862,6 @@ media-cms.onesignal.com import-cdn.default.com assets.embeddables.com netlify.apollo.io +cdn.bullwhip.cloud +cdn.coral.coralproject.net +js.puter.com diff --git a/Source/non_ip/global.conf b/Source/non_ip/global.conf index 39a4b213d..1b9e2fc06 100644 --- a/Source/non_ip/global.conf +++ b/Source/non_ip/global.conf @@ -399,8 +399,7 @@ DOMAIN-SUFFIX,edgecompute.app DOMAIN-SUFFIX,fly.dev DOMAIN-SUFFIX,shw.io DOMAIN-SUFFIX,edgeapp.net - -# >> ccTLD +# ccTLD DOMAIN-SUFFIX,ai DOMAIN-SUFFIX,at DOMAIN-SUFFIX,au @@ -443,8 +442,7 @@ DOMAIN-SUFFIX,tw DOMAIN-SUFFIX,uk DOMAIN-SUFFIX,us DOMAIN-SUFFIX,ws - -# >> gTLD +# gTLD DOMAIN-SUFFIX,app DOMAIN-SUFFIX,blog DOMAIN-SUFFIX,cafe diff --git a/Source/non_ip/my_us.conf b/Source/non_ip/my_us.conf index d577e2274..6310a8c1c 100644 --- a/Source/non_ip/my_us.conf +++ b/Source/non_ip/my_us.conf @@ -7,3 +7,4 @@ DOMAIN-SUFFIX,mandaom.com DOMAIN-SUFFIX,crunchyroll.com DOMAIN,www.coinbase.com DOMAIN,javdb.com +DOMAIN,cableav.tv From e0e23dca4039846d6aea1153a930db7e096f75e4 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Wed, 8 Jan 2025 12:43:32 +0800 Subject: [PATCH 8/8] Remove `sndcdn.com` from Stream Hosts --- Source/stream.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/stream.ts b/Source/stream.ts index 79332b9fb..534c0cf36 100644 --- a/Source/stream.ts +++ b/Source/stream.ts @@ -607,7 +607,7 @@ const PORNHUB: StreamService = { const SOUNDCLOUD: StreamService = { name: 'SoundCloud', rules: [ - 'DOMAIN-SUFFIX,sndcdn.com', + // 'DOMAIN-SUFFIX,sndcdn.com', 'DOMAIN-SUFFIX,soundcloud.com', 'USER-AGENT,SoundCloud*'