ソースを参照

Chore: minor changes

SukkaW 1 年間 前
コミット
f57a7dde94
3 ファイル変更18 行追加65 行削除
  1. 11 37
      Build/constants/reject-data-source.ts
  2. 0 21
      Build/lib/misc.ts
  3. 7 7
      Build/lib/parse-filter/filters.ts

+ 11 - 37
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
   [

+ 0 - 21
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 [
     '#########################################',

+ 7 - 7
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)