|
@@ -7,7 +7,7 @@ import { SHARED_DESCRIPTION } from './constants/description';
|
|
|
import { readFileIntoProcessedArray } from './lib/fetch-text-by-line';
|
|
import { readFileIntoProcessedArray } from './lib/fetch-text-by-line';
|
|
|
|
|
|
|
|
import { DomainsetOutput } from './lib/create-file';
|
|
import { DomainsetOutput } from './lib/create-file';
|
|
|
-import { OUTPUT_SURGE_DIR } from './constants/dir';
|
|
|
|
|
|
|
+import { OUTPUT_SURGE_DIR, SOURCE_DIR } from './constants/dir';
|
|
|
import { newQueue } from '@henrygd/queue';
|
|
import { newQueue } from '@henrygd/queue';
|
|
|
|
|
|
|
|
const KEYWORDS = [
|
|
const KEYWORDS = [
|
|
@@ -42,101 +42,6 @@ const KEYWORDS = [
|
|
|
'Turkey'
|
|
'Turkey'
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
-const PREDEFINE_DOMAINS = [
|
|
|
|
|
- // speedtest.net
|
|
|
|
|
- '.speedtest.net',
|
|
|
|
|
- '.speedtestcustom.com',
|
|
|
|
|
- '.ooklaserver.net',
|
|
|
|
|
- '.speed.misaka.one',
|
|
|
|
|
- '.speedtest.rt.ru',
|
|
|
|
|
- '.speedtest.aptg.com.tw',
|
|
|
|
|
- '.speedtest.gslnetworks.com',
|
|
|
|
|
- '.speedtest.jsinfo.net',
|
|
|
|
|
- '.speedtest.i3d.net',
|
|
|
|
|
- '.speedtestkorea.com',
|
|
|
|
|
- '.speedtest.telus.com',
|
|
|
|
|
- '.speedtest.telstra.net',
|
|
|
|
|
- '.speedtest.clouvider.net',
|
|
|
|
|
- '.speedtest.idv.tw',
|
|
|
|
|
- '.speedtest.frontier.com',
|
|
|
|
|
- '.speedtest.orange.fr',
|
|
|
|
|
- '.speedtest.centurylink.net',
|
|
|
|
|
- '.srvr.bell.ca',
|
|
|
|
|
- '.speedtest.contabo.net',
|
|
|
|
|
- 'speedtest.hk.chinamobile.com',
|
|
|
|
|
- 'speedtestbb.hk.chinamobile.com',
|
|
|
|
|
- '.hizinitestet.com',
|
|
|
|
|
- '.linknetspeedtest.net.br',
|
|
|
|
|
- 'speedtest.rit.edu',
|
|
|
|
|
- 'speedtest.ropa.de',
|
|
|
|
|
- 'speedtest.sits.su',
|
|
|
|
|
- 'speedtest.tigo.cr',
|
|
|
|
|
- 'speedtest.upp.com',
|
|
|
|
|
- '.speedtest.pni.tw',
|
|
|
|
|
- '.speed.pfm.gg',
|
|
|
|
|
- '.speedtest.faelix.net',
|
|
|
|
|
- '.speedtest.labixe.net',
|
|
|
|
|
- '.speedtest.warian.net',
|
|
|
|
|
- '.speedtest.starhub.com',
|
|
|
|
|
- '.speedtest.gibir.net.tr',
|
|
|
|
|
- '.speedtest.ozarksgo.net',
|
|
|
|
|
- '.speedtest.exetel.com.au',
|
|
|
|
|
- '.speedtest.sbcglobal.net',
|
|
|
|
|
- '.speedtest.leaptel.com.au',
|
|
|
|
|
- '.speedtest.windstream.net',
|
|
|
|
|
- '.speedtest.vodafone.com.au',
|
|
|
|
|
- '.speedtest.rascom.ru',
|
|
|
|
|
- '.speedtest.dchost.com',
|
|
|
|
|
- '.speedtest.highnet.com',
|
|
|
|
|
- '.speedtest.seattle.wa.limewave.net',
|
|
|
|
|
- '.speedtest.optitel.com.au',
|
|
|
|
|
- '.speednet.net.tr',
|
|
|
|
|
- '.speedtest.angolacables.co.ao',
|
|
|
|
|
- '.ookla-speedtest.fsr.com',
|
|
|
|
|
- '.speedtest.comnet.com.tr',
|
|
|
|
|
- '.speedtest.gslnetworks.com.au',
|
|
|
|
|
- '.test.gslnetworks.com.au',
|
|
|
|
|
- '.speedtest.gslnetworks.com',
|
|
|
|
|
- '.speedtestunonet.com.br',
|
|
|
|
|
- '.speedtest.alagas.net',
|
|
|
|
|
- 'speedtest.surfshark.com',
|
|
|
|
|
- '.speedtest.aarnet.net.au',
|
|
|
|
|
- '.ookla.rcp.net',
|
|
|
|
|
- '.ookla-speedtests.e2ro.com',
|
|
|
|
|
- '.speedtest.com.sg',
|
|
|
|
|
- '.ookla.ddnsgeek.com',
|
|
|
|
|
- '.speedtest.pni.tw',
|
|
|
|
|
- '.speedtest.cmcnetworks.net',
|
|
|
|
|
- '.speedtestwnet.com.br',
|
|
|
|
|
- '.speedtest.moack.co.kr',
|
|
|
|
|
- 'speedtest.mtnetworks.mn',
|
|
|
|
|
- '.speedtest.waicore.com',
|
|
|
|
|
- // Cloudflare
|
|
|
|
|
- '.speed.cloudflare.com',
|
|
|
|
|
- // Wi-Fi Man
|
|
|
|
|
- '.wifiman.com',
|
|
|
|
|
- '.wifiman.me',
|
|
|
|
|
- '.wifiman.ubncloud.com',
|
|
|
|
|
- '.wifiman-stability-test.ubncloud.com',
|
|
|
|
|
- // Fast.com
|
|
|
|
|
- '.fast.com',
|
|
|
|
|
- // MacPaw
|
|
|
|
|
- 'speedtest.macpaw.com',
|
|
|
|
|
- // speedtestmaster
|
|
|
|
|
- '.netspeedtestmaster.com',
|
|
|
|
|
- // Google Search Result of "speedtest", powered by this
|
|
|
|
|
- '.measurement-lab.org',
|
|
|
|
|
- '.measurementlab.net',
|
|
|
|
|
- // Google Fiber legacy speedtest site (new fiber speedtest use speedtestcustom.com)
|
|
|
|
|
- '.speed.googlefiber.net',
|
|
|
|
|
- // librespeed
|
|
|
|
|
- '.backend.librespeed.org',
|
|
|
|
|
- // Apple,
|
|
|
|
|
- 'mensura.cdn-apple.com', // From netQuality command
|
|
|
|
|
- // OpenSpeedtest
|
|
|
|
|
- 'open.cachefly.net' // This is also used for openspeedtest server download
|
|
|
|
|
-];
|
|
|
|
|
-
|
|
|
|
|
const s = newQueue(2);
|
|
const s = newQueue(2);
|
|
|
|
|
|
|
|
const latestTopUserAgentsPromise = $fetch('https://raw.githubusercontent.com/microlinkhq/top-user-agents/master/src/desktop.json')
|
|
const latestTopUserAgentsPromise = $fetch('https://raw.githubusercontent.com/microlinkhq/top-user-agents/master/src/desktop.json')
|
|
@@ -197,12 +102,13 @@ export const buildSpeedtestDomainSet = task(require.main === module, __filename)
|
|
|
'',
|
|
'',
|
|
|
'This file contains common speedtest endpoints.'
|
|
'This file contains common speedtest endpoints.'
|
|
|
])
|
|
])
|
|
|
- .addFromDomainset(PREDEFINE_DOMAINS)
|
|
|
|
|
|
|
+ .addFromDomainset(await readFileIntoProcessedArray(path.resolve(SOURCE_DIR, 'domainset/speedtest.conf')))
|
|
|
.addFromDomainset(await readFileIntoProcessedArray(path.resolve(OUTPUT_SURGE_DIR, 'domainset/speedtest.conf')));
|
|
.addFromDomainset(await readFileIntoProcessedArray(path.resolve(OUTPUT_SURGE_DIR, 'domainset/speedtest.conf')));
|
|
|
|
|
|
|
|
const hostnameGroup = await span.traceChildPromise('get speedtest hosts groups', getSpeedtestHostsGroupsPromise);
|
|
const hostnameGroup = await span.traceChildPromise('get speedtest hosts groups', getSpeedtestHostsGroupsPromise);
|
|
|
|
|
|
|
|
hostnameGroup.forEach(hostname => output.bulkAddDomain(hostname));
|
|
hostnameGroup.forEach(hostname => output.bulkAddDomain(hostname));
|
|
|
|
|
+ await output.done();
|
|
|
|
|
|
|
|
return output.write();
|
|
return output.write();
|
|
|
});
|
|
});
|