//Proxylist updates for Zippyshare.com
//Trigger: Interval (e.g. 900000ms)
//disablePermissionChecks();
//setNotifyOnException(false);
var old_proxylist = [];
var new_proxylist = "";
var max_response_time = 1.5; //1.5 or higher, 1 is too low
var proxy_test = 1; //1=ON,0=OFF
var max_proxies = 0; //0=Unlimited
var old_proxylist = [];
var new_proxylist = "";
var standard_filter = " "filter" : {"type" : "WHITELIST","entries" : [ "zippyshare.com","1fichier.com","uptobox.com"]},"; //"filter" : null,
var add_proxy = JSON.parse("{"proxy" : {"username" : null,"password" : null,"port" : 80,"address" : null,"type" : "NONE","preferNativeImplementation" : false,"resolveHostName" : false,"connectMethodPrefered" : false},"rangeRequestsSupported" : true," + standard_filter + ""pac" : false,"reconnectSupported" : false,"enabled" : true}");
var filter = new Array();
var settings = "org.jdownloader.updatev2.InternetConnectionSettings";
var storage = "cfg/org.jdownloader.settings.InternetConnectionSettings";
old_proxylist = callAPI("config", "get", settings, storage, "customproxylist");
var html = getPage("https" + "://raw.**External links are only visible to Support Staff**githubusercontent.com/fate0/proxylist/master/proxy.list");
var lines = html.split("\n");
for (var key in old_proxylist) {
if (old_proxylist.hasOwnProperty(key)) {
if (old_proxylist[key].proxy.type == "DIRECT" || old_proxylist[key].proxy.type == "NONE" || old_proxylist[key].enabled == false) {
if (new_proxylist == "") {
new_proxylist += JSON.stringify(old_proxylist[key]);
} else {
new_proxylist += "," + JSON.stringify(old_proxylist[key]);
}
}
}
}
var myBr = getBrowser();
for (var i = 0; i < lines.length; ++i) {
if (IsValidJSONString(lines[i])) {
var temp_JSON = JSON.parse(lines[i]);
var add_proxy_new = add_proxy;
add_proxy_new.proxy.type = temp_JSON.type.toUpperCase();
add_proxy_new.proxy.port = temp_JSON.port;
add_proxy_new.proxy.address = temp_JSON.host;
if (temp_JSON.country == "DE" || temp_JSON.country == "GB" || temp_JSON.country == "FR" || temp_JSON.response_time > max_response_time) {
continue; //skip proxy
}
var errorcheck = 0;
if (proxy_test == 1) {
myBr.setProxy(temp_JSON.type + "://" + temp_JSON.host + ":" + temp_JSON.port);
try {
myBr.getPage("http://www.google.de/");
} catch (e) {
errorcheck = 1;
}
}
if (errorcheck == 0 && proxy_test == 1 || proxy_test != 1) {
if (add_proxy_new.proxy.address && filter[temp_JSON.host] != true) {
filter[temp_JSON.host] = true;
if (new_proxylist == "") {
new_proxylist += JSON.stringify(add_proxy_new);
} else {
new_proxylist += "," + JSON.stringify(add_proxy_new);
}
}
}
}
if (i >= max_proxies && max_proxies > 0) {
break;
}
}
callAPI("config", "set", settings, storage, "customproxylist", "[" + new_proxylist + "]");
function IsValidJSONString(str) {
if (typeof str !== "string") {
return false;
}
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}