This commit is contained in:
SukkaW
2021-11-30 05:44:38 +08:00
parent a0168be5fd
commit b3c5c4be84
8 changed files with 536 additions and 87 deletions

View File

@@ -2,16 +2,6 @@ const { simpleGet } = require('./util-http-get');
const { promises: fsPromises } = require('fs');
const { resolve: pathResolve } = require('path');
let cidrTools;
try {
cidrTools = require('cidr-tools');
} catch (e) {
console.log('Dependency "cidr-tools" not found');
console.log('"npm i cidr-tools" then try again!');
process.exit(1);
}
(async () => {
const cidr = (await simpleGet.https('raw.githubusercontent.com', 'misakaio/chnroutes2/master/chnroutes.txt')).split('\n');

View File

@@ -1,56 +0,0 @@
const https = require('https');
let es;
try {
es = require('event-stream');
} catch (e) {
console.log('Dependencies not found');
console.log('"npm i unzip-stream event-stream csv2" then try again!');
console.error(e);
process.exit(1);
}
(async () => {
const dnsmasqconfDomains = await fetchAndParseDnsmasqDomains();
console.log(dnsmasqconfDomains.length);
})();
function fetchAndParseDnsmasqDomains() {
const data = [];
return new Promise((resolve, reject) => {
const req = https.request(
{
hostname: 'raw.githubusercontent.com',
path: '/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf',
method: 'GET',
},
(res) => {
const s = res
.pipe(es.split())
.pipe(es.map(line => {
s.pause();
const domain = line
.replaceAll('server=/', '')
.replaceAll('/114.114.114.114', '');
data.push(domain);
s.resume();
}))
.on('error', reject)
.on('end', () => {
resolve(data);
});
res.on('error', reject);
}
);
req.end();
})
}

View File

@@ -1,7 +1,7 @@
const fs = require('fs');
const { promises: fsPromises } = fs;
const pathFn = require('path');
let table;
const table = require('table');
const PRESET_MITM_HOSTNAMES = [
'*baidu.com',
@@ -23,14 +23,6 @@ const PRESET_MITM_HOSTNAMES = [
'*.prod.hosts.ooklaserver.net'
];
try {
table = require('table');
} catch (e) {
console.log('Dependency "table" not found');
console.log('"npm i table" then try again!');
process.exit(1);
}
(async () => {
const folderListPath = pathFn.resolve(__dirname, '../List/');
const rulesets = await listDir(folderListPath);

View File

@@ -1,19 +1,13 @@
const { simpleGet } = require('./util-http-get');
const { promises: fsPromises } = require('fs');
const { resolve: pathResolve } = require('path');
const { cpus } = require('os');
const threads = Math.max(cpus().length, 12);
const rIPv4 = /((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/;
let Piscina;
try {
Piscina = require('piscina');
} catch (e) {
console.log('Dependencies not found');
console.log('"npm i piscina" then try again!');
console.error(e);
process.exit(1);
}
const Piscina = require('piscina');
/**
* @param {string | URL} domainListsUrl
@@ -250,7 +244,7 @@ async function processFilterRules(filterRulesUrl) {
(await Promise.all(
Array.from(domainSets).reduce((result, element, index) => {
const chunk = index % 12;
const chunk = index % threads;
result[chunk] = result[chunk] ?? [];
result[chunk].push(element);