aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets/javascripts/youtube
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-07-24 11:34:39 +0300
committerManeraKai <manerakai@protonmail.com>2022-07-24 11:34:39 +0300
commitccfcccd53ed6a7a5cc56adc0d7f027e475f0665a (patch)
treebe58876ebca99733cf54a297d22e2117a176f001 /src/assets/javascripts/youtube
parentMerge pull request 'No more trailing slashes' (#9) from BobIsMyManager/libred... (diff)
parentfix some typos (diff)
downloadlibredirect-ccfcccd53ed6a7a5cc56adc0d7f027e475f0665a.zip
Merge branch 'BobIsMyManager-librex'
Diffstat (limited to 'src/assets/javascripts/youtube')
-rw-r--r--src/assets/javascripts/youtube/youtube.js253
1 files changed, 180 insertions, 73 deletions
diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js
index 965b94bf..669b26d5 100644
--- a/src/assets/javascripts/youtube/youtube.js
+++ b/src/assets/javascripts/youtube/youtube.js
@@ -16,35 +16,36 @@ const targets = [
/^https?:\/{2}(www\.|)(youtube|youtube-nocookie)\.com\/embed\/..*/,
];
-let redirects = {
- "invidious": {
- "normal": [],
- "tor": []
- },
- "piped": {
- "normal": [],
- "tor": []
- },
- "pipedMaterial": {
- "normal": [
- "https://piped-material.xn--17b.net",
- "https://piped-material.ftp.sh",
- ],
- "tor": []
+
+const frontends = new Array("invidious", "piped", "pipedMaterial")
+const protocols = new Array("normal", "tor", "i2p", "loki")
+
+let redirects = {};
+
+for (let i = 0; i < frontends.length; i++) {
+ redirects[frontends[i]] = {}
+ for (let x = 0; x < protocols.length; x++) {
+ redirects[frontends[i]][protocols[x]] = []
}
-};
+}
+
function setRedirects(val) {
browser.storage.local.get('cloudflareBlackList', r => {
redirects.invidious = val.invidious;
redirects.piped = val.piped;
+ redirects.pipedMaterial = val.pipedMaterial
invidiousNormalRedirectsChecks = [...redirects.invidious.normal];
pipedNormalRedirectsChecks = [...redirects.piped.normal];
+ pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal]
for (const instance of r.cloudflareBlackList) {
const a = invidiousNormalRedirectsChecks.indexOf(instance);
if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1);
const b = pipedNormalRedirectsChecks.indexOf(instance);
if (b > -1) pipedNormalRedirectsChecks.splice(b, 1);
+
+ const c = pipedMaterialNormalRedirectsChecks.indexOf(instance);
+ if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1);
}
browser.storage.local.set({
youtubeRedirects: redirects,
@@ -52,6 +53,8 @@ function setRedirects(val) {
invidiousTorRedirectsChecks: redirects.invidious.tor,
pipedNormalRedirectsChecks,
pipedTorRedirectsChecks: redirects.piped.tor,
+ pipedMaterialNormalRedirectsChecks,
+ // pipedMaterialTorRedirectsChecks: redirects.pipedMaterial.tor
})
})
}
@@ -60,21 +63,28 @@ let
disableYoutube,
onlyEmbeddedVideo,
youtubeFrontend,
- youtubeProtocol,
+ protocol,
+ protocolFallback,
youtubeEmbedFrontend,
youtubeRedirects,
invidiousNormalRedirectsChecks,
invidiousNormalCustomRedirects,
invidiousTorRedirectsChecks,
invidiousTorCustomRedirects,
+ invidiousI2pCustomRedirects,
+ invidiousLokiCustomRedirects,
pipedNormalRedirectsChecks,
pipedNormalCustomRedirects,
pipedTorRedirectsChecks,
pipedTorCustomRedirects,
+ pipedI2pCustomRedirects,
+ pipedLokiCustomRedirects,
pipedMaterialNormalRedirectsChecks,
pipedMaterialNormalCustomRedirects,
pipedMaterialTorRedirectsChecks,
- pipedMaterialTorCustomRedirects;
+ pipedMaterialTorCustomRedirects,
+ pipedMaterialI2pCustomRedirects,
+ pipedMaterialLokiCustomRedirects;
function init() {
return new Promise(resolve => {
@@ -83,41 +93,55 @@ function init() {
"disableYoutube",
"onlyEmbeddedVideo",
"youtubeFrontend",
- "youtubeProtocol",
+ "protocol",
+ "protocolFallback",
"youtubeEmbedFrontend",
"youtubeRedirects",
"invidiousNormalRedirectsChecks",
"invidiousNormalCustomRedirects",
"invidiousTorRedirectsChecks",
"invidiousTorCustomRedirects",
+ "invidiousI2pCustomRedirects",
+ "invidiousLokiCustomRedirects",
"pipedNormalRedirectsChecks",
"pipedNormalCustomRedirects",
"pipedTorRedirectsChecks",
"pipedTorCustomRedirects",
+ "pipedI2pCustomRedirects",
+ "pipedLokiCustomRedirects",
"pipedMaterialNormalRedirectsChecks",
"pipedMaterialNormalCustomRedirects",
"pipedMaterialTorRedirectsChecks",
"pipedMaterialTorCustomRedirects",
+ "pipedMaterialI2pCustomRedirects",
+ "pipedMaterialLokiCustomRedirects"
],
r => {
disableYoutube = r.disableYoutube;
onlyEmbeddedVideo = r.onlyEmbeddedVideo;
youtubeFrontend = r.youtubeFrontend;
- youtubeProtocol = r.youtubeProtocol;
+ protocol = r.protocol;
+ protocolFallback = r.protocolFallback;
youtubeEmbedFrontend = r.youtubeEmbedFrontend;
youtubeRedirects = r.youtubeRedirects;
invidiousNormalRedirectsChecks = r.invidiousNormalRedirectsChecks;
invidiousNormalCustomRedirects = r.invidiousNormalCustomRedirects;
invidiousTorRedirectsChecks = r.invidiousTorRedirectsChecks;
invidiousTorCustomRedirects = r.invidiousTorCustomRedirects;
+ invidiousI2pCustomRedirects = r.invidiousI2pCustomRedirects;
+ invidiousLokiCustomRedirects = r.invidiousLokiCustomRedirects;
pipedNormalRedirectsChecks = r.pipedNormalRedirectsChecks;
pipedNormalCustomRedirects = r.pipedNormalCustomRedirects;
pipedTorRedirectsChecks = r.pipedTorRedirectsChecks;
pipedTorCustomRedirects = r.pipedTorCustomRedirects;
+ pipedI2pCustomRedirects = r.pipedI2pCustomRedirects;
+ pipedLokiCustomRedirects = r.pipedLokiCustomRedirects;
pipedMaterialNormalRedirectsChecks = r.pipedMaterialNormalRedirectsChecks;
pipedMaterialNormalCustomRedirects = r.pipedMaterialNormalCustomRedirects;
pipedMaterialTorRedirectsChecks = r.pipedMaterialTorRedirectsChecks;
pipedMaterialTorCustomRedirects = r.pipedMaterialTorCustomRedirects;
+ pipedMaterialI2pCustomRedirects - r.pipedMaterialI2pCustomRedirects;
+ pipedMaterialLokiCustomRedirects = r.pipedMaterialLokiCustomRedirects;
resolve();
}
)
@@ -140,12 +164,18 @@ function all() {
...invidiousNormalCustomRedirects,
...invidiousTorCustomRedirects,
+ ...invidiousI2pCustomRedirects,
+ ...invidiousLokiCustomRedirects,
...pipedNormalCustomRedirects,
...pipedTorCustomRedirects,
+ ...pipedI2pCustomRedirects,
+ ...pipedLokiCustomRedirects,
...pipedMaterialNormalCustomRedirects,
...pipedMaterialTorCustomRedirects,
+ ...pipedMaterialI2pCustomRedirects,
+ ...pipedMaterialLokiCustomRedirects
];
}
@@ -160,7 +190,7 @@ function redirect(url, type, initiator, disableOverride) {
const isFreetube = youtubeFrontend == 'freetube';
const isYatte = youtubeFrontend == 'yatte';
- const isFrontendYoutube = youtubeEmbedFrontend == "youtube";
+ //const isFrontendYoutube = youtubeEmbedFrontend == "youtube";
const isFrontendInvidious = youtubeEmbedFrontend == 'invidious';
const isFrontendPiped = youtubeEmbedFrontend == 'piped';
const isFrontendPipedMaterial = youtubeEmbedFrontend == 'pipedMaterial';
@@ -172,31 +202,43 @@ function redirect(url, type, initiator, disableOverride) {
if (onlyEmbeddedVideo == 'onlyEmbedded' && main_frame) return;
if (onlyEmbeddedVideo == 'onlyNotEmbedded' && !main_frame) return;
- if ((isFreetube || isYatte) && sub_frame && isFrontendYoutube) return;
+ //if ((isFreetube || isYatte) && sub_frame && isFrontendYoutube) return;
if (isYatte && main_frame) return url.href.replace(/^https?:\/{2}/, 'yattee://');
if (isFreetube && main_frame) return `freetube://https://youtube.com${url.pathname}${url.search}`;
if (isInvidious || ((isFreetube || isYatte) && sub_frame && isFrontendInvidious)) {
- let instancesList;
- if (youtubeProtocol == 'normal') instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
- else if (youtubeProtocol == 'tor') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
+ let instancesList = [];
+ if (protocol == 'loki') instancesList = [...invidiousLokiCustomRedirects];
+ else if (protocol == 'i2p') instancesList = [...invidiousI2pCustomRedirects];
+ else if (protocol == 'tor') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
+ if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
+ instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
+ }
if (instancesList.length === 0) return;
const randomInstance = utils.getRandomInstance(instancesList);
return `${randomInstance}${url.pathname}${url.search}`;
}
if (isPiped || ((isFreetube || isYatte) && sub_frame && isFrontendPiped)) {
- let instancesList;
- if (youtubeProtocol == 'normal') instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
- else if (youtubeProtocol == 'tor') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
+ let instancesList = [];
+ if (protocol == 'loki') instancesList = [...pipedLokiCustomRedirects];
+ else if (protocol == 'i2p') instancesList = [...pipedI2pCustomRedirects];
+ else if (protocol == 'tor') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
+ if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
+ instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
+ }
if (instancesList.length === 0) return;
const randomInstance = utils.getRandomInstance(instancesList);
return `${randomInstance}${url.pathname}${url.search}`;
}
if (isPipedMaterial || ((isFreetube || isYatte) && sub_frame && isFrontendPipedMaterial)) {
- let instancesList;
- if (youtubeProtocol == 'normal') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
- else if (youtubeProtocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
+ let instancesList = [];
+ if (protocol == 'loki') instancesList = [...pipedMaterialLokiCustomRedirects];
+ else if (protocol == 'i2p') instancesList = [...pipedMaterialI2pCustomRedirects];
+ else if (protocol == 'tor') instancesList = [...pipedMaterialTorCustomRedirects]; //...pipedMaterialTorRedirectsChecks,
+ if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
+ instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
+ }
const randomInstance = utils.getRandomInstance(instancesList);
return `${randomInstance}${url.pathname}${url.search}`;
}
@@ -219,16 +261,26 @@ function switchInstance(url, disableOverride) {
const protocolHost = utils.protocolHost(url);
if (!all().includes(protocolHost)) { resolve(); return; }
- let instancesList;
- if (youtubeProtocol == 'normal') {
- if (youtubeFrontend == 'invidious') instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
- else if (youtubeFrontend == 'piped') instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
- else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
+ let instancesList = [];
+ if (protocol == 'loki') {
+ if (youtubeFrontend == 'invidious') instancesList = [...invidiousLokiCustomRedirects]; //...invidiousLokiRedirectsChecks,
+ else if (youtubeFrontend == 'piped') instancesList = [...pipedLokiCustomRedirects]; //...pipedLokiRedirectsChecks,
+ else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialLokiCustomRedirects]; //...pipedMaterialLokiRedirectsChecks,
+ }
+ else if (protocol == 'i2p') {
+ if (youtubeFrontend == 'invidious') instancesList = [...invidiousI2pCustomRedirects]; //...invidiousI2pRedirectsChecks,
+ else if (youtubeFrontend == 'piped') instancesList = [...pipedI2pCustomRedirects]; //...pipedI2pRedirectsChecks,
+ else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialI2pCustomRedirects]; //...pipedMaterialI2pRedirectsChecks,
}
- else if (youtubeProtocol == 'tor') {
+ else if (protocol == 'tor') {
if (youtubeFrontend == 'invidious') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
else if (youtubeFrontend == 'piped') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
- else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
+ else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialTorCustomRedirects]; //...pipedMaterialTorRedirectsChecks,
+ }
+ if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
+ if (youtubeFrontend == 'invidious') instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
+ else if (youtubeFrontend == 'piped') instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
+ else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
}
const i = instancesList.indexOf(protocolHost);
@@ -244,8 +296,9 @@ function initDefaults() {
return new Promise(async resolve => {
fetch('/instances/data.json').then(response => response.text()).then(async data => {
let dataJson = JSON.parse(data);
- redirects.invidious = dataJson.invidious;
- redirects.piped = dataJson.piped;
+ for (let i = 0; i < frontends.length; i++) {
+ redirects[frontends[i]] = dataJson[frontends[i]]
+ }
browser.storage.local.get('cloudflareBlackList', async r => {
invidiousNormalRedirectsChecks = [...redirects.invidious.normal];
@@ -267,9 +320,7 @@ function initDefaults() {
disableYoutube: false,
enableYoutubeCustomSettings: false,
onlyEmbeddedVideo: 'both',
-
youtubeRedirects: redirects,
-
youtubeFrontend: 'invidious',
invidiousNormalRedirectsChecks: invidiousNormalRedirectsChecks,
@@ -278,20 +329,37 @@ function initDefaults() {
invidiousTorRedirectsChecks: [...redirects.invidious.tor],
invidiousTorCustomRedirects: [],
+ invidiousI2pRedirectsChecks: [...redirects.invidious.i2p],
+ invidiousI2pCustomRedirects: [],
+
+ invidiousLokiRedirectsChecks: [...redirects.invidious.loki],
+ invidiousLokiCustomRedirects: [],
+
pipedNormalRedirectsChecks: pipedNormalRedirectsChecks,
pipedNormalCustomRedirects: [],
pipedTorRedirectsChecks: [...redirects.piped.tor],
pipedTorCustomRedirects: [],
+ pipedI2pRedirectsChecks: [...redirects.piped.i2p],
+ pipedI2pCustomRedirects: [],
+
+ pipedLokiRedirectsChecks: [...redirects.piped.loki],
+ pipedLokiCustomRedirects: [],
+
pipedMaterialNormalRedirectsChecks: pipedMaterialNormalRedirectsChecks,
pipedMaterialNormalCustomRedirects: [],
pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
pipedMaterialTorCustomRedirects: [],
- youtubeEmbedFrontend: 'invidious',
- youtubeProtocol: 'normal',
+ pipedMaterialI2pRedirectsChecks: [...redirects.pipedMaterial.i2p],
+ pipedMaterialI2pCustomRedirects: [],
+
+ pipedMaterialLokiRedirectsChecks: [...redirects.pipedMaterial.loki],
+ pipedMaterialLokiCustomRedirects: [],
+
+ youtubeEmbedFrontend: 'invidious'
}, () => resolve())
})
})
@@ -308,11 +376,18 @@ function copyPasteInvidiousCookies(test, from) {
...invidiousTorRedirectsChecks,
...invidiousNormalCustomRedirects,
...invidiousTorCustomRedirects,
+ ...invidiousI2pCustomRedirects,
+ ...invidiousLokiCustomRedirects
].includes(protocolHost)) { resolve(); return; }
if (!test) {
- let checkedInstances;
- if (youtubeProtocol == 'normal') checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
- else if (youtubeProtocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
+ let checkedInstances = [];
+
+ if (protocol == 'loki') checkedInstances = [...invidiousLokiCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...invidiousI2pCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
+ if ((checkedInstances.length === 0 && protocolFallback) || protocol == 'normal') {
+ checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
+ }
const i = checkedInstances.indexOf(protocolHost);
if (i !== -1) checkedInstances.splice(i, 1);
await utils.copyCookie('invidious', from, checkedInstances, 'PREFS');
@@ -325,9 +400,13 @@ function pasteInvidiousCookies() {
return new Promise(async resolve => {
await init();
if (disableYoutube || youtubeFrontend != 'invidious') { resolve(); return; }
- let checkedInstances;
- if (youtubeProtocol == 'normal') checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
- else if (youtubeProtocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
+ let checkedInstances = [];
+ if (protocol == 'loki') checkedInstances = [...invidiousLokiCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...invidiousI2pCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
+ if ((checkedInstances.length === 0 && protocolFallback) || protocol == 'normal') {
+ checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
+ }
utils.getCookiesFromStorage('invidious', checkedInstances, 'PREFS');
resolve();
})
@@ -343,14 +422,20 @@ function copyPastePipedLocalStorage(test, url, tabId) {
...pipedNormalRedirectsChecks,
...pipedTorRedirectsChecks,
...pipedTorCustomRedirects,
+ ...pipedI2pCustomRedirects,
+ ...pipedLokiCustomRedirects
].includes(protocolHost)) { resolve(); return; }
if (!test) {
browser.tabs.executeScript(tabId, { file: "/assets/javascripts/youtube/get_piped_preferences.js", runAt: "document_start" });
- let checkedInstances;
- if (youtubeProtocol == 'normal') checkedInstances = [...pipedNormalCustomRedirects, ...pipedNormalRedirectsChecks]
- else if (youtubeProtocol == 'tor') checkedInstances = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ let checkedInstances = [];
+ if (protocol == 'loki') checkedInstances = [...pipedLokiCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...pipedI2pCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
+ checkedInstances = [...pipedNormalCustomRedirects, ...pipedNormalRedirectsChecks]
+ }
const i = checkedInstances.indexOf(protocolHost);
if (i !== -1) checkedInstances.splice(i, 1);
for (const to of checkedInstances) {
@@ -365,9 +450,13 @@ function pastePipedLocalStorage() {
return new Promise(async resolve => {
await init();
if (disableYoutube || youtubeFrontend != 'piped') { resolve(); return; }
- let checkedInstances;
- if (youtubeProtocol == 'normal') checkedInstances = [...pipedNormalCustomRedirects, ...pipedNormalRedirectsChecks]
- else if (youtubeProtocol == 'tor') checkedInstances = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ let checkedInstances = [];
+ if (protocol == 'loki') checkedInstances = [...pipedLokiCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...pipedI2pCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
+ checkedInstances = [...pipedNormalCustomRedirects, ...pipedNormalRedirectsChecks]
+ }
for (const to of checkedInstances) {
browser.tabs.create({ url: to },
tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/youtube/set_piped_preferences.js", runAt: "document_start" }))
@@ -384,16 +473,22 @@ function copyPastePipedMaterialLocalStorage(test, url, tabId,) {
if (![
...pipedMaterialNormalRedirectsChecks,
...pipedMaterialNormalCustomRedirects,
- ...pipedMaterialTorRedirectsChecks,
+ //...pipedMaterialTorRedirectsChecks,
...pipedMaterialTorCustomRedirects,
+ ...pipedMaterialI2pCustomRedirects,
+ ...pipedMaterialLokiCustomRedirects
].includes(protocolHost)) { resolve(); return; }
if (!test) {
browser.tabs.executeScript(tabId, { file: "/assets/javascripts/youtube/get_pipedMaterial_preferences.js", runAt: "document_start" });
- let checkedInstances;
- if (youtubeProtocol == 'normal') checkedInstances = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
- else if (youtubeProtocol == 'tor') checkedInstances = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects]
+ let checkedInstances = [];
+ if (protocol == 'loki') checkedInstances = [...pipedMaterialLokiCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...pipedMaterialI2pCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...pipedMaterialTorCustomRedirects]; //...pipedMaterialTorRedirectsChecks,
+ if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
+ checkedInstances = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
+ }
const i = checkedInstances.indexOf(protocolHost);
if (i !== -1) checkedInstances.splice(i, 1);
for (const to of checkedInstances)
@@ -410,9 +505,13 @@ function pastePipedMaterialLocalStorage() {
return new Promise(async resolve => {
await init();
if (disableYoutube || youtubeFrontend != 'pipedMaterial') { resolve(); return; }
- let checkedInstances;
- if (youtubeProtocol == 'normal') checkedInstances = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
- else if (youtubeProtocol == 'tor') checkedInstances = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects]
+ let checkedInstances = [];
+ if (protocol == 'loki') checkedInstances = [...pipedMaterialLokiCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...pipedMaterialI2pCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...pipedMaterialTorCustomRedirects]; //...pipedMaterialTorRedirectsChecks,
+ if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
+ checkedInstances = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
+ }
for (const to of checkedInstances) {
browser.tabs.create({ url: to },
tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/youtube/set_pipedMaterial_preferences.js", runAt: "document_start" }))
@@ -427,18 +526,26 @@ function removeXFrameOptions(e) {
if (e.type == 'main_frame') {
for (const i in e.responseHeaders) {
if (e.responseHeaders[i].name == 'content-security-policy') {
- let instancesList;
- if (youtubeFrontend == 'invidious') {
- if (youtubeProtocol == 'normal') instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
- else if (youtubeProtocol == 'tor') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
+ let instancesList = [];
+ if (protocol == 'loki') {
+ if (youtubeFrontend == 'invidious') instancesList = [...invidiousLokiCustomRedirects]; //...invidiousLokiRedirectsChecks,
+ if (youtubeFrontend == 'piped') instancesList = [...pipedLokiCustomRedirects]; //...pipedLokiRedirectsChecks,
+ if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialLokiCustomRedirects]; //...pipedMaterialLokiRedirectsChecks,
+ }
+ else if (protocol == 'i2p') {
+ if (youtubeFrontend == 'invidious') instancesList = [...invidiousI2pCustomRedirects]; //...invidiousI2pRedirectsChecks,
+ if (youtubeFrontend == 'piped') instancesList = [...pipedI2pCustomRedirects]; //...pipedI2pRedirectsChecks,
+ if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialI2pCustomRedirects]; //...pipedMaterialI2pRedirectsChecks,
}
- else if (youtubeFrontend == 'piped') {
- if (youtubeProtocol == 'normal') instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
- else if (youtubeProtocol == 'tor') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
+ else if (protocol == 'tor') {
+ if (youtubeFrontend == 'invidious') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
+ if (youtubeFrontend == 'piped') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
+ if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialTorCustomRedirects]; //...pipedMaterialTorRedirectsChecks,
}
- else if (youtubeFrontend == 'pipedMaterial') {
- if (youtubeProtocol == 'normal') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
- else if (youtubeProtocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
+ if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
+ if (youtubeFrontend == 'invidious') instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
+ if (youtubeFrontend == 'piped') instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
+ if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
}
let securityPolicyList = e.responseHeaders[i].value.split(';');
for (const i in securityPolicyList) securityPolicyList[i] = securityPolicyList[i].trim();