From 66252a09ac6091daf5ba6d1a87c638d1d81eb2ac Mon Sep 17 00:00:00 2001 From: SukkaW Date: Sun, 15 Jun 2025 16:53:05 +0800 Subject: [PATCH] Update AdGuard Reject Building --- Build/build-reject-domainset.ts | 20 +++++++++------ Build/lib/parse-filter/filters.ts | 4 +-- Source/non_ip/my_reject.conf | 38 +++------------------------- Source/non_ip/reject-no-drop.conf | 42 +++++++++++++++++++++++++++---- 4 files changed, 54 insertions(+), 50 deletions(-) diff --git a/Build/build-reject-domainset.ts b/Build/build-reject-domainset.ts index 63e8c939..37b94bb3 100644 --- a/Build/build-reject-domainset.ts +++ b/Build/build-reject-domainset.ts @@ -25,9 +25,6 @@ import type { MaybePromise } from './lib/misc'; const readLocalRejectDomainsetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'domainset/reject.conf')); const readLocalRejectExtraDomainsetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'domainset/reject_extra.conf')); const readLocalRejectRulesetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/reject.conf')); -const readLocalRejectDropRulesetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/reject-drop.conf')); -const readLocalRejectNoDropRulesetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/reject-no-drop.conf')); -const readLocalMyRejectRulesetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/my_reject.conf')); const hostsDownloads = HOSTS.map(entry => processHostsWithPreload(...entry)); const hostsExtraDownloads = HOSTS_EXTRA.map(entry => processHostsWithPreload(...entry)); @@ -170,7 +167,7 @@ export const buildRejectDomainSet = task(require.main === module, __filename)(as // we are going to re-use rejectOutput's domainTrie and mutate it // so we must wait until we write rejectOutput to disk after we can mutate its trie const rejectOutputAdGuardHome = new AdGuardHomeOutput(span, 'reject-adguardhome', OUTPUT_INTERNAL_DIR) - .withTitle('Sukka\'s Ruleset - Blocklist for AdGuardHome') + .withTitle('Sukka\'s Ruleset - AdGuardHome Blocklist') .withDescription([ 'The AdGuardHome ruleset supports AD blocking, tracking protection, privacy protection, anti-mining' ]); @@ -178,11 +175,18 @@ export const buildRejectDomainSet = task(require.main === module, __filename)(as rejectOutputAdGuardHome.domainTrie = rejectOutput.domainTrie; await rejectOutputAdGuardHome - .addFromRuleset(readLocalMyRejectRulesetPromise) + // .addFromRuleset(readLocalMyRejectRulesetPromise) .addFromRuleset(readLocalRejectRulesetPromise) - .addFromRuleset(readLocalRejectDropRulesetPromise) - .addFromRuleset(readLocalRejectNoDropRulesetPromise) + .addFromRuleset(readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/reject-drop.conf'))) + .addFromRuleset(readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/reject-no-drop.conf'))) .addFromDomainset(readLocalRejectExtraDomainsetPromise) - // . + .write(); + + const myRejectOutputAdGuardHome = new AdGuardHomeOutput(span, 'my-reject-adguardhome', OUTPUT_INTERNAL_DIR) + .withTitle('Sukka\'s Ruleset - AdGuardHome Blocklist for Myself (Sukka)') + .withDescription([]); + + await myRejectOutputAdGuardHome + .addFromRuleset(readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/my_reject.conf'))) .write(); }); diff --git a/Build/lib/parse-filter/filters.ts b/Build/lib/parse-filter/filters.ts index 754e5284..8a7402b1 100644 --- a/Build/lib/parse-filter/filters.ts +++ b/Build/lib/parse-filter/filters.ts @@ -118,7 +118,7 @@ export function processFilterRulesWithPreload( const kwfilter = createKeywordFilter([ '!', '?', - '*', + // '*', // *://example.com/* '[', '(', ']', @@ -127,7 +127,7 @@ const kwfilter = createKeywordFilter([ '#', '%', '&', - '=', + // '=', // maybe we want to support some modifier? '~', // special modifier '$popup', diff --git a/Source/non_ip/my_reject.conf b/Source/non_ip/my_reject.conf index 33577cfc..24a33426 100644 --- a/Source/non_ip/my_reject.conf +++ b/Source/non_ip/my_reject.conf @@ -11,41 +11,6 @@ PROCESS-NAME,LemonService # >> Windows Update Delivery Optimization (WUDO) use 7680 port DEST-PORT,7680 -# >> P2P CDN -DOMAIN-SUFFIX,p2p.qq.com -DOMAIN-SUFFIX,kuiniuca.com -DOMAIN-SUFFIX,onethingpcs.com -DOMAIN-SUFFIX,p2p.huya.com -DOMAIN-WILDCARD,p2p-*.douyucdn.cn -DOMAIN-WILDCARD,p2pchunk-*.douyucdn.cn -DOMAIN-WILDCARD,dyp2p-*.douyucdn.cn -DOMAIN-SUFFIX,p2perrorlog.douyucdn.cn -DOMAIN-WILDCARD,p2plive-*.douyucdn.cn -DOMAIN-WILDCARD,p2p*-ws.douyucdn.cn -DOMAIN-SUFFIX,p2plog.douyucdn.cn -DOMAIN-SUFFIX,p2ptun.qq.com -DOMAIN-SUFFIX,p2pupdate.gamedl.qq.com -DOMAIN-SUFFIX,p2pupgrade.gamedl.qq.com -DOMAIN-SUFFIX,pcdn.yximgs.com -DOMAIN-SUFFIX,pkoplink.com -DOMAIN-SUFFIX,saxysec.com -DOMAIN-SUFFIX,uhabo.com -# Xycdn -DOMAIN-SUFFIX,xycdn.com -DOMAIN-SUFFIX,p2cdn.com -# YunFan -DOMAIN-SUFFIX,yfp2p.net -DOMAIN-SUFFIX,yfcdn.net -DOMAIN-SUFFIX,cdnnodedns.cn -DOMAIN-SUFFIX,yfcloud.com -# PPIO Cloud -DOMAIN-SUFFIX,ppio.cloud -# Jiedian Zhijia -DOMAIN-SUFFIX,szbdyd.com -DOMAIN-SUFFIX,tianwenca.com -# Bilibili -DOMAIN-SUFFIX,bilivideo.cn - # >> Misc DOMAIN-KEYWORD,bahoom @@ -61,6 +26,9 @@ DOMAIN-SUFFIX,cool3c.com DOMAIN-SUFFIX,0.0.198.in-addr.arpa +# Google Timeline / Location +DOMAIN,userlocation.googleapis.com + # 网易云音乐 Look 直播 DOMAIN-SUFFIX,look.163.com # 网易云音乐 V2 更新提示 diff --git a/Source/non_ip/reject-no-drop.conf b/Source/non_ip/reject-no-drop.conf index 1610659f..6e62efad 100644 --- a/Source/non_ip/reject-no-drop.conf +++ b/Source/non_ip/reject-no-drop.conf @@ -1,10 +1,42 @@ # $ meta_title Sukka's Ruleset - Reject No Drop # $ meta_description This file This file contains rules for domain should be used with REJECT-NO-DROP policy. -# Block YouTube QUIC -AND,((PROTOCOL,UDP), (DOMAIN-SUFFIX,googlevideo.com)) -# Block Bilibili/Douyu P2P CDN -DOMAIN-SUFFIX,mcdn.bilivideo.cn -DOMAIN-SUFFIX,szbdyd.com +# Block YouTube QUIC -- Surge built-in QUIC blocking + +# >> P2P CDN +DOMAIN-SUFFIX,p2p.qq.com +DOMAIN-SUFFIX,kuiniuca.com +DOMAIN-SUFFIX,onethingpcs.com DOMAIN-SUFFIX,p2p.huya.com +DOMAIN-WILDCARD,p2p-*.douyucdn.cn +DOMAIN-WILDCARD,p2pchunk-*.douyucdn.cn +DOMAIN-WILDCARD,dyp2p-*.douyucdn.cn +DOMAIN-SUFFIX,p2perrorlog.douyucdn.cn +DOMAIN-WILDCARD,p2plive-*.douyucdn.cn +DOMAIN-WILDCARD,p2p*-ws.douyucdn.cn +DOMAIN-SUFFIX,p2plog.douyucdn.cn +DOMAIN-SUFFIX,p2ptun.qq.com +DOMAIN-SUFFIX,p2pupdate.gamedl.qq.com +DOMAIN-SUFFIX,p2pupgrade.gamedl.qq.com +DOMAIN-SUFFIX,pcdn.yximgs.com +DOMAIN-SUFFIX,pkoplink.com +DOMAIN-SUFFIX,saxysec.com +DOMAIN-SUFFIX,uhabo.com + AND,((DOMAIN-KEYWORD,stun), (DOMAIN-KEYWORD,douyu)) +AND,((PROTOCOL,UDP), (DOMAIN-SUFFIX,googlevideo.com)) +# Xycdn +DOMAIN-SUFFIX,xycdn.com +DOMAIN-SUFFIX,p2cdn.com +# YunFan +DOMAIN-SUFFIX,yfp2p.net +DOMAIN-SUFFIX,yfcdn.net +DOMAIN-SUFFIX,cdnnodedns.cn +DOMAIN-SUFFIX,yfcloud.com +# PPIO Cloud +DOMAIN-SUFFIX,ppio.cloud +# Jiedian Zhijia +DOMAIN-SUFFIX,szbdyd.com +DOMAIN-SUFFIX,tianwenca.com +# Bilibili +DOMAIN-SUFFIX,mcdn.bilivideo.cn