Added support for username:password for urls #143

This commit is contained in:
ManeraKai 2022-03-28 21:00:35 +03:00
parent 2bd630315a
commit 9c2f273064
No known key found for this signature in database
GPG Key ID: 5ABC31FFD562E337
14 changed files with 34 additions and 51 deletions

View File

@ -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,
}; };

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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;

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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;

View File

@ -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,

View File

@ -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;