From 41e145bf7a63fc0a181370005f780d5e85f72e83 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Sat, 26 Feb 2022 01:31:48 +0300 Subject: [PATCH] Made auto changing instances manual #59 --- src/assets/javascripts/helpers/imgur.js | 27 ++++++ src/assets/javascripts/helpers/instagram.js | 27 ++++++ src/assets/javascripts/helpers/medium.js | 28 ++++++ src/assets/javascripts/helpers/reddit.js | 65 +++++++++++--- src/assets/javascripts/helpers/search.js | 44 ++++++++- src/assets/javascripts/helpers/translate.js | 41 +++++++++ src/assets/javascripts/helpers/twitter.js | 27 ++++++ src/assets/javascripts/helpers/wikipedia.js | 27 ++++++ .../javascripts/helpers/youtube/youtube.js | 20 ++++- src/pages/background/background.js | 90 +------------------ src/pages/options/general/general.html | 8 +- src/pages/options/general/general.js | 5 ++ src/pages/options/imgur/imgur.html | 2 +- src/pages/options/instagram/instagram.html | 2 +- src/pages/options/maps/maps.html | 2 +- src/pages/options/medium/medium.html | 2 +- src/pages/options/reddit/reddit.html | 2 +- src/pages/options/reddit/reddit.js | 4 +- src/pages/options/search/search.html | 2 +- src/pages/options/tiktok/tiktok.html | 2 +- src/pages/options/translate/translate.html | 4 +- src/pages/options/twitter/twitter.html | 6 +- src/pages/options/wikipedia/wikipedia.html | 2 +- src/pages/options/youtube/youtube.html | 2 +- .../options/youtubeMusic/youtubeMusic.html | 2 +- src/pages/popup/popup.html | 17 ++-- src/pages/popup/popup.js | 35 ++++++++ src/pages/popup/style.css | 2 +- src/pages/stylesheets/styles.css | 14 +-- 29 files changed, 376 insertions(+), 135 deletions(-) diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js index 560c396d..927ce4a7 100644 --- a/src/assets/javascripts/helpers/imgur.js +++ b/src/assets/javascripts/helpers/imgur.js @@ -118,6 +118,32 @@ function redirect(url, type) { return `${randomInstance}${url.pathname}${url.search}`; } +function changeInstance(url) { + let protocolHost = `${url.protocol}//${url.host}`; + + let imgurList = [ + ...redirects.rimgo.normal, + ...redirects.rimgo.tor, + + ...rimgoNormalCustomRedirects, + ...rimgoTorCustomRedirects, + ]; + if (!imgurList.includes(protocolHost)) return null; + + let instancesList; + if (protocol == 'normal') instancesList = [...rimgoNormalCustomRedirects, ...rimgoNormalRedirectsChecks]; + else if (protocol == 'tor') instancesList = [...rimgoTorCustomRedirects, ...rimgoTorRedirectsChecks]; + + console.log("instancesList", instancesList); + let index = instancesList.indexOf(protocolHost); + if (index > -1) instancesList.splice(index, 1); + + if (instancesList.length === 0) return null; + + let randomInstance = commonHelper.getRandomInstance(instancesList); + return randomInstance; +} + async function init() { return new Promise((resolve) => { fetch('/instances/data.json').then(response => response.text()).then(data => { @@ -179,4 +205,5 @@ export default { redirect, isImgur, init, + changeInstance, }; diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js index 9aeeebc0..410d6377 100644 --- a/src/assets/javascripts/helpers/instagram.js +++ b/src/assets/javascripts/helpers/instagram.js @@ -135,6 +135,32 @@ function redirect(url, type) { return `${randomInstance}/u${url.pathname}${url.search}`; // Likely a user profile, redirect to '/u/...' } +function changeInstance(url) { + let protocolHost = `${url.protocol}//${url.host}`; + + let instagramList = [ + ...redirects.bibliogram.normal, + ...redirects.bibliogram.tor, + ...bibliogramNormalCustomRedirects, + ...bibliogramTorCustomRedirects, + ]; + + if (!instagramList.includes(protocolHost)) return null; + + let instancesList; + if (protocol == 'normal') instancesList = [...bibliogramNormalCustomRedirects, ...bibliogramNormalRedirectsChecks]; + else if (protocol == 'tor') instancesList = [...bibliogramTorCustomRedirects, ...bibliogramTorRedirectsChecks]; + + console.log("instancesList", instancesList); + let index = instancesList.indexOf(protocolHost); + if (index > -1) instancesList.splice(index, 1); + + if (instancesList.length === 0) return null; + + let randomInstance = commonHelper.getRandomInstance(instancesList); + return randomInstance; +} + async function init() { return new Promise((resolve) => { @@ -199,4 +225,5 @@ export default { redirect, init, + changeInstance, }; diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js index 7bd5aa68..0c0455c0 100644 --- a/src/assets/javascripts/helpers/medium.js +++ b/src/assets/javascripts/helpers/medium.js @@ -128,6 +128,33 @@ function redirect(url, type) { return `${randomInstance}${url.pathname}${url.search}`; } +function changeInstance(url) { + let protocolHost = `${url.protocol}//${url.host}`; + + let mediumList = [ + ...redirects.scribe.tor, + ...redirects.scribe.normal, + + ...scribeNormalCustomRedirects, + ...scribeTorCustomRedirects, + ]; + + if (!mediumList.includes(protocolHost)) return null; + + let instancesList; + if (protocol == 'normal') instancesList = [...scribeNormalCustomRedirects, ...scribeNormalRedirectsChecks]; + else if (protocol == 'tor') instancesList = [...scribeTorCustomRedirects, ...scribeTorRedirectsChecks]; + + console.log("instancesList", instancesList); + let index = instancesList.indexOf(protocolHost); + if (index > -1) instancesList.splice(index, 1); + + if (instancesList.length === 0) return null; + + let randomInstance = commonHelper.getRandomInstance(instancesList); + return randomInstance; +} + async function init() { return new Promise((resolve) => { fetch('/instances/data.json').then(response => response.text()).then(data => { @@ -189,4 +216,5 @@ export default { redirect, isMedium, init, + changeInstance, }; diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js index 382f15cc..26350ef7 100644 --- a/src/assets/javascripts/helpers/reddit.js +++ b/src/assets/javascripts/helpers/reddit.js @@ -169,11 +169,11 @@ function setDisableReddit(val) { browser.storage.local.set({ disableReddit }) } -let redditFrontend; -const getRedditFrontend = () => redditFrontend; -function setRedditFrontend(val) { - redditFrontend = val; - browser.storage.local.set({ redditFrontend }) +let frontend; +const getFrontend = () => frontend; +function setFrontend(val) { + frontend = val; + browser.storage.local.set({ redditFrontend: frontend }) }; let protocol; @@ -184,7 +184,6 @@ function setProtocol(val) { console.log("redditProtocol: ", val) } - function isReddit(url, initiator) { if ( initiator && @@ -223,12 +222,12 @@ function redirect(url, type) { return `${libredditRandomInstance}/img${url.pathname}${url.search}`; } else if (url.host === "redd.it") { - if (redditFrontend == 'libreddit') { + if (frontend == 'libreddit') { if (libredditInstancesList.length === 0) return null; let libredditRandomInstance = commonHelper.getRandomInstance(libredditInstancesList); return `${libredditRandomInstance}${url.pathname}${url.search}`; } - if (redditFrontend == 'teddit' && !url.pathname.match(/^\/+[^\/]+\/+[^\/]/)) { + if (frontend == 'teddit' && !url.pathname.match(/^\/+[^\/]+\/+[^\/]/)) { if (tedditInstancesList.length === 0) return null; let tedditRandomInstance = commonHelper.getRandomInstance(tedditInstancesList); // As of 2021-04-22, redirects for teddit redd.it/foo links don't work. @@ -241,18 +240,57 @@ function redirect(url, type) { return `${tedditRandomInstance}/comments${url.pathname}${url.search}`; } } - if (redditFrontend == 'libreddit') { + if (frontend == 'libreddit') { if (libredditInstancesList.length === 0) return null; let libredditRandomInstance = commonHelper.getRandomInstance(libredditInstancesList); return `${libredditRandomInstance}${url.pathname}${url.search}`; } - if (redditFrontend == 'teddit') { + if (frontend == 'teddit') { if (tedditInstancesList.length === 0) return null; let tedditRandomInstance = commonHelper.getRandomInstance(tedditInstancesList); return `${tedditRandomInstance}${url.pathname}${url.search}`; } } +function changeInstance(url) { + let protocolHost = `${url.protocol}//${url.host}`; + + let redditList = [ + ...redirects.libreddit.normal, + ...redirects.libreddit.tor, + + ...libredditNormalCustomRedirects, + ...libredditTorCustomRedirects, + + ...redirects.teddit.normal, + ...redirects.teddit.tor, + + ...tedditNormalCustomRedirects, + ...tedditTorCustomRedirects, + ] + + if (!redditList.includes(protocolHost)) return null; + + let instancesList; + if (frontend == 'libreddit') { + if (protocol == 'normal') instancesList = [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...libredditTorRedirectsChecks, ...libredditTorCustomRedirects]; + } + else if (frontend == 'teddit') { + if (protocol == 'normal') instancesList = [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...tedditTorRedirectsChecks, ...tedditTorCustomRedirects]; + } + + console.log("instancesList", instancesList); + let index = instancesList.indexOf(protocolHost); + if (index > -1) instancesList.splice(index, 1); + + if (instancesList.length === 0) return null; + + let randomInstance = commonHelper.getRandomInstance(instancesList); + return randomInstance; +} + async function init() { return new Promise((resolve) => { fetch('/instances/data.json').then(response => response.text()).then(data => { @@ -277,7 +315,7 @@ async function init() { ], (result) => { disableReddit = result.disableReddit ?? false; protocol = result.redditProtocol ?? 'normal'; - redditFrontend = result.redditFrontend ?? 'libreddit'; + frontend = result.redditFrontend ?? 'libreddit'; redirects.teddit = dataJson.teddit; if (result.redditRedirects) redirects = result.redditRedirects; @@ -313,8 +351,8 @@ export default { getDisableReddit, setDisableReddit, - getRedditFrontend, - setRedditFrontend, + getFrontend, + setFrontend, getProtocol, setProtocol, @@ -342,4 +380,5 @@ export default { redirect, isReddit, init, + changeInstance, }; diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js index 789f7d97..efbc10d3 100644 --- a/src/assets/javascripts/helpers/search.js +++ b/src/assets/javascripts/helpers/search.js @@ -186,6 +186,45 @@ function redirect(url) { return `${randomInstance}${path}?${searchQuery}`; } +function changeInstance(url) { + let protocolHost = `${url.protocol}//${url.host}`; + + let searchList = [ + ...redirects.searx.normal, + ...redirects.searx.tor, + + ...searxNormalCustomRedirects, + ...searxTorCustomRedirects, + + ...redirects.whoogle.normal, + ...redirects.whoogle.tor, + + ...whoogleNormalCustomRedirects, + ...whoogleTorCustomRedirects, + ] + + if (!searchList.includes(protocolHost)) return null; + + let instancesList; + if (frontend == 'searx') { + if (protocol == 'normal') instancesList = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...searxTorRedirectsChecks, ...searxTorCustomRedirects]; + } + else if (frontend == 'whoogle') { + if (protocol == 'normal') instancesList = [...whoogleNormalRedirectsChecks, ...whoogleNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...whoogleTorRedirectsChecks, ...whoogleTorCustomRedirects]; + } + + console.log("instancesList", instancesList); + let index = instancesList.indexOf(protocolHost); + if (index > -1) instancesList.splice(index, 1); + + if (instancesList.length === 0) return null; + + let randomInstance = commonHelper.getRandomInstance(instancesList); + return randomInstance; +} + async function init() { return new Promise((resolve) => { fetch('/instances/data.json').then(response => response.text()).then(data => { @@ -198,13 +237,13 @@ async function init() { "whoogleNormalRedirectsChecks", "whoogleNormalCustomRedirects", - + "whoogleTorRedirectsChecks", "whoogleTorCustomRedirects", "searxNormalRedirectsChecks", "searxNormalCustomRedirects", - + "searxTorRedirectsChecks", "searxTorCustomRedirects", @@ -279,4 +318,5 @@ export default { redirect, init, + changeInstance, }; diff --git a/src/assets/javascripts/helpers/translate.js b/src/assets/javascripts/helpers/translate.js index 72ba8a58..1f92bb78 100644 --- a/src/assets/javascripts/helpers/translate.js +++ b/src/assets/javascripts/helpers/translate.js @@ -220,6 +220,46 @@ function redirect(url) { } } +function changeInstance(url) { + let protocolHost = `${url.protocol}//${url.host}`; + + let translateList = [ + ...redirects.simplyTranslate.normal, + ...redirects.simplyTranslate.tor, + + ...simplyTranslateNormalCustomRedirects, + ...simplyTranslateTorCustomRedirects, + + ...redirects.lingva.normal, + ...redirects.lingva.tor, + + ...lingvaNormalCustomRedirects, + ...lingvaTorCustomRedirects, + ] + + if (!translateList.includes(protocolHost)) return null; + + let instancesList; + if (frontend == 'simplyTranslate') { + if (protocol == 'normal') instancesList = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects]; + } + else if (frontend == 'lingva') { + if (protocol == 'normal') instancesList = [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects]; + } + + console.log("instancesList", instancesList); + let index = instancesList.indexOf(protocolHost); + if (index > -1) instancesList.splice(index, 1); + + if (instancesList.length === 0) return null; + + let randomInstance = commonHelper.getRandomInstance(instancesList); + return randomInstance; + +} + async function init() { return new Promise((resolve) => { fetch('/instances/data.json').then(response => response.text()).then(data => { @@ -318,4 +358,5 @@ export default { redirect, init, + changeInstance, }; diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index 3757edc4..4465aba4 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -132,6 +132,32 @@ function redirect(url) { return `${randomInstance}${url.pathname}${url.search}`; } +function changeInstance(url) { + let protocolHost = `${url.protocol}//${url.host}`; + + let twitterList = [ + ...redirects.nitter.normal, + ...redirects.nitter.tor, + ...nitterNormalCustomRedirects, + ...nitterTorCustomRedirects, + ]; + + if (!twitterList.includes(protocolHost)) return null; + + let instancesList; + if (protocol == 'normal') instancesList = [...nitterNormalRedirectsChecks, ...nitterNormalCustomRedirects]; + else if (protocol == 'tor') instancesList = [...nitterTorRedirectsChecks, ...nitterTorCustomRedirects]; + + console.log("instancesList", instancesList); + let index = instancesList.indexOf(protocolHost); + if (index > -1) instancesList.splice(index, 1); + + if (instancesList.length === 0) return null; + + let randomInstance = commonHelper.getRandomInstance(instancesList); + return randomInstance; +} + async function init() { return new Promise((resolve) => { fetch('/instances/data.json').then(response => response.text()).then(data => { @@ -193,4 +219,5 @@ export default { redirect, isTwitter, init, + changeInstance, }; diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js index 02110639..402b3009 100644 --- a/src/assets/javascripts/helpers/wikipedia.js +++ b/src/assets/javascripts/helpers/wikipedia.js @@ -134,6 +134,32 @@ function redirect(url) { } +function changeInstance(url) { + let protocolHost = `${url.protocol}//${url.host}`; + + let wikipediaList = [ + ...redirects.wikiless.normal, + ...redirects.wikiless.tor, + + ...wikilessNormalCustomRedirects, + ...wikilessTorCustomRedirects, + ] + if (!wikipediaList.includes(protocolHost)) return null; + + let instancesList; + if (protocol == 'normal') instancesList = [...wikilessNormalCustomRedirects, ...wikilessNormalRedirectsChecks]; + else if (protocol == 'tor') instancesList = [...wikilessTorCustomRedirects, ...wikilessTorRedirectsChecks]; + + console.log("instancesList", instancesList); + let index = instancesList.indexOf(protocolHost); + if (index > -1) instancesList.splice(index, 1); + + if (instancesList.length === 0) return null; + + let randomInstance = commonHelper.getRandomInstance(instancesList); + return randomInstance; +} + async function init() { return new Promise((resolve) => { fetch('/instances/data.json').then(response => response.text()).then(data => { @@ -193,4 +219,5 @@ export default { redirect, isWikipedia, init, + changeInstance, }; diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index 55f18555..f17b4626 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -383,6 +383,23 @@ function redirect(url, type, details) { function changeInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; + + if ( + protocol == 'normal' && + ![ + ...redirects.invidious.normal, + ...redirects.piped.normal, + ...invidiousNormalCustomRedirects, + ...pipedNormalCustomRedirects + ].includes(protocolHost) + ) return null; + if (protocol == 'tor' && ![ + ...redirects.invidious.tor, + ...redirects.piped.tor, + ...invidiousTorCustomRedirects, + ...pipedTorCustomRedirects + ].includes(protocolHost)) return null; + let instancesList; if (frontend == 'invidious') { if (protocol == 'normal') instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]; @@ -399,7 +416,7 @@ function changeInstance(url) { if (instancesList.length === 0) return null; let randomInstance = commonHelper.getRandomInstance(instancesList); - return `${randomInstance}${url.pathname}${url.search}`; + return randomInstance; } function isPipedorInvidious(url, type) { @@ -527,7 +544,6 @@ function invidiousInitCookies(tabId) { ); } - async function init() { return new Promise((resolve) => { fetch('/instances/data.json').then(response => response.text()).then(data => { diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 1f91ad4d..50b054ec 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -90,96 +90,8 @@ browser.webRequest.onBeforeRequest.addListener( ["blocking"] ); -browser.webRequest.onResponseStarted.addListener( - (responseDetails) => { - let url = new URL(responseDetails.url); - let protocolHost = `${url.protocol}//${url.host}`; - var mightyList = getMightyList(); - - if (mightyList.includes(protocolHost)); { - if (responseDetails.statusCode >= 500 && responseDetails.type === "main_frame") { - console.log("Instance is corrupted, redirecting", responseDetails.url); - changeInstance(responseDetails.url); - } - } - }, - { urls: [""] } -); - browser.tabs.onUpdated.addListener( (tabId, changeInfo) => { if (changeInfo.url && youtubeHelper.isUrlPipedorInvidious(changeInfo.url)) youtubeHelper.invidiousInitCookies(tabId); - }); - -function changeInstance(url) { - var tabUrl = new URL(url); - var protocolHost = `${tabUrl.protocol}//${tabUrl.host}`; - var newUrl; - - console.log("wewe") - newUrl = youtubeHelper.changeInstance(url); - - let twitterList = [...twitterHelper.getRedirects().nitter.normal]; - if (twitterList.includes(protocolHost) && twitterList.length > 1) newUrl = 'https://twitter.com'; - - let instagramList = [...instagramHelper.getRedirects().bibliogram.normal]; - if (instagramList.includes(protocolHost) && instagramList.length > 1) newUrl = 'https://instagram.com'; - - let redditList = [...redditHelper.getRedirects().libreddit.normal, ...redditHelper.getRedirects().teddit.normal] - if (redditList.includes(protocolHost) && redditList.length > 1) { - if (tabUrl.pathname.startsWith('/img')) { - newUrl = "https://i.redd.it" - tabUrl.href = tabUrl.href.replace("/img", "") - } - else - newUrl = 'https://reddit.com'; - } - - let searchList = [...searchHelper.getRedirects().searx.normal, ...searchHelper.getRedirects().whoogle.normal] - if (searchList.includes(protocolHost) && searchList.length > 1) newUrl = 'https://google.com'; - - let translateList = [...translateHelper.getRedirects().simplyTranslate.normal, ...translateHelper.getRedirects().lingva.normal] - if (translateList.includes(protocolHost) && translateList.length > 1) newUrl = 'https://translate.google.com'; - - let mediumList = [...mediumHelper.getRedirects().scribe.normal] - if (mediumList.includes(protocolHost) && mediumList.length > 1) newUrl = 'https://medium.com'; - - let imgurList = [...imgurHelper.getRedirects().rimgo.normal]; - if (imgurList.includes(protocolHost) && imgurList.length > 1) newUrl = 'https://imgur.com'; - - let wikipediaList = [...wikipediaHelper.getRedirects().wikiless.normal] - if (wikipediaList.includes(protocolHost) && wikipediaList.length > 1) newUrl = 'https://wikipedia.com'; - - if (newUrl) browser.tabs.update({ url: tabUrl.href.replace(protocolHost, newUrl) }); -} - -function getMightyList() { - return [ - ...youtubeHelper.getCustomRedirects().invidious.normal, - ...youtubeHelper.getCustomRedirects().piped.normal, - - ...twitterHelper.getCustomRedirects().nitter.normal, - - ...youtubeMusicHelper.getCustomRedirects().beatbump.normal, - - ...instagramHelper.getCustomRedirects().bibliogram.normal, - - ...redditHelper.getCustomRedirects().libreddit.normal, - ...redditHelper.getCustomRedirects().teddit.normal, - redditHelper.getCustomRedirects().desktop, - redditHelper.getCustomRedirects().mobile, - - ...searchHelper.getCustomRedirects().searx.normal, - ...searchHelper.getCustomRedirects().whoogle.normal, - - ...translateHelper.getCustomRedirects().simplyTranslate.normal, - ...translateHelper.getCustomRedirects().lingva.normal, - - ...mediumHelper.getCustomRedirects().scribe.normal, - - ...imgurHelper.getCustomRedirects().rimgo.normal, - - ...wikipediaHelper.getCustomRedirects().wikiless.normal - ]; -} + }); \ No newline at end of file diff --git a/src/pages/options/general/general.html b/src/pages/options/general/general.html index d86dacd2..9cb247ef 100644 --- a/src/pages/options/general/general.html +++ b/src/pages/options/general/general.html @@ -23,7 +23,7 @@ YouTube
- + YT Music
@@ -126,6 +126,12 @@
+ +

Exceptions

diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js index 7fa85a3a..2796bba1 100644 --- a/src/pages/options/general/general.js +++ b/src/pages/options/general/general.js @@ -31,6 +31,11 @@ document.querySelector("#update-instances").addEventListener("click", () => { else document.querySelector("#update-instances").innerHTML = 'Failed Miserabely'; }); + +document.querySelector("#export-settings").addEventListener("click", () => { + browser.storage.local.get(null, result => console.log(result)) +}); + let nameCustomInstanceInput = document.getElementById("exceptions-custom-instance"); let instanceTypeElement = document.getElementById("exceptions-custom-instance-type"); let instanceType = "url" diff --git a/src/pages/options/imgur/imgur.html b/src/pages/options/imgur/imgur.html index 35e7707b..65c35b64 100644 --- a/src/pages/options/imgur/imgur.html +++ b/src/pages/options/imgur/imgur.html @@ -24,7 +24,7 @@ YouTube
- + YT Music
diff --git a/src/pages/options/instagram/instagram.html b/src/pages/options/instagram/instagram.html index 2d4b79c5..a4f33a7c 100644 --- a/src/pages/options/instagram/instagram.html +++ b/src/pages/options/instagram/instagram.html @@ -25,7 +25,7 @@ YouTube
- + YT Music
diff --git a/src/pages/options/maps/maps.html b/src/pages/options/maps/maps.html index 2fedc4d3..8a07b50f 100644 --- a/src/pages/options/maps/maps.html +++ b/src/pages/options/maps/maps.html @@ -25,7 +25,7 @@ YouTube
- + YT Music
diff --git a/src/pages/options/medium/medium.html b/src/pages/options/medium/medium.html index 5cdd223b..69fff984 100644 --- a/src/pages/options/medium/medium.html +++ b/src/pages/options/medium/medium.html @@ -24,7 +24,7 @@ YouTube
- + YT Music
diff --git a/src/pages/options/reddit/reddit.html b/src/pages/options/reddit/reddit.html index 4da143c5..fce58192 100644 --- a/src/pages/options/reddit/reddit.html +++ b/src/pages/options/reddit/reddit.html @@ -24,7 +24,7 @@ YouTube
- + YT Music
diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js index 549822a5..ac629e44 100644 --- a/src/pages/options/reddit/reddit.js +++ b/src/pages/options/reddit/reddit.js @@ -23,7 +23,7 @@ let redditFrontendElement = document.getElementById("reddit-frontend"); redditFrontendElement.addEventListener("change", (event) => { let frontend = event.target.options[redditFrontendElement.selectedIndex].value - redditHelper.setRedditFrontend(frontend) + redditHelper.setFrontend(frontend) changeFrontendsSettings(frontend); } ); @@ -60,7 +60,7 @@ function changeProtocolSettings(protocol) { redditHelper.init().then(() => { disableRedditElement.checked = !redditHelper.getDisableReddit(); - let frontend = redditHelper.getRedditFrontend(); + let frontend = redditHelper.getFrontend(); redditFrontendElement.value = frontend; changeFrontendsSettings(frontend); diff --git a/src/pages/options/search/search.html b/src/pages/options/search/search.html index 81ac9f0c..91f1069f 100644 --- a/src/pages/options/search/search.html +++ b/src/pages/options/search/search.html @@ -24,7 +24,7 @@ YouTube
- + YT Music
diff --git a/src/pages/options/tiktok/tiktok.html b/src/pages/options/tiktok/tiktok.html index 77dc5d95..42b99330 100644 --- a/src/pages/options/tiktok/tiktok.html +++ b/src/pages/options/tiktok/tiktok.html @@ -24,7 +24,7 @@ YouTube
- + YT Music
diff --git a/src/pages/options/translate/translate.html b/src/pages/options/translate/translate.html index 2240bc3b..a51b459e 100644 --- a/src/pages/options/translate/translate.html +++ b/src/pages/options/translate/translate.html @@ -19,12 +19,12 @@ General
-
+
- + YT Music
diff --git a/src/pages/options/twitter/twitter.html b/src/pages/options/twitter/twitter.html index 304ccecc..b5ff73ce 100644 --- a/src/pages/options/twitter/twitter.html +++ b/src/pages/options/twitter/twitter.html @@ -20,12 +20,12 @@ General
-
+
- + YT Music
@@ -186,4 +186,4 @@ - + \ No newline at end of file diff --git a/src/pages/options/wikipedia/wikipedia.html b/src/pages/options/wikipedia/wikipedia.html index 53d46df4..d76480ef 100644 --- a/src/pages/options/wikipedia/wikipedia.html +++ b/src/pages/options/wikipedia/wikipedia.html @@ -24,7 +24,7 @@ YouTube
- + YT Music
diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html index 0fb4f195..4aa75f22 100644 --- a/src/pages/options/youtube/youtube.html +++ b/src/pages/options/youtube/youtube.html @@ -25,7 +25,7 @@ YouTube
- + YT Music
diff --git a/src/pages/options/youtubeMusic/youtubeMusic.html b/src/pages/options/youtubeMusic/youtubeMusic.html index bf98692b..d9b8b89b 100644 --- a/src/pages/options/youtubeMusic/youtubeMusic.html +++ b/src/pages/options/youtubeMusic/youtubeMusic.html @@ -25,7 +25,7 @@ YouTube
- + YT Music
diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html index fca93ab4..93d9d19c 100644 --- a/src/pages/popup/popup.html +++ b/src/pages/popup/popup.html @@ -152,15 +152,22 @@
+ + diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index dfbee60b..9c5f28f3 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -109,3 +109,38 @@ disableMediumElement.addEventListener("change", document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage() ); + +document.getElementById("change-instance").addEventListener("click", + () => browser.tabs.query({ active: true, currentWindow: true }, function (tabs) { + let currTab = tabs[0]; + if (currTab) { + changeInstance(currTab.url) + } + }) +); + +function changeInstance(url) { + var tabUrl = new URL(url); + var protocolHost = `${tabUrl.protocol}//${tabUrl.host}`; + var newUrl; + + newUrl = youtubeHelper.changeInstance(tabUrl); + + if (!newUrl) newUrl = twitterHelper.changeInstance(tabUrl); + + if (!newUrl) newUrl = instagramHelper.changeInstance(tabUrl); + + if (!newUrl) newUrl = redditHelper.changeInstance(tabUrl); + + if (!newUrl) newUrl = searchHelper.changeInstance(tabUrl); + + if (!newUrl) newUrl = translateHelper.changeInstance(tabUrl); + + if (!newUrl) newUrl = mediumHelper.changeInstance(tabUrl); + + if (!newUrl) newUrl = imgurHelper.changeInstance(tabUrl); + + if (!newUrl) newUrl = wikipediaHelper.changeInstance(tabUrl) + + if (newUrl) browser.tabs.update({ url: tabUrl.href.replace(protocolHost, newUrl) }); +} diff --git a/src/pages/popup/style.css b/src/pages/popup/style.css index f223ec52..477035bb 100644 --- a/src/pages/popup/style.css +++ b/src/pages/popup/style.css @@ -1,4 +1,4 @@ body { - width: 230px; + width: 240px; min-height: auto; } \ No newline at end of file diff --git a/src/pages/stylesheets/styles.css b/src/pages/stylesheets/styles.css index 6293184f..ab300d4a 100644 --- a/src/pages/stylesheets/styles.css +++ b/src/pages/stylesheets/styles.css @@ -17,6 +17,7 @@ body { font-family: Sans-Serif; background-color: var(--bg-main); color: var(--text); + overflow-x:hidden } div.some-block input[type="checkbox"] { @@ -60,9 +61,9 @@ select { border-radius: 3px; } -a.button * { +/* a.button * { vertical-align: middle; -} +} */ a.button:hover { background-color: var(--active); @@ -209,19 +210,22 @@ div.some-block input[type="checkbox"]:checked::before { div.buttons { margin-bottom: 15px; + margin-top: 15px; } a.button { stroke: var(--text); - display: block; + display: flex; + justify-content: center; + align-items: center; border-radius: 5px; border: var(--active) solid 1px; color: var(--text); font-size: 12px; font-weight: bold; - margin: 7.5px 15px; + /* width: 180px; */ + margin: 8px 20px; padding: 10px; - text-align: center; text-decoration: none; cursor: pointer; transition-duration: 0.1s;