Added support for username:password for urls #143
This commit is contained in:
parent
2bd630315a
commit
9c2f273064
@ -12,28 +12,6 @@ function getRandomInstance(instances) {
|
|||||||
return instances[~~(instances.length * Math.random())];
|
return instances[~~(instances.length * Math.random())];
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getRandomOnlineInstance(instances) {
|
|
||||||
const shuffledInstances = instances.sort((a, b) => 0.5 - Math.random())
|
|
||||||
|
|
||||||
for (let ins of shuffledInstances) {
|
|
||||||
try {
|
|
||||||
const res = await fetch(ins, { redirect: 'follow' })
|
|
||||||
console.log(res)
|
|
||||||
if (res.status >= 200 && res.status < 300)
|
|
||||||
return ins // instance seems healthy!
|
|
||||||
else
|
|
||||||
console.warn(`Instance ${ins} seems offline (status code: ${res.status}). we try another one`)
|
|
||||||
|
|
||||||
} catch (err) {
|
|
||||||
console.warn(`Instance ${ins} seems offline. we try another one`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// everything offline? -> unlikely
|
|
||||||
// rather respond with any entry instead of breaking the functionality
|
|
||||||
return shuffledInstances[0]
|
|
||||||
}
|
|
||||||
|
|
||||||
async function wholeInit() {
|
async function wholeInit() {
|
||||||
await youtubeHelper.init();
|
await youtubeHelper.init();
|
||||||
await twitterHelper.init();
|
await twitterHelper.init();
|
||||||
@ -85,6 +63,11 @@ function isFirefox() {
|
|||||||
return typeof InstallTrigger !== "undefined";
|
return typeof InstallTrigger !== "undefined";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function protocolHost(url) {
|
||||||
|
if (url.username && url.password) return `${url.protocol}//${url.username}:${url.password}@${url.host}`;
|
||||||
|
return `${url.protocol}//${url.host}`;
|
||||||
|
}
|
||||||
|
|
||||||
function processDefaultCustomInstances(
|
function processDefaultCustomInstances(
|
||||||
name,
|
name,
|
||||||
protocol,
|
protocol,
|
||||||
@ -173,10 +156,10 @@ function processDefaultCustomInstances(
|
|||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
let nameCustomInstanceInput = document.getElementById(`${name}-${protocol}-custom-instance`);
|
let nameCustomInstanceInput = document.getElementById(`${name}-${protocol}-custom-instance`);
|
||||||
let url = new URL(nameCustomInstanceInput.value);
|
let url = new URL(nameCustomInstanceInput.value);
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHostVar = protocolHost(url);
|
||||||
if (nameCustomInstanceInput.validity.valid && !nameHelper.getRedirects()[name][protocol].includes(protocolHost)) {
|
if (nameCustomInstanceInput.validity.valid && !nameHelper.getRedirects()[name][protocol].includes(protocolHostVar)) {
|
||||||
if (!nameCustomInstances.includes(protocolHost)) {
|
if (!nameCustomInstances.includes(protocolHostVar)) {
|
||||||
nameCustomInstances.push(protocolHost)
|
nameCustomInstances.push(protocolHostVar)
|
||||||
setNameCustomRedirects(nameCustomInstances);
|
setNameCustomRedirects(nameCustomInstances);
|
||||||
nameCustomInstanceInput.value = '';
|
nameCustomInstanceInput.value = '';
|
||||||
}
|
}
|
||||||
@ -187,8 +170,8 @@ function processDefaultCustomInstances(
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
getRandomInstance,
|
getRandomInstance,
|
||||||
getRandomOnlineInstance,
|
|
||||||
updateInstances,
|
updateInstances,
|
||||||
|
protocolHost,
|
||||||
isFirefox,
|
isFirefox,
|
||||||
processDefaultCustomInstances,
|
processDefaultCustomInstances,
|
||||||
};
|
};
|
||||||
|
@ -120,7 +120,7 @@ function redirect(url, type) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let imgurList = [
|
let imgurList = [
|
||||||
...redirects.rimgo.normal,
|
...redirects.rimgo.normal,
|
||||||
|
@ -121,7 +121,7 @@ function redirect(url, type, initiator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let instagramList = [
|
let instagramList = [
|
||||||
...redirects.bibliogram.normal,
|
...redirects.bibliogram.normal,
|
||||||
@ -147,7 +147,7 @@ function switchInstance(url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isBibliogram(url) {
|
function isBibliogram(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
return [
|
return [
|
||||||
...redirects.bibliogram.normal,
|
...redirects.bibliogram.normal,
|
||||||
...redirects.bibliogram.tor,
|
...redirects.bibliogram.tor,
|
||||||
@ -160,7 +160,7 @@ let instancesCookies;
|
|||||||
let theme;
|
let theme;
|
||||||
let applyThemeToSites;
|
let applyThemeToSites;
|
||||||
function initBibliogramCookies(url) {
|
function initBibliogramCookies(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
browser.cookies.get(
|
browser.cookies.get(
|
||||||
{
|
{
|
||||||
url: protocolHost,
|
url: protocolHost,
|
||||||
|
@ -97,7 +97,7 @@ function setProtocol(val) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let librarianList = [
|
let librarianList = [
|
||||||
...redirects.librarian.normal,
|
...redirects.librarian.normal,
|
||||||
|
@ -135,7 +135,7 @@ function redirect(url, type, initiator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let mediumList = [
|
let mediumList = [
|
||||||
...redirects.scribe.tor,
|
...redirects.scribe.tor,
|
||||||
|
@ -92,7 +92,7 @@ function setProtocol(val) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let simpleertubeList = [
|
let simpleertubeList = [
|
||||||
...redirects.simpleertube.normal,
|
...redirects.simpleertube.normal,
|
||||||
@ -119,7 +119,7 @@ function switchInstance(url) {
|
|||||||
|
|
||||||
function redirect(url, type, initiator) {
|
function redirect(url, type, initiator) {
|
||||||
|
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
if (disable) return null;
|
if (disable) return null;
|
||||||
if (initiator && ([...redirects.simpleertube.normal, ...simpleertubeNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
|
if (initiator && ([...redirects.simpleertube.normal, ...simpleertubeNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
|
||||||
|
@ -246,7 +246,7 @@ let alwaysUsePreferred;
|
|||||||
function redirect(url, type, initiator) {
|
function redirect(url, type, initiator) {
|
||||||
if (disableReddit) return null;
|
if (disableReddit) return null;
|
||||||
|
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let isTeddit = [
|
let isTeddit = [
|
||||||
...redirects.teddit.normal,
|
...redirects.teddit.normal,
|
||||||
@ -367,7 +367,7 @@ function redirect(url, type, initiator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let isTeddit = [
|
let isTeddit = [
|
||||||
...redirects.teddit.normal,
|
...redirects.teddit.normal,
|
||||||
|
@ -270,7 +270,7 @@ function redirect(url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let searchList = [
|
let searchList = [
|
||||||
...redirects.searx.normal,
|
...redirects.searx.normal,
|
||||||
|
@ -107,7 +107,7 @@ function setProtocol(val) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let sendList = [
|
let sendList = [
|
||||||
...redirects.send.normal,
|
...redirects.send.normal,
|
||||||
|
@ -91,7 +91,7 @@ function setProtocol(val) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let sojuList = [
|
let sojuList = [
|
||||||
...redirects.soju.normal,
|
...redirects.soju.normal,
|
||||||
|
@ -185,7 +185,7 @@ function setSimplyTranslateEngine(val) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isTranslateRedirects(url, type, frontend) {
|
function isTranslateRedirects(url, type, frontend) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
if (type !== "main_frame") return false;
|
if (type !== "main_frame") return false;
|
||||||
|
|
||||||
@ -271,7 +271,7 @@ function redirect(url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let translateList = [
|
let translateList = [
|
||||||
...redirects.simplyTranslate.normal,
|
...redirects.simplyTranslate.normal,
|
||||||
|
@ -103,7 +103,7 @@ function setBypassWatchOnTwitter(val) {
|
|||||||
let alwaysUsePreferred;
|
let alwaysUsePreferred;
|
||||||
|
|
||||||
function redirect(url, initiator) {
|
function redirect(url, initiator) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
let isNitter = [
|
let isNitter = [
|
||||||
...redirects.nitter.normal,
|
...redirects.nitter.normal,
|
||||||
...redirects.nitter.tor
|
...redirects.nitter.tor
|
||||||
@ -159,7 +159,7 @@ function redirect(url, initiator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let twitterList = [
|
let twitterList = [
|
||||||
...redirects.nitter.normal,
|
...redirects.nitter.normal,
|
||||||
@ -186,7 +186,7 @@ function switchInstance(url) {
|
|||||||
|
|
||||||
function removeXFrameOptions(e) {
|
function removeXFrameOptions(e) {
|
||||||
let url = new URL(e.url);
|
let url = new URL(e.url);
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
let twitterList = [
|
let twitterList = [
|
||||||
...redirects.nitter.normal,
|
...redirects.nitter.normal,
|
||||||
...redirects.nitter.tor,
|
...redirects.nitter.tor,
|
||||||
@ -204,7 +204,7 @@ function removeXFrameOptions(e) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isNitter(url, type) {
|
function isNitter(url, type) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
if (type !== "main_frame" && type !== "sub_frame") return false;
|
if (type !== "main_frame" && type !== "sub_frame") return false;
|
||||||
|
|
||||||
|
@ -157,7 +157,7 @@ function redirect(url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let wikipediaList = [
|
let wikipediaList = [
|
||||||
...redirects.wikiless.normal,
|
...redirects.wikiless.normal,
|
||||||
|
@ -307,7 +307,7 @@ function setExceptions(val) {
|
|||||||
|
|
||||||
function isException(url) {
|
function isException(url) {
|
||||||
for (const item of exceptions.url) {
|
for (const item of exceptions.url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
console.log(item, protocolHost)
|
console.log(item, protocolHost)
|
||||||
if (item == protocolHost) return true;
|
if (item == protocolHost) return true;
|
||||||
}
|
}
|
||||||
@ -320,7 +320,7 @@ let alwaysUsePreferred;
|
|||||||
function redirect(url, details, initiator) {
|
function redirect(url, details, initiator) {
|
||||||
if (disable) return null;
|
if (disable) return null;
|
||||||
|
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
let isInvidious = [
|
let isInvidious = [
|
||||||
...redirects.invidious.normal,
|
...redirects.invidious.normal,
|
||||||
@ -450,7 +450,7 @@ function redirect(url, details, initiator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function switchInstance(url) {
|
function switchInstance(url) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
if (
|
if (
|
||||||
protocol == 'normal' &&
|
protocol == 'normal' &&
|
||||||
![
|
![
|
||||||
@ -501,7 +501,7 @@ function switchInstance(url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isPipedorInvidious(url, type, frontend) {
|
function isPipedorInvidious(url, type, frontend) {
|
||||||
let protocolHost = `${url.protocol}//${url.host}`;
|
let protocolHost = commonHelper.protocolHost(url);
|
||||||
|
|
||||||
if (type !== "main_frame" && type !== "sub_frame") return false;
|
if (type !== "main_frame" && type !== "sub_frame") return false;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user