aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets/javascripts/helpers
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-03-03 22:13:17 +0300
committerManeraKai <manerakai@protonmail.com>2022-03-03 22:13:17 +0300
commit3ef2aa7cc112a9c0dad8cf4dc71afcb657ba095d (patch)
treea8159db9cebfa406ad2cef2d827031f04da8bfca /src/assets/javascripts/helpers
parentBump version to 1.4.7 (diff)
downloadlibredirect-3ef2aa7cc112a9c0dad8cf4dc71afcb657ba095d.zip
Added Piped-Material #51
Diffstat (limited to 'src/assets/javascripts/helpers')
-rw-r--r--src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js25
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js137
2 files changed, 150 insertions, 12 deletions
diff --git a/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js
new file mode 100644
index 00000000..c47b8c86
--- /dev/null
+++ b/src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js
@@ -0,0 +1,25 @@
+window.browser = window.browser || window.chrome;
+
+browser.storage.local.get(
+ [
+ "youtubeTheme",
+ "youtubeAutoplay"
+ ],
+ res => {
+ let prefs = JSON.parse(
+ decodeURIComponent(
+ localStorage.getItem("PREFERENCES")
+ )
+ ) ?? {};
+ let oldPrefs = { ...prefs };
+
+ if (res.youtubeTheme == 'dark') prefs.darkMode = true;
+ if (res.youtubeTheme == 'light') prefs.darkMode = false;
+
+ if (res.youtubeAutoplay != "DEFAULT") prefs.playerAutoplay = res.youtubeAutoplay;
+
+ if (oldPrefs != prefs) localStorage.setItem("PREFERENCES", encodeURIComponent(JSON.stringify(prefs)));
+ }
+)
+
+window.onunload = () => localStorage.removeItem("PREFERENCES"); \ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 0277221c..3866f72e 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -35,8 +35,8 @@ let redirects = {
},
"pipedMaterial": {
"normal": [
- "https://piped-material.১.net/",
- "https://piped-material.ftp.sh/",
+ "https://piped-material.xn--17b.net",
+ "https://piped-material.ftp.sh",
],
"tor": []
}
@@ -79,7 +79,6 @@ function setInvidiousNormalCustomRedirects(val) {
console.log("invidiousNormalCustomRedirects: ", val)
}
-
let invidiousTorRedirectsChecks;
const getInvidiousTorRedirectsChecks = () => invidiousTorRedirectsChecks;
function setInvidiousTorRedirectsChecks(val) {
@@ -96,7 +95,6 @@ function setInvidiousTorCustomRedirects(val) {
console.log("invidiousTorCustomRedirects: ", val)
}
-
let pipedNormalRedirectsChecks;
const getPipedNormalRedirectsChecks = () => pipedNormalRedirectsChecks;
function setPipedNormalRedirectsChecks(val) {
@@ -113,7 +111,6 @@ function setPipedNormalCustomRedirects(val) {
console.log("pipedNormalCustomRedirects: ", val)
}
-
let pipedTorRedirectsChecks;
const getPipedTorRedirectsChecks = () => pipedTorRedirectsChecks;
function setPipedTorRedirectsChecks(val) {
@@ -136,6 +133,44 @@ function setPipedRedirects(val) {
console.log("pipedRedirects: ", val)
}
+let pipedMaterialNormalRedirectsChecks;
+const getPipedMaterialNormalRedirectsChecks = () => pipedMaterialNormalRedirectsChecks;
+function setPipedMaterialNormalRedirectsChecks(val) {
+ pipedMaterialNormalRedirectsChecks = val;
+ browser.storage.local.set({ pipedMaterialNormalRedirectsChecks })
+ console.log("pipedMaterialNormalRedirectsChecks: ", val)
+}
+
+let pipedMaterialNormalCustomRedirects = [];
+const getPipedMaterialNormalCustomRedirects = () => pipedMaterialNormalCustomRedirects;
+function setPipedMaterialNormalCustomRedirects(val) {
+ pipedMaterialNormalCustomRedirects = val;
+ browser.storage.local.set({ pipedMaterialNormalCustomRedirects })
+ console.log("pipedMaterialNormalCustomRedirects: ", val)
+}
+
+let pipedMaterialTorRedirectsChecks;
+const getPipedMaterialTorRedirectsChecks = () => pipedMaterialTorRedirectsChecks;
+function setPipedMaterialTorRedirectsChecks(val) {
+ pipedMaterialTorRedirectsChecks = val;
+ browser.storage.local.set({ pipedMaterialTorRedirectsChecks })
+ console.log("pipedMaterialTorRedirectsChecks: ", val)
+}
+
+let pipedMaterialTorCustomRedirects = [];
+const getPipedMaterialTorCustomRedirects = () => pipedMaterialTorCustomRedirects;
+function setPipedMaterialTorCustomRedirects(val) {
+ pipedMaterialTorCustomRedirects = val;
+ browser.storage.local.set({ pipedMaterialTorCustomRedirects })
+ console.log("pipedMaterialTorCustomRedirects: ", val)
+}
+
+function setPipedMaterialRedirects(val) {
+ redirects.pipedMaterial = val;
+ browser.storage.local.set({ youtubeRedirects: redirects })
+ console.log("pipedMaterialRedirects: ", val)
+}
+
let disable;
const getDisable = () => disable;
function setDisable(val) {
@@ -386,28 +421,55 @@ function redirect(url, details, initiator) {
return `${randomInstance}${url.pathname}${url.search}`;
}
+ else if (frontend == 'pipedMaterial' ||
+ ((frontend == 'freetube' || frontend == 'yatte') && youtubeEmbedFrontend == 'pipedMaterial' && details.type === "sub_frame")) {
+ if (OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") return null;
+ if (
+ OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" &&
+ !((frontend == 'freetube' || frontend == 'yatte') && youtubeEmbedFrontend == 'pipedMaterial' && details.type == "sub_frame")
+ ) return null;
+
+ let instancesList;
+ if (protocol == 'normal') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
+ else if (protocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
+ let randomInstance = commonHelper.getRandomInstance(instancesList);
+
+ return `${randomInstance}${url.pathname}${url.search}`;
+ }
return 'CANCEL';
}
function changeInstance(url) {
+ console.log("changeInstance Youtube");
let protocolHost = `${url.protocol}//${url.host}`;
+ console.log("protocolHost", protocolHost);
+
if (
protocol == 'normal' &&
![
...redirects.invidious.normal,
...redirects.piped.normal,
+ ...redirects.pipedMaterial.normal,
+
...invidiousNormalCustomRedirects,
- ...pipedNormalCustomRedirects
+ ...pipedNormalCustomRedirects,
+ ...pipedMaterialNormalCustomRedirects
+ ].includes(protocolHost)
+ ) return null;
+
+ if (protocol == 'tor' &&
+ ![
+ ...redirects.invidious.tor,
+ ...redirects.piped.tor,
+ ...redirects.pipedMaterial.tor,
+
+ ...invidiousTorCustomRedirects,
+ ...pipedTorCustomRedirects,
+ ...pipedMaterialTorCustomRedirects
].includes(protocolHost)
) return null;
- if (protocol == 'tor' && ![
- ...redirects.invidious.tor,
- ...redirects.piped.tor,
- ...invidiousTorCustomRedirects,
- ...pipedTorCustomRedirects
- ].includes(protocolHost)) return null;
let instancesList;
if (frontend == 'invidious') {
@@ -418,6 +480,11 @@ function changeInstance(url) {
if (protocol == 'normal') instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
else if (protocol == 'tor') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
}
+ else if (frontend == 'pipedMaterial') {
+
+ if (protocol == 'normal') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
+ else if (protocol == 'tor') instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects];
+ }
console.log("instancesList", instancesList);
let index = instancesList.indexOf(protocolHost);
@@ -468,6 +535,14 @@ function isUrlPipedorInvidious(url, frontend) {
...pipedTorCustomRedirects,
].includes(protocolHost);
+ if (frontend == 'pipedMaterial')
+ return [
+ ...redirects.pipedMaterial.normal,
+ ...redirects.pipedMaterial.tor,
+ ...pipedMaterialNormalCustomRedirects,
+ ...pipedMaterialTorCustomRedirects,
+ ].includes(protocolHost);
+
return [
...redirects.invidious.normal,
...redirects.invidious.tor,
@@ -567,6 +642,16 @@ function initPipedLocalStorage(tabId) {
);
}
+function initPipedMaterialLocalStorage(tabId) {
+ browser.tabs.executeScript(
+ tabId,
+ {
+ file: "/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js",
+ runAt: "document_start"
+ }
+ );
+}
+
function initInvidiousCookies(tabId) {
browser.tabs.executeScript(
tabId,
@@ -605,6 +690,12 @@ async function init() {
"pipedNormalRedirectsChecks",
"pipedNormalCustomRedirects",
+ "pipedMaterialNormalRedirectsChecks",
+ "pipedMaterialNormalCustomRedirects",
+
+ "pipedMaterialTorRedirectsChecks",
+ "pipedMaterialTorCustomRedirects",
+
"pipedTorRedirectsChecks",
"pipedTorCustomRedirects",
"alwaysUsePreferred",
@@ -646,6 +737,13 @@ async function init() {
pipedTorRedirectsChecks = result.pipedTorRedirectsChecks ?? [...redirects.piped.tor];
pipedTorCustomRedirects = result.pipedTorCustomRedirects ?? [];
+
+ pipedMaterialNormalRedirectsChecks = result.pipedMaterialNormalRedirectsChecks ?? [...redirects.pipedMaterial.normal];
+ pipedMaterialNormalCustomRedirects = result.pipedMaterialNormalCustomRedirects ?? [];
+
+ pipedMaterialTorRedirectsChecks = result.pipedMaterialTorRedirectsChecks ?? [...redirects.pipedMaterial.tor];
+ pipedMaterialTorCustomRedirects = result.pipedMaterialTorCustomRedirects ?? [];
+
persistInvidiousPrefs = result.persistInvidiousPrefs ?? false;
alwaysUsePreferred = result.alwaysUsePreferred ?? true;
@@ -665,6 +763,7 @@ export default {
setBypassWatchOnYoutube,
initInvidiousCookies,
initPipedLocalStorage,
+ initPipedMaterialLocalStorage,
getFrontend,
setFrontend,
@@ -741,6 +840,20 @@ export default {
getPipedTorCustomRedirects,
setPipedTorCustomRedirects,
+ getPipedMaterialNormalRedirectsChecks,
+ setPipedMaterialNormalRedirectsChecks,
+
+ getPipedMaterialNormalCustomRedirects,
+ setPipedMaterialNormalCustomRedirects,
+
+ getPipedMaterialTorRedirectsChecks,
+ setPipedMaterialTorRedirectsChecks,
+
+ getPipedMaterialTorCustomRedirects,
+ setPipedMaterialTorCustomRedirects,
+
+ setPipedMaterialRedirects,
+
getExceptions,
setExceptions,
isException,