Chore: respects browser cache TTL response header

This commit is contained in:
SukkaW 2025-01-11 22:58:36 +08:00
parent 6895c7ee02
commit aa94118cd6
2 changed files with 76 additions and 83 deletions

View File

@ -1,15 +1,13 @@
import { TTL } from '../lib/cache-filesystem';
export const DEBUG_DOMAIN_TO_FIND: string | null = null; // example.com | null export const DEBUG_DOMAIN_TO_FIND: string | null = null; // example.com | null
type HostsSource = [main: string, mirrors: string[] | null, includeAllSubDomain: boolean, ttl: number]; type HostsSource = [main: string, mirrors: string[] | null, includeAllSubDomain: boolean];
export const HOSTS: HostsSource[] = [ export const HOSTS: HostsSource[] = [
// have not been updated for more than a year, so we set a 14 days cache ttl // 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, TTL.TWO_WEEKS()], ['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, TTL.ONE_WEEK()], ['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, TTL.ONE_WEEK()], ['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, TTL.THREE_HOURS()] ['https://raw.githubusercontent.com/durablenapkin/block/master/tvstream.txt', null, true]
]; ];
export const HOSTS_EXTRA: HostsSource[] = [ export const HOSTS_EXTRA: HostsSource[] = [
@ -17,18 +15,18 @@ export const HOSTS_EXTRA: HostsSource[] = [
[ [
'https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext', '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'], ['https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/thirdparties/pgl.yoyo.org/as/serverlist'],
true, true
TTL.THREE_HOURS()
], ],
// Dan Pollock's hosts file, 0.0.0.0 version is 30 KiB smaller // Dan Pollock's hosts file, 0.0.0.0 version is 30 KiB smaller
[ [
'https://someonewhocares.org/hosts/zero/hosts', 'https://someonewhocares.org/hosts/zero/hosts',
['https://proxy.cdn.skk.moe/?https://someonewhocares.org/hosts/zero/hosts'], ['https://proxy.cdn.skk.moe/?https://someonewhocares.org/hosts/zero/hosts'],
true, true
TTL.THREE_HOURS()
], ],
// ad-wars is not actively maintained, so we set a 7 days cache ttl // ad-wars is not actively maintained, so we set a 7 days cache ttl
['https://raw.githubusercontent.com/jdlingyu/ad-wars/master/hosts', null, false, TTL.TWO_WEEKS()] ['https://raw.githubusercontent.com/jdlingyu/ad-wars/master/hosts', null, false]
]; ];
export const DOMAIN_LISTS: HostsSource[] = [ export const DOMAIN_LISTS: HostsSource[] = [
@ -40,7 +38,7 @@ export const DOMAIN_LISTS: HostsSource[] = [
// 'https://proxy.cdn.skk.moe/?https://zerodot1.gitlab.io/CoinBlockerLists/list_browser.txt' // 'https://proxy.cdn.skk.moe/?https://zerodot1.gitlab.io/CoinBlockerLists/list_browser.txt'
// ], // ],
// true, // true,
// TTL.TWO_WEEKS() //
// ] // ]
]; ];
@ -51,7 +49,7 @@ export const DOMAIN_LISTS_EXTRA: HostsSource[] = [
// 'https://zerodot1.gitlab.io/CoinBlockerLists/list.txt', // 'https://zerodot1.gitlab.io/CoinBlockerLists/list.txt',
// ['https://proxy.cdn.skk.moe/?https://zerodot1.gitlab.io/CoinBlockerLists/list.txt'], // ['https://proxy.cdn.skk.moe/?https://zerodot1.gitlab.io/CoinBlockerLists/list.txt'],
// true, // true,
// TTL.TWO_WEEKS() //
// ], // ],
// BarbBlock // BarbBlock
@ -59,19 +57,19 @@ export const DOMAIN_LISTS_EXTRA: HostsSource[] = [
[ [
'https://paulgb.github.io/BarbBlock/blacklists/domain-list.txt', 'https://paulgb.github.io/BarbBlock/blacklists/domain-list.txt',
['https://raw.githubusercontent.com/paulgb/BarbBlock/refs/heads/main/blacklists/domain-list.txt'], ['https://raw.githubusercontent.com/paulgb/BarbBlock/refs/heads/main/blacklists/domain-list.txt'],
true, true
TTL.TWO_WEEKS()
], ],
// DigitalSide Threat-Intel - OSINT Hub // DigitalSide Threat-Intel - OSINT Hub
// Update once per day // Update once per day
['https://osint.digitalside.it/Threat-Intel/lists/latestdomains.txt', [], true, TTL.ONE_DAY()], ['https://osint.digitalside.it/Threat-Intel/lists/latestdomains.txt', [], true],
// AdGuard CNAME Filter Combined // AdGuard CNAME Filter Combined
// Update on a 7 days basis, so we add a 3 hours cache ttl // Update on a 7 days basis, so we add a 3 hours cache ttl
['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_ads_justdomains.txt', [], true, TTL.THREE_DAYS()], ['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_ads_justdomains.txt', [], true],
['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_trackers_justdomains.txt', [], true, TTL.THREE_DAYS()], ['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_trackers_justdomains.txt', [], true],
['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_clickthroughs_justdomains.txt', [], true, TTL.THREE_DAYS()], ['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_clickthroughs_justdomains.txt', [], true],
['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_microsites_justdomains.txt', [], true, TTL.THREE_DAYS()], ['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_microsites_justdomains.txt', [], true],
// ['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_mail_trackers_justdomains.txt', [], true, TTL.THREE_DAYS()], // ['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_mail_trackers_justdomains.txt', [], true],
// Curben's PUP Domains Blocklist // Curben's PUP Domains Blocklist
// The PUP filter has paused the update since 2023-05, so we set a 14 days cache ttl, and move it to extra // The PUP filter has paused the update since 2023-05, so we set a 14 days cache ttl, and move it to extra
// [ // [
@ -83,7 +81,7 @@ export const DOMAIN_LISTS_EXTRA: HostsSource[] = [
// // 'https://curbengh.github.io/pup-filter/pup-filter-domains.txt', // // 'https://curbengh.github.io/pup-filter/pup-filter-domains.txt',
// // 'https://malware-filter.pages.dev/pup-filter-domains.txt' // // 'https://malware-filter.pages.dev/pup-filter-domains.txt'
// ], // ],
// true, TTL.TWO_WEEKS() // true
// ], // ],
// Curben's UrlHaus Malicious URL Blocklist // Curben's UrlHaus Malicious URL Blocklist
[ [
@ -94,15 +92,15 @@ export const DOMAIN_LISTS_EXTRA: HostsSource[] = [
'https://malware-filter.gitlab.io/malware-filter/urlhaus-filter-domains.txt', 'https://malware-filter.gitlab.io/malware-filter/urlhaus-filter-domains.txt',
'https://curbengh.github.io/urlhaus-filter/urlhaus-filter-domains.txt' 'https://curbengh.github.io/urlhaus-filter/urlhaus-filter-domains.txt'
], ],
true, TTL.THREE_HOURS() true
], ],
// Spam404 // Spam404
// Not actively maintained, let's use a 10 days cache ttl // Not actively maintained, let's use a 10 days cache ttl
['https://raw.githubusercontent.com/Spam404/lists/master/main-blacklist.txt', [], true, TTL.TEN_DAYS()] ['https://raw.githubusercontent.com/Spam404/lists/master/main-blacklist.txt', [], true]
]; ];
export const PHISHING_HOSTS_EXTRA: HostsSource[] = [ export const PHISHING_HOSTS_EXTRA: HostsSource[] = [
['https://raw.githubusercontent.com/durablenapkin/scamblocklist/master/hosts.txt', [], true, TTL.THREE_DAYS()] ['https://raw.githubusercontent.com/durablenapkin/scamblocklist/master/hosts.txt', [], true]
]; ];
export const PHISHING_DOMAIN_LISTS_EXTRA: HostsSource[] = [ export const PHISHING_DOMAIN_LISTS_EXTRA: HostsSource[] = [
@ -114,20 +112,20 @@ export const PHISHING_DOMAIN_LISTS_EXTRA: HostsSource[] = [
'https://malware-filter.gitlab.io/malware-filter/phishing-filter-domains.txt', 'https://malware-filter.gitlab.io/malware-filter/phishing-filter-domains.txt',
'https://curbengh.github.io/phishing-filter/phishing-filter-domains.txt' 'https://curbengh.github.io/phishing-filter/phishing-filter-domains.txt'
], ],
true, TTL.THREE_HOURS() true
], ],
[ [
'https://phishing.army/download/phishing_army_blocklist.txt', 'https://phishing.army/download/phishing_army_blocklist.txt',
[], [],
true, TTL.THREE_HOURS() true
] ]
]; ];
type AdGuardFilterSource = [main: string, mirrors: string[] | null, ttl: number, allowThirdParty?: boolean]; type AdGuardFilterSource = [main: string, mirrors: string[] | null, allowThirdParty?: boolean];
export const ADGUARD_FILTERS: AdGuardFilterSource[] = [ export const ADGUARD_FILTERS: AdGuardFilterSource[] = [
// no coin list adguard list is more maintained than its hosts // no coin list adguard list is more maintained than its hosts
['https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/nocoin.txt', [], TTL.TWO_WEEKS()], ['https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/nocoin.txt', []],
// EasyList // EasyList
[ [
'https://easylist.to/easylist/easylist.txt', 'https://easylist.to/easylist/easylist.txt',
@ -138,8 +136,8 @@ export const ADGUARD_FILTERS: AdGuardFilterSource[] = [
'https://ublockorigin.pages.dev/thirdparties/easylist.txt', 'https://ublockorigin.pages.dev/thirdparties/easylist.txt',
'https://raw.githubusercontent.com/easylist/easylist/gh-pages/easylist.txt', 'https://raw.githubusercontent.com/easylist/easylist/gh-pages/easylist.txt',
'https://filters.adtidy.org/extension/ublock/filters/101_optimized.txt' 'https://filters.adtidy.org/extension/ublock/filters/101_optimized.txt'
], ]
TTL.TWLVE_HOURS()
], ],
// EasyPrivacy // EasyPrivacy
[ [
@ -151,8 +149,8 @@ export const ADGUARD_FILTERS: AdGuardFilterSource[] = [
'https://ublockorigin.pages.dev/thirdparties/easyprivacy.txt', 'https://ublockorigin.pages.dev/thirdparties/easyprivacy.txt',
'https://raw.githubusercontent.com/easylist/easylist/gh-pages/easyprivacy.txt', 'https://raw.githubusercontent.com/easylist/easylist/gh-pages/easyprivacy.txt',
'https://filters.adtidy.org/extension/ublock/filters/118_optimized.txt' 'https://filters.adtidy.org/extension/ublock/filters/118_optimized.txt'
], ]
TTL.TWLVE_HOURS()
], ],
// AdGuard DNS Filter // AdGuard DNS Filter
[ [
@ -160,52 +158,52 @@ export const ADGUARD_FILTERS: AdGuardFilterSource[] = [
[ [
'https://filters.adtidy.org/extension/ublock/filters/15_optimized.txt', 'https://filters.adtidy.org/extension/ublock/filters/15_optimized.txt',
'https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt' 'https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt'
], ]
TTL.TWLVE_HOURS()
], ],
// AdGuard Base Filter // AdGuard Base Filter
[ [
'https://filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt', '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'], ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt']
TTL.THREE_HOURS()
], ],
// AdGuard Mobile AD // AdGuard Mobile AD
[ [
'https://filters.adtidy.org/extension/ublock/filters/11_optimized.txt', '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'], ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt']
TTL.THREE_HOURS()
], ],
// AdGuard Tracking Protection // AdGuard Tracking Protection
[ [
'https://filters.adtidy.org/extension/ublock/filters/3_optimized.txt', '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'], ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/3_optimized.txt']
TTL.THREE_HOURS()
], ],
// AdGuard Chinese filter (EasyList China + AdGuard Chinese filter) // AdGuard Chinese filter (EasyList China + AdGuard Chinese filter)
[ [
'https://filters.adtidy.org/extension/ublock/filters/224_optimized.txt', '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'], ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/224_optimized.txt']
TTL.THREE_HOURS()
], ],
// GameConsoleAdblockList // GameConsoleAdblockList
// Update almost once per 1 to 3 months, let's set a 10 days cache ttl // Update almost once per 1 to 3 months, let's set a 10 days cache ttl
['https://raw.githubusercontent.com/DandelionSprout/adfilt/master/GameConsoleAdblockList.txt', null, TTL.TEN_DAYS()], ['https://raw.githubusercontent.com/DandelionSprout/adfilt/master/GameConsoleAdblockList.txt', null],
// PiHoleBlocklist // PiHoleBlocklist
// Update almost once per 3 months, let's set a 10 days cache ttl // Update almost once per 3 months, let's set a 10 days cache ttl
[ [
'https://perflyst.github.io/PiHoleBlocklist/SmartTV-AGH.txt', 'https://perflyst.github.io/PiHoleBlocklist/SmartTV-AGH.txt',
[ [
'https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV-AGH.txt' 'https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV-AGH.txt'
], ]
TTL.TEN_DAYS()
], ],
// uBlock Origin Unbreak // uBlock Origin Unbreak
[ [
'https://ublockorigin.github.io/uAssetsCDN/filters/unbreak.min.txt', 'https://ublockorigin.github.io/uAssetsCDN/filters/unbreak.min.txt',
[ [
'https://ublockorigin.pages.dev/filters/unbreak.min.txt' 'https://ublockorigin.pages.dev/filters/unbreak.min.txt'
], ]
TTL.THREE_HOURS()
] ]
]; ];
@ -214,15 +212,15 @@ export const ADGUARD_FILTERS_WHITELIST: AdGuardFilterSource[] = [
'https://adguardteam.github.io/AdGuardSDNSFilter/Filters/exceptions.txt', 'https://adguardteam.github.io/AdGuardSDNSFilter/Filters/exceptions.txt',
[ [
'https://raw.githubusercontent.com/AdguardTeam/AdGuardSDNSFilter/master/Filters/exceptions.txt' 'https://raw.githubusercontent.com/AdguardTeam/AdGuardSDNSFilter/master/Filters/exceptions.txt'
], ]
TTL.THREE_HOURS()
], ],
[ [
'https://adguardteam.github.io/AdGuardSDNSFilter/Filters/exclusions.txt', 'https://adguardteam.github.io/AdGuardSDNSFilter/Filters/exclusions.txt',
[ [
'https://raw.githubusercontent.com/AdguardTeam/AdGuardSDNSFilter/master/Filters/exclusions.txt' 'https://raw.githubusercontent.com/AdguardTeam/AdGuardSDNSFilter/master/Filters/exclusions.txt'
], ]
TTL.THREE_HOURS()
] ]
]; ];
@ -231,53 +229,52 @@ export const ADGUARD_FILTERS_EXTRA: AdGuardFilterSource[] = [
[ [
'https://filters.adtidy.org/extension/ublock/filters/14_optimized.txt', 'https://filters.adtidy.org/extension/ublock/filters/14_optimized.txt',
['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/14_optimized.txt'], ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/14_optimized.txt'],
TTL.THREE_HOURS(),
true true
], ],
// AdGuard Cookie Notices, included in Annoyances filter // AdGuard Cookie Notices, included in Annoyances filter
// ['https://filters.adtidy.org/extension/ublock/filters/18_optimized.txt', null, TTL.THREE_HOURS(), true], // ['https://filters.adtidy.org/extension/ublock/filters/18_optimized.txt', null, true],
// EasyList Germany filter, not even included in extra for now // EasyList Germany filter, not even included in extra for now
// [ // [
// 'https://easylist.to/easylistgermany/easylistgermany.txt', // 'https://easylist.to/easylistgermany/easylistgermany.txt',
// [ // [
// 'https://easylist-downloads.adblockplus.org/easylistgermany.txt' // 'https://easylist-downloads.adblockplus.org/easylistgermany.txt'
// ], // ],
// TTL.TWLVE_HOURS() //
// ], // ],
// AdGuard Japanese filter // AdGuard Japanese filter
[ [
'https://filters.adtidy.org/extension/ublock/filters/7_optimized.txt', 'https://filters.adtidy.org/extension/ublock/filters/7_optimized.txt',
['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/7_optimized.txt'], ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/7_optimized.txt']
TTL.THREE_HOURS()
], ],
// uBlock Origin Filter List // uBlock Origin Filter List
[ [
'https://ublockorigin.github.io/uAssetsCDN/filters/filters.min.txt', 'https://ublockorigin.github.io/uAssetsCDN/filters/filters.min.txt',
[ [
'https://ublockorigin.pages.dev/filters/filters.min.txt' 'https://ublockorigin.pages.dev/filters/filters.min.txt'
], ]
TTL.THREE_HOURS()
], ],
// AdGuard Popup Overlay - included in Annoyances filter // AdGuard Popup Overlay - included in Annoyances filter
// ['https://filters.adtidy.org/extension/ublock/filters/19_optimized.txt', null, TTL.THREE_HOURS(), true], // ['https://filters.adtidy.org/extension/ublock/filters/19_optimized.txt', null, true],
// AdGuard Mobile Banner // AdGuard Mobile Banner
// almost all generic rule // almost all generic rule
// ['https://filters.adtidy.org/extension/ublock/filters/20_optimized.txt', null, TTL.THREE_HOURS()], // ['https://filters.adtidy.org/extension/ublock/filters/20_optimized.txt', null],
// uBlock Origin Badware Risk List // uBlock Origin Badware Risk List
[ [
'https://ublockorigin.github.io/uAssetsCDN/filters/badware.min.txt', 'https://ublockorigin.github.io/uAssetsCDN/filters/badware.min.txt',
[ [
'https://ublockorigin.pages.dev/filters/badware.min.txt' 'https://ublockorigin.pages.dev/filters/badware.min.txt'
], ]
TTL.THREE_HOURS()
], ],
// uBlock Origin Privacy List // uBlock Origin Privacy List
[ [
'https://ublockorigin.github.io/uAssetsCDN/filters/privacy.min.txt', 'https://ublockorigin.github.io/uAssetsCDN/filters/privacy.min.txt',
[ [
'https://ublockorigin.pages.dev/filters/privacy.min.txt' 'https://ublockorigin.pages.dev/filters/privacy.min.txt'
], ]
TTL.THREE_HOURS()
], ],
// uBlock Origin Resource Abuse: merged in uBlock Origin Privacy List // uBlock Origin Resource Abuse: merged in uBlock Origin Privacy List
// [ // [
@ -287,26 +284,26 @@ export const ADGUARD_FILTERS_EXTRA: AdGuardFilterSource[] = [
// uBlock Origin Annoyances (the un-merged of Fanboy Annoyances List) // uBlock Origin Annoyances (the un-merged of Fanboy Annoyances List)
[ [
'https://ublockorigin.github.io/uAssetsCDN/filters/annoyances.min.txt', 'https://ublockorigin.github.io/uAssetsCDN/filters/annoyances.min.txt',
['https://ublockorigin.pages.dev/filters/annoyances.min.txt'], ['https://ublockorigin.pages.dev/filters/annoyances.min.txt']
TTL.THREE_HOURS()
], ],
// EasyList Annoyances // EasyList Annoyances
[ [
'https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-annoyances.txt', 'https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-annoyances.txt',
['https://ublockorigin.pages.dev/thirdparties/easylist-annoyances.txt'], ['https://ublockorigin.pages.dev/thirdparties/easylist-annoyances.txt']
TTL.THREE_HOURS()
], ],
// EasyList - Newsletters // EasyList - Newsletters
[ [
'https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-newsletters.txt', 'https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-newsletters.txt',
['https://ublockorigin.pages.dev/thirdparties/easylist-newsletters.txt'], ['https://ublockorigin.pages.dev/thirdparties/easylist-newsletters.txt']
TTL.THREE_HOURS()
], ],
// EasyList - Notifications // EasyList - Notifications
[ [
'https://ublockorigin.github.io/uAssets/thirdparties/easylist-notifications.txt', 'https://ublockorigin.github.io/uAssets/thirdparties/easylist-notifications.txt',
['https://ublockorigin.pages.dev/thirdparties/easylist-notifications.txt'], ['https://ublockorigin.pages.dev/thirdparties/easylist-notifications.txt']
TTL.THREE_HOURS()
], ],
// Fanboy Cookie Monster (EasyList Cookie List) // Fanboy Cookie Monster (EasyList Cookie List)
[ [
@ -314,14 +311,13 @@ export const ADGUARD_FILTERS_EXTRA: AdGuardFilterSource[] = [
[ [
'https://ublockorigin.pages.dev/thirdparties/easylist-cookies.txt', 'https://ublockorigin.pages.dev/thirdparties/easylist-cookies.txt',
'https://secure.fanboy.co.nz/fanboy-cookiemonster_ubo.txt' 'https://secure.fanboy.co.nz/fanboy-cookiemonster_ubo.txt'
], ]
TTL.TWLVE_HOURS()
], ],
// Dandelion Sprout's Annoyances // Dandelion Sprout's Annoyances
[ [
'https://filters.adtidy.org/extension/ublock/filters/250_optimized.txt', 'https://filters.adtidy.org/extension/ublock/filters/250_optimized.txt',
['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/250_optimized.txt'], ['https://proxy.cdn.skk.moe/?https://filters.adtidy.org/extension/ublock/filters/250_optimized.txt'],
TTL.THREE_HOURS(),
true true
], ],
// Adblock Warning Removal List // Adblock Warning Removal List
@ -330,7 +326,6 @@ export const ADGUARD_FILTERS_EXTRA: AdGuardFilterSource[] = [
[ [
'https://filters.adtidy.org/extension/ublock/filters/207_optimized.txt' 'https://filters.adtidy.org/extension/ublock/filters/207_optimized.txt'
], ],
TTL.TWLVE_HOURS(),
true true
] ]
]; ];

View File

@ -8,7 +8,7 @@ import { DEBUG_DOMAIN_TO_FIND, PHISHING_DOMAIN_LISTS_EXTRA, PHISHING_HOSTS_EXTRA
import { loosTldOptWithPrivateDomains } from '../constants/loose-tldts-opt'; import { loosTldOptWithPrivateDomains } from '../constants/loose-tldts-opt';
import picocolors from 'picocolors'; import picocolors from 'picocolors';
import { createRetrieKeywordFilter as createKeywordFilter } from 'foxts/retrie'; import { createRetrieKeywordFilter as createKeywordFilter } from 'foxts/retrie';
import { createCacheKey, deserializeArray, serializeArray } from './cache-filesystem'; import { deserializeArray, serializeArray } from './cache-filesystem';
import { cache } from './fs-memo'; import { cache } from './fs-memo';
import { isCI } from 'ci-info'; import { isCI } from 'ci-info';
@ -205,16 +205,14 @@ const processPhihsingDomains = cache(function processPhihsingDomains(domainArr:
temporaryBypass: !isCI || DEBUG_DOMAIN_TO_FIND !== null temporaryBypass: !isCI || DEBUG_DOMAIN_TO_FIND !== null
}); });
const cacheKey = createCacheKey(__filename);
export function getPhishingDomains(parentSpan: Span) { export function getPhishingDomains(parentSpan: Span) {
return parentSpan.traceChild('get phishing domains').traceAsyncFn(async (span) => { return parentSpan.traceChild('get phishing domains').traceAsyncFn(async (span) => {
const domainArr = await span.traceChildAsync('download/parse/merge phishing domains', async (curSpan) => { const domainArr = await span.traceChildAsync('download/parse/merge phishing domains', async (curSpan) => {
const domainArr: string[] = []; const domainArr: string[] = [];
await Promise.all([ await Promise.all([
...PHISHING_DOMAIN_LISTS_EXTRA.map(entry => processDomainLists(curSpan, ...entry, cacheKey)), ...PHISHING_DOMAIN_LISTS_EXTRA.map(entry => processDomainLists(curSpan, ...entry)),
...PHISHING_HOSTS_EXTRA.map(entry => processHosts(curSpan, ...entry, cacheKey)) ...PHISHING_HOSTS_EXTRA.map(entry => processHosts(curSpan, ...entry))
]).then(domainGroups => domainGroups.forEach(appendArrayInPlaceCurried(domainArr))); ]).then(domainGroups => domainGroups.forEach(appendArrayInPlaceCurried(domainArr)));
return domainArr; return domainArr;