From f57a7dde94fbdc0275e58615e86dfc913ffdc321 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Mon, 20 Jan 2025 17:11:58 +0800 Subject: [PATCH] Chore: minor changes --- Build/constants/reject-data-source.ts | 48 ++++++--------------------- Build/lib/misc.ts | 21 ------------ Build/lib/parse-filter/filters.ts | 14 ++++---- 3 files changed, 18 insertions(+), 65 deletions(-) diff --git a/Build/constants/reject-data-source.ts b/Build/constants/reject-data-source.ts index 9079bb06..aa13cb75 100644 --- a/Build/constants/reject-data-source.ts +++ b/Build/constants/reject-data-source.ts @@ -6,12 +6,12 @@ export const HOSTS: HostsSource[] = [ // have not been updated for more than a year, so we set a 14 days cache ttl ['https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt', null, true], ['https://raw.githubusercontent.com/jerryn70/GoodbyeAds/master/Extension/GoodbyeAds-Xiaomi-Extension.txt', null, false], - ['https://raw.githubusercontent.com/jerryn70/GoodbyeAds/master/Extension/GoodbyeAds-Huawei-AdBlock.txt', null, false], - ['https://raw.githubusercontent.com/durablenapkin/block/master/tvstream.txt', null, true] + ['https://raw.githubusercontent.com/jerryn70/GoodbyeAds/master/Extension/GoodbyeAds-Huawei-AdBlock.txt', null, false] ]; export const HOSTS_EXTRA: HostsSource[] = [ - // This stupid hosts blocks t.co, so we determine that this is also bullshit, so it is also extra + ['https://raw.githubusercontent.com/durablenapkin/block/master/tvstream.txt', null, true], + // This stupid hosts blocks t.co, so we determine that this is also bullshit, so it is extra [ 'https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext', ['https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/thirdparties/pgl.yoyo.org/as/serverlist'], @@ -31,26 +31,19 @@ export const HOSTS_EXTRA: HostsSource[] = [ export const DOMAIN_LISTS: HostsSource[] = [ // CoinBlockerList - // Although the hosts file is still actively maintained, the hosts_browser file is not updated since 2024-03, so we set a 14 days cache ttl + // The CoinBlockerList is no longer maintained and even close-source, so we no longer trust it + // instead we maintain a list of our own // [ // 'https://zerodot1.gitlab.io/CoinBlockerLists/list_browser.txt', - // [ - // 'https://proxy.cdn.skk.moe/?https://zerodot1.gitlab.io/CoinBlockerLists/list_browser.txt' - // ], + // [], // true, - // // ] ]; export const DOMAIN_LISTS_EXTRA: HostsSource[] = [ // CoinBlockerList - Full - // Lat update 10 months ago, so we set a 14 days cache ttl - // [ - // 'https://zerodot1.gitlab.io/CoinBlockerLists/list.txt', - // ['https://proxy.cdn.skk.moe/?https://zerodot1.gitlab.io/CoinBlockerLists/list.txt'], - // true, - // - // ], + // The CoinBlockerList is no longer maintained and even close-source, so we no longer trust it + // instead we maintain a list of our own // BarbBlock // The barbblock list has never been updated since 2019-05, so we set a 14 days cache ttl @@ -121,11 +114,9 @@ export const PHISHING_DOMAIN_LISTS_EXTRA: HostsSource[] = [ ] ]; -type AdGuardFilterSource = [main: string, mirrors: string[] | null, allowThirdParty?: boolean]; +type AdGuardFilterSource = [main: string, mirrors: string[] | null, includeThirdParty?: boolean]; export const ADGUARD_FILTERS: AdGuardFilterSource[] = [ - // no coin list adguard list is more maintained than its hosts - ['https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/nocoin.txt', []], // EasyList [ 'https://easylist.to/easylist/easylist.txt', @@ -137,7 +128,6 @@ export const ADGUARD_FILTERS: AdGuardFilterSource[] = [ 'https://raw.githubusercontent.com/easylist/easylist/gh-pages/easylist.txt', 'https://filters.adtidy.org/extension/ublock/filters/101_optimized.txt' ] - ], // EasyPrivacy [ @@ -150,7 +140,6 @@ export const ADGUARD_FILTERS: AdGuardFilterSource[] = [ 'https://raw.githubusercontent.com/easylist/easylist/gh-pages/easyprivacy.txt', 'https://filters.adtidy.org/extension/ublock/filters/118_optimized.txt' ] - ], // AdGuard DNS Filter [ @@ -159,31 +148,26 @@ export const ADGUARD_FILTERS: AdGuardFilterSource[] = [ 'https://filters.adtidy.org/extension/ublock/filters/15_optimized.txt', 'https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt' ] - ], // AdGuard Base Filter [ 'https://filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt', ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt'] - ], // AdGuard Mobile AD [ 'https://filters.adtidy.org/extension/ublock/filters/11_optimized.txt', ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt'] - ], // AdGuard Tracking Protection [ 'https://filters.adtidy.org/extension/ublock/filters/3_optimized.txt', ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/3_optimized.txt'] - ], // AdGuard Chinese filter (EasyList China + AdGuard Chinese filter) [ 'https://filters.adtidy.org/extension/ublock/filters/224_optimized.txt', ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/224_optimized.txt'] - ], // GameConsoleAdblockList // Update almost once per 1 to 3 months, let's set a 10 days cache ttl @@ -195,7 +179,6 @@ export const ADGUARD_FILTERS: AdGuardFilterSource[] = [ [ 'https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV-AGH.txt' ] - ], // uBlock Origin Unbreak [ @@ -203,7 +186,6 @@ export const ADGUARD_FILTERS: AdGuardFilterSource[] = [ [ 'https://ublockorigin.pages.dev/filters/unbreak.min.txt' ] - ] ]; @@ -213,18 +195,18 @@ export const ADGUARD_FILTERS_WHITELIST: AdGuardFilterSource[] = [ [ 'https://raw.githubusercontent.com/AdguardTeam/AdGuardSDNSFilter/master/Filters/exceptions.txt' ] - ], [ 'https://adguardteam.github.io/AdGuardSDNSFilter/Filters/exclusions.txt', [ 'https://raw.githubusercontent.com/AdguardTeam/AdGuardSDNSFilter/master/Filters/exclusions.txt' ] - ] ]; export const ADGUARD_FILTERS_EXTRA: AdGuardFilterSource[] = [ + // no coin list adguard list is more maintained than its hosts + ['https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/nocoin.txt', [], true], // AdGuard Annoyances filter [ 'https://filters.adtidy.org/extension/ublock/filters/14_optimized.txt', @@ -253,7 +235,6 @@ export const ADGUARD_FILTERS_EXTRA: AdGuardFilterSource[] = [ [ 'https://ublockorigin.pages.dev/filters/filters.min.txt' ] - ], // AdGuard Popup Overlay - included in Annoyances filter // ['https://filters.adtidy.org/extension/ublock/filters/19_optimized.txt', null, true], @@ -266,7 +247,6 @@ export const ADGUARD_FILTERS_EXTRA: AdGuardFilterSource[] = [ [ 'https://ublockorigin.pages.dev/filters/badware.min.txt' ] - ], // uBlock Origin Privacy List [ @@ -274,7 +254,6 @@ export const ADGUARD_FILTERS_EXTRA: AdGuardFilterSource[] = [ [ 'https://ublockorigin.pages.dev/filters/privacy.min.txt' ] - ], // uBlock Origin Resource Abuse: merged in uBlock Origin Privacy List // [ @@ -285,25 +264,21 @@ export const ADGUARD_FILTERS_EXTRA: AdGuardFilterSource[] = [ [ 'https://ublockorigin.github.io/uAssetsCDN/filters/annoyances.min.txt', ['https://ublockorigin.pages.dev/filters/annoyances.min.txt'] - ], // EasyList Annoyances [ 'https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-annoyances.txt', ['https://ublockorigin.pages.dev/thirdparties/easylist-annoyances.txt'] - ], // EasyList - Newsletters [ 'https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-newsletters.txt', ['https://ublockorigin.pages.dev/thirdparties/easylist-newsletters.txt'] - ], // EasyList - Notifications [ 'https://ublockorigin.github.io/uAssets/thirdparties/easylist-notifications.txt', ['https://ublockorigin.pages.dev/thirdparties/easylist-notifications.txt'] - ], // Fanboy Cookie Monster (EasyList Cookie List) [ @@ -312,7 +287,6 @@ export const ADGUARD_FILTERS_EXTRA: AdGuardFilterSource[] = [ 'https://ublockorigin.pages.dev/thirdparties/easylist-cookies.txt', 'https://secure.fanboy.co.nz/fanboy-cookiemonster_ubo.txt' ] - ], // Dandelion Sprout's Annoyances [ diff --git a/Build/lib/misc.ts b/Build/lib/misc.ts index 2648de33..422a65bc 100644 --- a/Build/lib/misc.ts +++ b/Build/lib/misc.ts @@ -47,27 +47,6 @@ export const writeFile: Write = async (destination: string, input, dir = dirname export const removeFiles = async (files: string[]) => Promise.all(files.map((file) => fsp.rm(file, { force: true }))); -export function domainWildCardToRegex(domain: string) { - let result = '^'; - for (let i = 0, len = domain.length; i < len; i++) { - switch (domain[i]) { - case '.': - result += String.raw`\.`; - break; - case '*': - result += '[a-zA-Z0-9-_.]*?'; - break; - case '?': - result += '[a-zA-Z0-9-_.]'; - break; - default: - result += domain[i]; - } - } - result += '$'; - return result; -} - export function withBannerArray(title: string, description: string[] | readonly string[], date: Date, content: string[]) { return [ '#########################################', diff --git a/Build/lib/parse-filter/filters.ts b/Build/lib/parse-filter/filters.ts index 2406f058..51ac3e3a 100644 --- a/Build/lib/parse-filter/filters.ts +++ b/Build/lib/parse-filter/filters.ts @@ -23,7 +23,7 @@ export { type ParseType }; export function processFilterRulesWithPreload( filterRulesUrl: string, fallbackUrls?: string[] | null, - allowThirdParty = false + includeThirdParty = false ) { const downloadPromise = fetchAssets(filterRulesUrl, fallbackUrls); @@ -40,7 +40,7 @@ export function processFilterRulesWithPreload( * @param {string} line */ const lineCb = (line: string) => { - const result = parse(line, MUTABLE_PARSE_LINE_RESULT, allowThirdParty); + const result = parse(line, MUTABLE_PARSE_LINE_RESULT, includeThirdParty); const flag = result[1]; if (flag === ParseType.NotParsed) { @@ -120,7 +120,7 @@ export async function processFilterRules( parentSpan: Span, filterRulesUrl: string, fallbackUrls?: string[] | null, - allowThirdParty = false + includeThirdParty = false ): Promise<{ white: string[], black: string[] }> { const [white, black, warningMessages] = await parentSpan.traceChild(`process filter rules: ${filterRulesUrl}`).traceAsyncFn(async (span) => { const text = await span.traceChildAsync('download', () => fetchAssets(filterRulesUrl, fallbackUrls)); @@ -135,7 +135,7 @@ export async function processFilterRules( * @param {string} line */ const lineCb = (line: string) => { - const result = parse(line, MUTABLE_PARSE_LINE_RESULT, allowThirdParty); + const result = parse(line, MUTABLE_PARSE_LINE_RESULT, includeThirdParty); const flag = result[1]; if (flag === ParseType.NotParsed) { @@ -246,7 +246,7 @@ const kwfilter = createKeywordFilter([ '^popup' ]); -export function parse($line: string, result: [string, ParseType], allowThirdParty: boolean): [hostname: string, flag: ParseType] { +export function parse($line: string, result: [string, ParseType], includeThirdParty: boolean): [hostname: string, flag: ParseType] { if ( // doesn't include !$line.includes('.') // rule with out dot can not be a domain @@ -354,7 +354,7 @@ export function parse($line: string, result: [string, ParseType], allowThirdPart return result; } if (_3p) { - if (allowThirdParty) { + if (includeThirdParty) { result[0] = hostname; result[1] = isIncludeAllSubDomain ? ParseType.BlackIncludeSubdomain : ParseType.BlackAbsolute; return result; @@ -474,7 +474,7 @@ export function parse($line: string, result: [string, ParseType], allowThirdPart * `.1.1.1.l80.js^$third-party` */ if ( - !allowThirdParty + !includeThirdParty && ( line.includes('third-party', indexOfDollar + 1) || line.includes('3p', indexOfDollar + 1)