diff --git a/Build/build-common.ts b/Build/build-common.ts index 412ec8f1..4e4b2d49 100644 --- a/Build/build-common.ts +++ b/Build/build-common.ts @@ -9,6 +9,7 @@ import { domainDeduper } from './lib/domain-deduper'; import type { Span } from './trace'; import { task } from './trace'; import { SHARED_DESCRIPTION } from './lib/constants'; +import picocolors from 'picocolors'; const MAGIC_COMMAND_SKIP = '# $ custom_build_script'; const MAGIC_COMMAND_TITLE = '# $ meta_title '; @@ -44,6 +45,8 @@ export const buildCommon = task(import.meta.path, async (span) => { promises.push(transformRuleset(span, entry.fullpath(), relativePath)); continue; } + + console.error(picocolors.red(`[build-comman] Unknown file: ${relativePath}`)); } return Promise.all(promises); diff --git a/Build/build-deprecate-files.ts b/Build/build-deprecate-files.ts new file mode 100644 index 00000000..af975b56 --- /dev/null +++ b/Build/build-deprecate-files.ts @@ -0,0 +1,44 @@ +import { compareAndWriteFile } from './lib/create-file'; +import { task } from './trace'; +import path from 'path'; + +const DEPRECATED_FILES = [ + ['non_ip/global_plus', 'This file has been merged with non_ip/global'], + ['domainset/reject_sukka', 'This file has been merged with domainset/reject'], + ['domainset/reject_phishing', 'This file has been merged with domainset/reject'] +]; + +const outputSurgeDir = path.resolve(import.meta.dir, '../List'); +const outputClashDir = path.resolve(import.meta.dir, '../Clash'); + +export const buildDeprecateFiles = task(import.meta.path, (span) => span.traceChildAsync('create deprecated files', async (childSpan) => { + const promises: Array> = []; + + for (const [filePath, description] of DEPRECATED_FILES) { + const surgeFile = path.resolve(outputSurgeDir, `${filePath}.conf`); + const clashFile = path.resolve(outputClashDir, `${filePath}.txt`); + + console.log({ + surgeFile, + clashFile + }); + + const content = [ + '#########################################', + '# Sukka\'s Ruleset - Deprecated', + `# ${description}`, + '################## EOF ##################' + ]; + + promises.push( + compareAndWriteFile(childSpan, content, surgeFile), + compareAndWriteFile(childSpan, content, clashFile) + ); + } + + return Promise.all(promises); +})); + +if (import.meta.main) { + buildDeprecateFiles(); +} diff --git a/Build/build-internal-cdn-rules.ts b/Build/build-internal-cdn-rules.ts index f119141c..ecab8df7 100644 --- a/Build/build-internal-cdn-rules.ts +++ b/Build/build-internal-cdn-rules.ts @@ -41,7 +41,6 @@ export const buildInternalCDNDomains = task(import.meta.path, async (span) => { getGorhillPublicSuffixPromise(), processLocalRuleSet(path.resolve(import.meta.dir, '../List/non_ip/cdn.conf'), proxySet, proxyKeywords), processLocalRuleSet(path.resolve(import.meta.dir, '../List/non_ip/global.conf'), proxySet, proxyKeywords), - processLocalRuleSet(path.resolve(import.meta.dir, '../List/non_ip/global_plus.conf'), proxySet, proxyKeywords), processLocalRuleSet(path.resolve(import.meta.dir, '../List/non_ip/my_proxy.conf'), proxySet, proxyKeywords), processLocalRuleSet(path.resolve(import.meta.dir, '../List/non_ip/my_plus.conf'), proxySet, proxyKeywords), processLocalRuleSet(path.resolve(import.meta.dir, '../List/non_ip/stream.conf'), proxySet, proxyKeywords), diff --git a/Build/build-reject-domainset.ts b/Build/build-reject-domainset.ts index f7d0daef..b127d4c7 100644 --- a/Build/build-reject-domainset.ts +++ b/Build/build-reject-domainset.ts @@ -194,10 +194,6 @@ export const buildRejectDomainSet = task(import.meta.path, async (span) => { span, rejectDomainsStats.map(([domain, count]) => `${domain}${' '.repeat(100 - domain.length)}${count}`), path.resolve(import.meta.dir, '../List/internal/reject-stats.txt') - ), - Bun.write( - path.resolve(import.meta.dir, '../List/domainset/reject_sukka.conf'), - '# The file has been deprecated, its content has been merged into the main `reject` domainset.\n' ) ]); }); diff --git a/Build/build-sspanel-appprofile.ts b/Build/build-sspanel-appprofile.ts index d1ec457e..0f479bc4 100644 --- a/Build/build-sspanel-appprofile.ts +++ b/Build/build-sspanel-appprofile.ts @@ -38,7 +38,6 @@ export const buildSSPanelUIMAppProfile = task(import.meta.path, async (span) => streamDomains, steamDomains, globalDomains, - globalPlusDomains, telegramDomains, lanDomains, domesticCidrs, @@ -61,7 +60,6 @@ export const buildSSPanelUIMAppProfile = task(import.meta.path, async (span) => readFileIntoProcessedArray(path.resolve(import.meta.dir, '../Source/domainset/steam.conf')).then(surgeDomainsetToClashRuleset), // global - domains readFileIntoProcessedArray(path.resolve(import.meta.dir, '../Source/non_ip/global.conf')).then(surgeRulesetToClashClassicalTextRuleset), - readFileIntoProcessedArray(path.resolve(import.meta.dir, '../Source/non_ip/global_plus.conf')).then(surgeRulesetToClashClassicalTextRuleset), readFileIntoProcessedArray(path.resolve(import.meta.dir, '../Source/non_ip/telegram.conf')).then(surgeRulesetToClashClassicalTextRuleset), // lan - domains readFileIntoProcessedArray(path.resolve(import.meta.dir, '../Source/non_ip/lan.conf')), @@ -99,7 +97,6 @@ export const buildSSPanelUIMAppProfile = task(import.meta.path, async (span) => steamDomains, [ ...globalDomains, - ...globalPlusDomains, ...telegramDomains ], lanDomains, diff --git a/Build/index.ts b/Build/index.ts index bc893d56..d9145888 100644 --- a/Build/index.ts +++ b/Build/index.ts @@ -27,6 +27,7 @@ import { downloadMockAssets } from './download-mock-assets'; import { buildCloudMounterRules } from './build-cloudmounter-rules'; import { createSpan, printTraceResult } from './trace'; +import { buildDeprecateFiles } from './build-deprecate-files'; (async () => { console.log('Bun version:', Bun.version, Bun.revision); @@ -71,6 +72,8 @@ import { createSpan, printTraceResult } from './trace'; const buildCloudMounterRulesPromise = downloadPreviousBuildPromise.then(() => buildCloudMounterRules(rootSpan)); + const buildDeprecateFilesPromise = downloadPreviousBuildPromise.then(() => buildDeprecateFiles(rootSpan)); + await Promise.all([ downloadPreviousBuildPromise, buildCommonPromise, @@ -92,6 +95,7 @@ import { createSpan, printTraceResult } from './trace'; buildMicrosoftCdnPromise, buildSSPanelUIMAppProfilePromise, buildCloudMounterRulesPromise, + buildDeprecateFilesPromise, downloadMockAssetsPromise ]); diff --git a/Build/validate-gfwlist.ts b/Build/validate-gfwlist.ts index 6eb8f87b..a6a875e2 100644 --- a/Build/validate-gfwlist.ts +++ b/Build/validate-gfwlist.ts @@ -90,7 +90,6 @@ export const parseGfwList = async () => { await Promise.all([ runAgainstRuleset(path.resolve(import.meta.dir, '../Source/non_ip/global.conf')), - runAgainstRuleset(path.resolve(import.meta.dir, '../Source/non_ip/global_plus.conf')), runAgainstRuleset(path.resolve(import.meta.dir, '../List/non_ip/stream.conf')) ]); diff --git a/README.md b/README.md index 05ac4109..aad2fe8a 100644 --- a/README.md +++ b/README.md @@ -549,7 +549,6 @@ rules: ```ini RULE-SET,https://ruleset.skk.moe/List/non_ip/domestic.conf,[Replace with your policy] RULE-SET,https://ruleset.skk.moe/List/non_ip/direct.conf,[Replace with your policy] -RULE-SET,https://ruleset.skk.moe/List/non_ip/global_plus.conf,[Replace with your policy] RULE-SET,https://ruleset.skk.moe/List/non_ip/global.conf,PROXY RULE-SET,https://ruleset.skk.moe/List/ip/domestic.conf,[Replace with your policy] ``` @@ -572,13 +571,6 @@ rule-providers: interval: 43200 url: https://ruleset.skk.moe/Clash/non_ip/direct.txt path: ./sukkaw_ruleset/direct_non_ip.txt - global_plus_non_ip: - type: http - behavior: classical - format: text - interval: 43200 - url: https://ruleset.skk.moe/Clash/non_ip/global_plus.txt - path: ./sukkaw_ruleset/global_plus_non_ip.txt global_non_ip: type: http behavior: classical @@ -597,7 +589,6 @@ rule-providers: rules: - RULE-SET,domestic_non_ip,[Replace with your policy] - RULE-SET,direct_non_ip,[Replace with your policy] - - RULE-SET,global_plus_non_ip,[Replace with your policy] - RULE-SET,global_non_ip,[Replace with your policy] - RULE-SET,domestic_ip,[Replace with your policy] ``` diff --git a/Source/domainset/reject_phishing.conf b/Source/domainset/reject_phishing.conf deleted file mode 100644 index 2e651b6a..00000000 --- a/Source/domainset/reject_phishing.conf +++ /dev/null @@ -1,2 +0,0 @@ -# $ meta_title Sukka's Ruleset - Deprecated -# $ meta_description The file has been deprecated, its content has been merged into the main `reject` domainset. diff --git a/Source/non_ip/global_plus.conf b/Source/non_ip/global_plus.conf deleted file mode 100644 index 01ee37ee..00000000 --- a/Source/non_ip/global_plus.conf +++ /dev/null @@ -1,2 +0,0 @@ -# $ meta_title Sukka's Ruleset - Deprecated -# $ meta_description This file has been merged with global.conf