deploy: 39f3dacf6e0a1459f4f46ccbd1677148a85ab07c

This commit is contained in:
SukkaBot
2022-08-30 18:31:52 +00:00
parent 50f8a9860e
commit 5ce683b9c2
4 changed files with 862 additions and 50 deletions

View File

@@ -148,24 +148,56 @@ const threads = require('os').cpus().length - 1;
// Dedupe domainSets
console.log(`Start deduping! (${previousSize})`);
const toBeRemoved = new Set();
for (const domain of domainSets) {
let isTobeRemoved = false;
for (const keyword of domainKeywordsSet) {
if (domain.includes(keyword) || keyword.includes(domain)) {
isTobeRemoved = true;
break;
}
}
if (!isTobeRemoved) {
for (const suffix of domainSuffixSet) {
if (domain.endsWith(suffix)) {
isTobeRemoved = true;
break;
}
}
}
if (!isTobeRemoved) {
for (const white of filterRuleWhitelistDomainSets) {
if (domain.includes(white) || white.includes(domain)) {
isTobeRemoved = true;
break;
}
}
}
if (isTobeRemoved) {
toBeRemoved.add(domain);
}
}
toBeRemoved.forEach((removed) => {
domainSets.delete(removed)
});
// Dedupe domainSets
console.log(`Deduped ${previousSize - domainSets.size} from black keywords and suffixes!`);
previousSize = domainSets.size;
// Dedupe domainSets
console.log(`Start deduping! (${previousSize})`);
const piscina = new Piscina({
filename: pathResolve(__dirname, 'worker/build-reject-domainset-worker.js'),
workerData: [...domainSets]
});
(await Promise.all([
piscina.run(
{ keywords: domainKeywordsSet, suffixes: domainSuffixSet },
{ name: 'dedupeKeywords' }
),
piscina.run(
{ whiteList: filterRuleWhitelistDomainSets },
{ name: 'whitelisted' }
)
])).forEach(set => {
set.forEach(i => domainSets.delete(i));
});
(await Promise.all(
Array.from(domainSets)
.reduce((result, element, index) => {

View File

@@ -43,39 +43,3 @@ exports.dedupe = ({ chunk }) => {
return outputToBeRemoved;
};
exports.whitelisted = ({ whiteList }) => {
const outputToBeRemoved = new Set();
for (const domain of workerData) {
for (const white of whiteList) {
if (domain.includes(white) || white.includes(domain)) {
outputToBeRemoved.add(domain);
break;
}
}
}
return outputToBeRemoved;
};
exports.dedupeKeywords = ({ keywords, suffixes }) => {
const outputToBeRemoved = new Set();
for (const domain of workerData) {
for (const keyword of keywords) {
if (domain.includes(keyword) || keyword.includes(domain)) {
outputToBeRemoved.add(domain);
break;
}
}
for (const suffix of suffixes) {
if (domain.endsWith(suffix)) {
outputToBeRemoved.add(domain);
break;
}
}
}
return outputToBeRemoved;
}

File diff suppressed because it is too large Load Diff

View File

@@ -24,7 +24,7 @@
<main class="container">
<h1>Sukka Surge Ruleset Server</h1>
<p>Made by <a href="https://skk.moe">Sukka</a> | <a href="https://github.com/SukkaW/Surge/">Source @ GitHub</a> | Licensed under <a href="https://github.com/SukkaW/Surge/blob/master/LICENSE" target="_blank">AGPL-3.0</a></p>
<p>Last Updated: 2022-08-30T18:09:52.846Z</p>
<p>Last Updated: 2022-08-30T18:31:51.584Z</p>
<hr>
<br>
<ul>