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())];
}
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() {
await youtubeHelper.init();
await twitterHelper.init();
@ -85,6 +63,11 @@ function isFirefox() {
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(
name,
protocol,
@ -173,10 +156,10 @@ function processDefaultCustomInstances(
event.preventDefault();
let nameCustomInstanceInput = document.getElementById(`${name}-${protocol}-custom-instance`);
let url = new URL(nameCustomInstanceInput.value);
let protocolHost = `${url.protocol}//${url.host}`;
if (nameCustomInstanceInput.validity.valid && !nameHelper.getRedirects()[name][protocol].includes(protocolHost)) {
if (!nameCustomInstances.includes(protocolHost)) {
nameCustomInstances.push(protocolHost)
let protocolHostVar = protocolHost(url);
if (nameCustomInstanceInput.validity.valid && !nameHelper.getRedirects()[name][protocol].includes(protocolHostVar)) {
if (!nameCustomInstances.includes(protocolHostVar)) {
nameCustomInstances.push(protocolHostVar)
setNameCustomRedirects(nameCustomInstances);
nameCustomInstanceInput.value = '';
}
@ -187,8 +170,8 @@ function processDefaultCustomInstances(
export default {
getRandomInstance,
getRandomOnlineInstance,
updateInstances,
protocolHost,
isFirefox,
processDefaultCustomInstances,
};

View File

@ -120,7 +120,7 @@ function redirect(url, type) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let imgurList = [
...redirects.rimgo.normal,

View File

@ -121,7 +121,7 @@ function redirect(url, type, initiator) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let instagramList = [
...redirects.bibliogram.normal,
@ -147,7 +147,7 @@ function switchInstance(url) {
}
function isBibliogram(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
return [
...redirects.bibliogram.normal,
...redirects.bibliogram.tor,
@ -160,7 +160,7 @@ let instancesCookies;
let theme;
let applyThemeToSites;
function initBibliogramCookies(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
browser.cookies.get(
{
url: protocolHost,

View File

@ -97,7 +97,7 @@ function setProtocol(val) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let librarianList = [
...redirects.librarian.normal,

View File

@ -135,7 +135,7 @@ function redirect(url, type, initiator) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let mediumList = [
...redirects.scribe.tor,

View File

@ -92,7 +92,7 @@ function setProtocol(val) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let simpleertubeList = [
...redirects.simpleertube.normal,
@ -119,7 +119,7 @@ function switchInstance(url) {
function redirect(url, type, initiator) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
if (disable) 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) {
if (disableReddit) return null;
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let isTeddit = [
...redirects.teddit.normal,
@ -367,7 +367,7 @@ function redirect(url, type, initiator) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let isTeddit = [
...redirects.teddit.normal,

View File

@ -270,7 +270,7 @@ function redirect(url) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let searchList = [
...redirects.searx.normal,

View File

@ -107,7 +107,7 @@ function setProtocol(val) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let sendList = [
...redirects.send.normal,

View File

@ -91,7 +91,7 @@ function setProtocol(val) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let sojuList = [
...redirects.soju.normal,

View File

@ -185,7 +185,7 @@ function setSimplyTranslateEngine(val) {
}
function isTranslateRedirects(url, type, frontend) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
if (type !== "main_frame") return false;
@ -271,7 +271,7 @@ function redirect(url) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let translateList = [
...redirects.simplyTranslate.normal,

View File

@ -103,7 +103,7 @@ function setBypassWatchOnTwitter(val) {
let alwaysUsePreferred;
function redirect(url, initiator) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let isNitter = [
...redirects.nitter.normal,
...redirects.nitter.tor
@ -159,7 +159,7 @@ function redirect(url, initiator) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let twitterList = [
...redirects.nitter.normal,
@ -186,7 +186,7 @@ function switchInstance(url) {
function removeXFrameOptions(e) {
let url = new URL(e.url);
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let twitterList = [
...redirects.nitter.normal,
...redirects.nitter.tor,
@ -204,7 +204,7 @@ function removeXFrameOptions(e) {
}
function isNitter(url, type) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
if (type !== "main_frame" && type !== "sub_frame") return false;

View File

@ -157,7 +157,7 @@ function redirect(url) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let wikipediaList = [
...redirects.wikiless.normal,

View File

@ -307,7 +307,7 @@ function setExceptions(val) {
function isException(url) {
for (const item of exceptions.url) {
let protocolHost = `${url.protocol}//${url.host}`
let protocolHost = commonHelper.protocolHost(url);
console.log(item, protocolHost)
if (item == protocolHost) return true;
}
@ -320,7 +320,7 @@ let alwaysUsePreferred;
function redirect(url, details, initiator) {
if (disable) return null;
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
let isInvidious = [
...redirects.invidious.normal,
@ -450,7 +450,7 @@ function redirect(url, details, initiator) {
}
function switchInstance(url) {
let protocolHost = `${url.protocol}//${url.host}`;
let protocolHost = commonHelper.protocolHost(url);
if (
protocol == 'normal' &&
![
@ -501,7 +501,7 @@ function switchInstance(url) {
}
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;