diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-03-03 22:13:17 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-03-03 22:13:17 +0300 |
commit | 3ef2aa7cc112a9c0dad8cf4dc71afcb657ba095d (patch) | |
tree | a8159db9cebfa406ad2cef2d827031f04da8bfca /src/assets | |
parent | Bump version to 1.4.7 (diff) | |
download | libredirect-3ef2aa7cc112a9c0dad8cf4dc71afcb657ba095d.zip |
Added Piped-Material #51
Diffstat (limited to 'src/assets')
-rw-r--r-- | src/assets/javascripts/helpers/youtube/pipedMaterial-preferences.js | 25 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/youtube/youtube.js | 137 |
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, |