mirror of
https://github.com/anticensority/runet-censorship-bypass.git
synced 2024-11-24 02:13:43 +03:00
Fix notifications for a naked ip as proxy, fix snail position, amend pac kitchen
This commit is contained in:
parent
87b78e0896
commit
76cf8fcd35
|
@ -35,6 +35,7 @@
|
||||||
},
|
},
|
||||||
ifProxyOrDie: {
|
ifProxyOrDie: {
|
||||||
dflt: true,
|
dflt: true,
|
||||||
|
ifDfltMods: true,
|
||||||
label: 'проксируй или умри!',
|
label: 'проксируй или умри!',
|
||||||
desc: 'Запрещает соединение с сайтами напрямую без прокси в случаях, когда все прокси отказывают. Например, если все ВАШИ прокси вдруг недоступны, то добавленные вручную сайты открываться не будут совсем.',
|
desc: 'Запрещает соединение с сайтами напрямую без прокси в случаях, когда все прокси отказывают. Например, если все ВАШИ прокси вдруг недоступны, то добавленные вручную сайты открываться не будут совсем.',
|
||||||
index: 3,
|
index: 3,
|
||||||
|
@ -109,17 +110,23 @@
|
||||||
|
|
||||||
const createPacModifiers = function createPacModifiers(mods = {}) {
|
const createPacModifiers = function createPacModifiers(mods = {}) {
|
||||||
|
|
||||||
const defaults = getDefaults();
|
mods = mods || {}; // null?
|
||||||
const ifAllDefaults = Object.keys(defaults)
|
const ifNoMods = Object.keys(configs)
|
||||||
.every(
|
.every((dProp) => {
|
||||||
(dProp) => !(dProp in mods)
|
|
||||||
|| Boolean(defaults[dProp]) === Boolean(mods[dProp])
|
const ifDflt = (
|
||||||
|
!(dProp in mods) ||
|
||||||
|
Boolean(configs[dProp].dflt) === Boolean(mods[dProp])
|
||||||
);
|
);
|
||||||
|
const ifMods = configs[dProp].ifDfltMods;
|
||||||
|
return ifDflt ? !ifMods : ifMods;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
console.log('Input mods:', mods);
|
console.log('Input mods:', mods);
|
||||||
const self = {};
|
const self = {};
|
||||||
Object.assign(self, defaults, mods);
|
Object.assign(self, getDefaults(), mods);
|
||||||
self.ifNoMods = ifAllDefaults ? true : false;
|
self.ifNoMods = ifNoMods;
|
||||||
|
|
||||||
let customProxyArray = [];
|
let customProxyArray = [];
|
||||||
if (self.customProxyStringRaw) {
|
if (self.customProxyStringRaw) {
|
||||||
|
@ -136,6 +143,7 @@
|
||||||
customProxyArray.push('SOCKS5 localhost:9050', 'SOCKS5 localhost:9150');
|
customProxyArray.push('SOCKS5 localhost:9050', 'SOCKS5 localhost:9150');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.filteredCustomsString = '';
|
||||||
if (customProxyArray.length) {
|
if (customProxyArray.length) {
|
||||||
self.customProxyArray = customProxyArray;
|
self.customProxyArray = customProxyArray;
|
||||||
self.filteredCustomsString = customProxyArray.join('; ');
|
self.filteredCustomsString = customProxyArray.join('; ');
|
||||||
|
@ -144,7 +152,6 @@
|
||||||
return [new TypeError('Нет ни одного прокси, удовлетворяющего вашим требованиям!')];
|
return [new TypeError('Нет ни одного прокси, удовлетворяющего вашим требованиям!')];
|
||||||
}
|
}
|
||||||
self.customProxyArray = false;
|
self.customProxyArray = false;
|
||||||
self.filteredCustomsString = '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self.included = self.excluded = undefined;
|
self.included = self.excluded = undefined;
|
||||||
|
@ -210,7 +217,7 @@
|
||||||
const ifExcluded = pacMods.excluded && pacMods.excluded.length;
|
const ifExcluded = pacMods.excluded && pacMods.excluded.length;
|
||||||
const ifExceptions = ifIncluded || ifExcluded;
|
const ifExceptions = ifIncluded || ifExcluded;
|
||||||
|
|
||||||
if (ifExceptions) {
|
if (ifExceptions && pacMods.filteredCustomsString) {
|
||||||
res += `
|
res += `
|
||||||
/* EXCEPTIONS START */
|
/* EXCEPTIONS START */
|
||||||
const dotHost = '.' + host;
|
const dotHost = '.' + host;
|
||||||
|
|
|
@ -474,6 +474,9 @@
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
console.log('Keep cooked...');
|
||||||
|
await new Promise((resolve) => window.apis.pacKitchen.keepCookedNowAsync(resolve));
|
||||||
|
|
||||||
console.log('Storage on init:', oldStorage);
|
console.log('Storage on init:', oldStorage);
|
||||||
antiCensorRu.ifFirstInstall = Object.keys(oldStorage).length === 0;
|
antiCensorRu.ifFirstInstall = Object.keys(oldStorage).length === 0;
|
||||||
|
|
||||||
|
@ -534,14 +537,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
antiCensorRu.pushToStorageAsync(() =>
|
antiCensorRu.pushToStorageAsync(() => {
|
||||||
window.apis.pacKitchen.keepCookedNowAsync(() => {
|
|
||||||
|
|
||||||
console.log('Extension updated.');
|
console.log('Extension updated.');
|
||||||
resolve();
|
resolve();
|
||||||
|
|
||||||
})
|
});
|
||||||
);
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -227,20 +227,38 @@
|
||||||
|
|
||||||
_addAsync(hostStr, cb = mandatory()) {
|
_addAsync(hostStr, cb = mandatory()) {
|
||||||
|
|
||||||
|
new Promise((resolveIps, reject) => {
|
||||||
|
|
||||||
|
const ipm = _test.ipv4v6(hostStr);
|
||||||
|
if (ipm.ifMatched) {
|
||||||
|
return resolveIps([hostStr]);
|
||||||
|
}
|
||||||
|
|
||||||
getIpsFor(hostStr, (err, ips, ...warns) => {
|
getIpsFor(hostStr, (err, ips, ...warns) => {
|
||||||
|
|
||||||
console.log('Got IPs + err?:', ips, err);
|
console.log('Got IPs + err?:', ips, err);
|
||||||
if (!err) {
|
if (!err) {
|
||||||
|
resolveIps(ips);
|
||||||
|
} else {
|
||||||
|
reject([err, null, ...warns]);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}).then(
|
||||||
|
(ips) => {
|
||||||
|
|
||||||
this._purgeOldIpsForSync(hostStr);
|
this._purgeOldIpsForSync(hostStr);
|
||||||
// Object may be shared, string can't.
|
// Object may be shared, string can't.
|
||||||
const hostObj = _getHostObj(hostStr);
|
const hostObj = _getHostObj(hostStr);
|
||||||
for(const ip of ips) {
|
for(const ip of ips) {
|
||||||
privates._ipToHostObj[ip] = hostObj;
|
privates._ipToHostObj[ip] = hostObj;
|
||||||
}
|
}
|
||||||
}
|
cb();
|
||||||
return cb(err, null, ...warns);
|
|
||||||
|
|
||||||
});
|
},
|
||||||
|
(args) => cb(...args)
|
||||||
|
);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -317,15 +335,14 @@
|
||||||
|
|
||||||
replaceAllAsync(addrArr, cb = mandatory()) {
|
replaceAllAsync(addrArr, cb = mandatory()) {
|
||||||
|
|
||||||
console.log('Replacing...');
|
console.log('Replacing...', addrArr);
|
||||||
const [ipSet, hostSet] = _canonize(addrArr);
|
const [ipSet, hostSet] = _canonize(addrArr);
|
||||||
for( const ip of ipSet ) {
|
for( const ip of ipSet ) {
|
||||||
const host = _getHostObj(ip);
|
const host = _getHostObj(ip);
|
||||||
privates._ipToHostObj[ip] = host;
|
privates._ipToHostObj[ip] = host;
|
||||||
}
|
}
|
||||||
|
|
||||||
const hostArr = Array.from(hostSet);
|
this._replaceAllAsync([...ipSet, ...hostSet], (allErr, ...args) => {
|
||||||
this._replaceAllAsync(hostArr, (allErr, ...args) => {
|
|
||||||
|
|
||||||
if (!allErr) {
|
if (!allErr) {
|
||||||
this.persistData();
|
this.persistData();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user