aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets/javascripts/youtube
diff options
context:
space:
mode:
authorBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-22 19:39:08 +0100
committerBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-22 19:39:08 +0100
commit3bc5cafe65caa86734f6ad9ef13d3a70f5effa4c (patch)
treefe0fa3dda40b4499f55ba936216b4d06c5fee0b5 /src/assets/javascripts/youtube
parentFix workflows issue (diff)
downloadlibredirect-3bc5cafe65caa86734f6ad9ef13d3a70f5effa4c.zip
Make almost all instances follow new protocol structre
Closes https://github.com/libredirect/libredirect/issues/238 Closes https://github.com/libredirect/libredirect/issues/391
Diffstat (limited to 'src/assets/javascripts/youtube')
-rw-r--r--src/assets/javascripts/youtube/youtube.js126
1 files changed, 106 insertions, 20 deletions
diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js
index feb2fc12..3d7cd892 100644
--- a/src/assets/javascripts/youtube/youtube.js
+++ b/src/assets/javascripts/youtube/youtube.js
@@ -33,14 +33,19 @@ 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,
@@ -48,6 +53,8 @@ function setRedirects(val) {
invidiousTorRedirectsChecks: redirects.invidious.tor,
pipedNormalRedirectsChecks,
pipedTorRedirectsChecks: redirects.piped.tor,
+ pipedMaterialNormalRedirectsChecks,
+ pipedMaterialTorRedirectsChecks: redirects.pipedMaterial.tor
})
})
}
@@ -64,14 +71,20 @@ let
invidiousNormalCustomRedirects,
invidiousTorRedirectsChecks,
invidiousTorCustomRedirects,
+ invidiousI2pCustomRedirects,
+ invidiousLokiCustomRedirects,
pipedNormalRedirectsChecks,
pipedNormalCustomRedirects,
pipedTorRedirectsChecks,
pipedTorCustomRedirects,
+ pipedI2pCustomRedirects,
+ pipedLokiCustomRedirects,
pipedMaterialNormalRedirectsChecks,
pipedMaterialNormalCustomRedirects,
pipedMaterialTorRedirectsChecks,
- pipedMaterialTorCustomRedirects;
+ pipedMaterialTorCustomRedirects,
+ pipedMaterialI2pCustomRedirects,
+ pipedMaterialLokiCustomRedirects;
function init() {
return new Promise(resolve => {
@@ -88,14 +101,20 @@ function init() {
"invidiousNormalCustomRedirects",
"invidiousTorRedirectsChecks",
"invidiousTorCustomRedirects",
+ "invidiousI2pCustomRedirects",
+ "invidiousLokiCustomRedirects",
"pipedNormalRedirectsChecks",
"pipedNormalCustomRedirects",
"pipedTorRedirectsChecks",
"pipedTorCustomRedirects",
+ "pipedI2pCustomRedirects",
+ "pipedLokiCustomRedirects",
"pipedMaterialNormalRedirectsChecks",
"pipedMaterialNormalCustomRedirects",
"pipedMaterialTorRedirectsChecks",
"pipedMaterialTorCustomRedirects",
+ "pipedMaterialI2pCustomRedirects",
+ "pipedMaterialLokiCustomRedirects"
],
r => {
disableYoutube = r.disableYoutube;
@@ -109,14 +128,20 @@ function init() {
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();
}
)
@@ -139,12 +164,18 @@ function all() {
...invidiousNormalCustomRedirects,
...invidiousTorCustomRedirects,
+ ...invidiousI2pCustomRedirects,
+ ...invidiousLokiCustomRedirects,
...pipedNormalCustomRedirects,
...pipedTorCustomRedirects,
+ ...pipedI2pCustomRedirects,
+ ...pipedLokiCustomRedirects,
...pipedMaterialNormalCustomRedirects,
...pipedMaterialTorCustomRedirects,
+ ...pipedMaterialI2pCustomRedirects,
+ ...pipedMaterialLokiCustomRedirects
];
}
@@ -159,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';
@@ -171,24 +202,28 @@ 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 (protocol == 'tor') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
- if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
- instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
- }
+ 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 (protocol == 'tor') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
+ 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];
}
@@ -198,7 +233,9 @@ function redirect(url, type, initiator, disableOverride) {
}
if (isPipedMaterial || ((isFreetube || isYatte) && sub_frame && isFrontendPipedMaterial)) {
let instancesList = [];
- if (protocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
+ if (protocol == 'loki') instancesList = [...pipedMaterialLokiCustomRedirects];
+ else if (protocol == 'i2p') instancesList = [...pipedMaterialI2pCustomRedirects];
+ else if (protocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
}
@@ -224,9 +261,18 @@ function switchInstance(url, disableOverride) {
const protocolHost = utils.protocolHost(url);
if (!all().includes(protocolHost)) { resolve(); return; }
- let instancesList = [] = [];
-
- if (protocol == 'tor') {
+ 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 (protocol == 'tor') {
if (youtubeFrontend == 'invidious') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
else if (youtubeFrontend == 'piped') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
@@ -285,18 +331,30 @@ function initDefaults() {
invidiousTorRedirectsChecks: [...redirects.invidious.tor],
invidiousTorCustomRedirects: [],
+ invidiousI2pCustomRedirects: [],
+
+ invidiousLokiCustomRedirects: [],
+
pipedNormalRedirectsChecks: pipedNormalRedirectsChecks,
pipedNormalCustomRedirects: [],
pipedTorRedirectsChecks: [...redirects.piped.tor],
pipedTorCustomRedirects: [],
+ pipedI2pCustomRedirects: [],
+
+ pipedLokiCustomRedirects: [],
+
pipedMaterialNormalRedirectsChecks: pipedMaterialNormalRedirectsChecks,
pipedMaterialNormalCustomRedirects: [],
pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
pipedMaterialTorCustomRedirects: [],
+ pipedMaterialI2pCustomRedirects: [],
+
+ pipedMaterialLokiCustomRedirects: [],
+
youtubeEmbedFrontend: 'invidious'
}, () => resolve())
})
@@ -314,11 +372,15 @@ function copyPasteInvidiousCookies(test, from) {
...invidiousTorRedirectsChecks,
...invidiousNormalCustomRedirects,
...invidiousTorCustomRedirects,
+ ...invidiousI2pCustomRedirects,
+ ...invidiousLokiCustomRedirects
].includes(protocolHost)) { resolve(); return; }
if (!test) {
let checkedInstances = [];
- if (protocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
+ if (protocol == 'loki') checkedInstances = [...invidiousLokiCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...invidiousI2pCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
}
@@ -335,7 +397,9 @@ function pasteInvidiousCookies() {
await init();
if (disableYoutube || youtubeFrontend != 'invidious') { resolve(); return; }
let checkedInstances = [];
- if (protocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
+ if (protocol == 'loki') checkedInstances = [...invidiousLokiCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...invidiousI2pCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
}
@@ -354,13 +418,17 @@ 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 (protocol == 'tor') checkedInstances = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ 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]
}
@@ -379,7 +447,9 @@ function pastePipedLocalStorage() {
await init();
if (disableYoutube || youtubeFrontend != 'piped') { resolve(); return; }
let checkedInstances = [];
- if (protocol == 'tor') checkedInstances = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ 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]
}
@@ -401,13 +471,17 @@ function copyPastePipedMaterialLocalStorage(test, url, tabId,) {
...pipedMaterialNormalCustomRedirects,
...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 (protocol == 'tor') checkedInstances = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects]
+ if (protocol == 'loki') checkedInstances = [...pipedMaterialLokiCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...pipedMaterialI2pCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects]
if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
checkedInstances = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
}
@@ -428,7 +502,9 @@ function pastePipedMaterialLocalStorage() {
await init();
if (disableYoutube || youtubeFrontend != 'pipedMaterial') { resolve(); return; }
let checkedInstances = [];
- if (protocol == 'tor') checkedInstances = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects]
+ if (protocol == 'loki') checkedInstances = [...pipedMaterialLokiCustomRedirects];
+ else if (protocol == 'i2p') checkedInstances = [...pipedMaterialI2pCustomRedirects];
+ else if (protocol == 'tor') checkedInstances = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects]
if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
checkedInstances = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
}
@@ -447,7 +523,17 @@ function removeXFrameOptions(e) {
for (const i in e.responseHeaders) {
if (e.responseHeaders[i].name == 'content-security-policy') {
let instancesList = [];
- if (protocol == 'tor') {
+ 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 (protocol == 'tor') {
if (youtubeFrontend == 'invidious') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
if (youtubeFrontend == 'piped') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];