From 138245154d2b937e25beba28b8ce09089f22f435 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Fri, 13 May 2022 14:19:23 +0800 Subject: [PATCH] Handle badfilter syntax correctly --- Build/build-reject-domainset.js | 2 +- Build/lib/parse-filter.js | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Build/build-reject-domainset.js b/Build/build-reject-domainset.js index c80121c3..e62a2792 100644 --- a/Build/build-reject-domainset.js +++ b/Build/build-reject-domainset.js @@ -10,7 +10,7 @@ const threads = Math.max(require('os').cpus().length, 12); // Parse from remote hosts & domain lists (await Promise.all([ - // processHosts('https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext', true), + processHosts('https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext', true), processHosts('https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/hosts.txt'), processHosts('https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt') ])).forEach(hosts => { diff --git a/Build/lib/parse-filter.js b/Build/lib/parse-filter.js index d4390611..cb4d1724 100644 --- a/Build/lib/parse-filter.js +++ b/Build/lib/parse-filter.js @@ -97,7 +97,12 @@ async function processFilterRules(filterRulesUrl) { return; } - if (line.startsWith('@@||') + if (line.startsWith('||') && line.endsWith('^$badfilter')) { + const domain = line.replaceAll('||', '').replaceAll('^$badfilter', '').trim(); + if (rDomain.test(domain)) { + whitelistDomainSets.add(domain); + } + } else if (line.startsWith('@@||') && ( line.endsWith('^') || line.endsWith('^|')