2020-08-20 15:54:39 +03:00
|
|
|
const sortProxyServers = (proxyList) => {
|
|
|
|
|
return proxyList.sort((proxyServer1, proxyServer2) => {
|
|
|
|
|
if (proxyServer1 && proxyServer1.timeToFetch && proxyServer2 && proxyServer2.timeToFetch) {
|
|
|
|
|
return proxyServer1.timeToFetch > proxyServer2.timeToFetch ? 1 : -1;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const selectBestProxies = (proxyList) => {
|
|
|
|
|
return proxyList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const cleanProxyServers = (proxyList) => {
|
|
|
|
|
return proxyList.filter(proxyServer => proxyServer && proxyServer.timeToFetch);
|
|
|
|
|
}
|
|
|
|
|
|
2020-08-15 04:12:42 +02:00
|
|
|
const convertProxyListToString = (proxyList) => {
|
|
|
|
|
if (Array.isArray(proxyList)){
|
|
|
|
|
let result = '';
|
|
|
|
|
proxyList.forEach(proxyServer => {
|
2020-08-20 15:54:39 +03:00
|
|
|
result += `${proxyServer.address}\r\n`;
|
2020-08-15 04:12:42 +02:00
|
|
|
});
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
console.log('[ERROR](convertProxyListToString) Proxy list is not an array')
|
|
|
|
|
console.log(proxyList);
|
|
|
|
|
return '';
|
|
|
|
|
}
|
|
|
|
|
|
2020-08-20 15:54:39 +03:00
|
|
|
const timeoutPromise = (timeout) => {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
setTimeout(() => { reject('Timeout') }, timeout);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.sortProxyServers = sortProxyServers;
|
|
|
|
|
exports.selectBestProxies = selectBestProxies;
|
|
|
|
|
exports.cleanProxyServers = cleanProxyServers;
|
|
|
|
|
exports.convertProxyListToString = convertProxyListToString;
|
|
|
|
|
exports.timeoutPromise = timeoutPromise;
|