Chore: new sorting for reject hosts

This commit is contained in:
SukkaW
2023-03-12 14:57:40 +08:00
parent bb3d3cfdf1
commit a00f05a989

View File

@@ -6,6 +6,7 @@ const { processHosts, processFilterRules, preprocessFullDomainSetBeforeUsedAsWor
const cpuCount = require('os').cpus().length; const cpuCount = require('os').cpus().length;
const { isCI } = require('ci-info'); const { isCI } = require('ci-info');
const threads = isCI ? cpuCount : cpuCount / 2; const threads = isCI ? cpuCount : cpuCount / 2;
const { getDomain } = require('tldts');
const { HOSTS, ADGUARD_FILTERS, PREDEFINED_WHITELIST, PREDEFINED_ENFORCED_BACKLIST } = require('./lib/reject-data-source'); const { HOSTS, ADGUARD_FILTERS, PREDEFINED_WHITELIST, PREDEFINED_ENFORCED_BACKLIST } = require('./lib/reject-data-source');
const { withBannerArray } = require('./lib/with-banner'); const { withBannerArray } = require('./lib/with-banner');
@@ -249,6 +250,24 @@ const filterRuleWhitelistDomainSets = new Set(PREDEFINED_WHITELIST);
console.time('* Write reject.conf'); console.time('* Write reject.conf');
const getDomainOpt = { allowPrivateDomains: true };
const sortedDomainSets = [...domainSets]
.map((v) => {
return { v, domain: getDomain(v, getDomainOpt)?.toLowerCase() || v };
})
.sort((a, b) => {
if (a.domain > b.domain) {
return 1;
}
if (a.domain < b.domain) {
return -1;
}
return 0;
})
.map(({ v }) => {
return v;
});
await compareAndWriteFile( await compareAndWriteFile(
withBannerArray( withBannerArray(
'Sukka\'s Surge Rules - Reject Base', 'Sukka\'s Surge Rules - Reject Base',
@@ -264,7 +283,7 @@ const filterRuleWhitelistDomainSets = new Set(PREDEFINED_WHITELIST);
...ADGUARD_FILTERS.map(filter => ` - ${Array.isArray(filter) ? filter[0] : filter}`), ...ADGUARD_FILTERS.map(filter => ` - ${Array.isArray(filter) ? filter[0] : filter}`),
], ],
new Date(), new Date(),
[...domainSets].sort() sortedDomainSets
), ),
pathResolve(__dirname, '../List/domainset/reject.conf') pathResolve(__dirname, '../List/domainset/reject.conf')
); );