diff options
Diffstat (limited to 'src')
26 files changed, 286 insertions, 173 deletions
diff --git a/src/assets/javascripts/data.js b/src/assets/javascripts/data.js index 13172f79..fad2ea9d 100644 --- a/src/assets/javascripts/data.js +++ b/src/assets/javascripts/data.js @@ -1,6 +1,7 @@ "use strict"; let exceptions; + function setExceptions(val) { exceptions = val; browser.storage.sync.set({ exceptions }) diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js index 094c19e4..72a62f66 100644 --- a/src/assets/javascripts/helpers/common.js +++ b/src/assets/javascripts/helpers/common.js @@ -4,6 +4,7 @@ import instagramHelper from "./instagram.js"; import mediumHelper from "./medium.js"; import redditHelper from "./reddit.js"; import searchHelper from "./google-search.js"; +import data from '../data.js' import googleTranslateHelper from "./google-translate.js"; import wikipediaHelper from "./wikipedia.js"; import mapsHelper from "./google-maps.js"; diff --git a/src/assets/javascripts/helpers/google-maps.js b/src/assets/javascripts/helpers/google-maps.js index f0cf01bc..321d5174 100644 --- a/src/assets/javascripts/helpers/google-maps.js +++ b/src/assets/javascripts/helpers/google-maps.js @@ -1,3 +1,5 @@ +import commonHelper from './common.js' + const targets = /https?:\/\/(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/; const redirects = { "normal": [ @@ -58,20 +60,21 @@ function setOsmInstance(val) { browser.storage.sync.set({ osmInstance }) }; -function redirectGoogleMaps(url, initiator) { - if (disableOsm || data.isException(url, initiator)) +async function redirect(url, initiator) { + await init() + if (disableOsm) return null; if (initiator && initiator.host === "earth.google.com") return null; let redirect; - let link = commonHelper.getRandomInstance(mapsHelper.redirects.normal); + let link = commonHelper.getRandomInstance(redirects.normal); let mapCentre = ""; let params = ""; // Set map centre if present - if (url.pathname.match(mapsHelper.mapCentreRegex)) { - const [, lat, lon, zoom] = url.pathname.match(mapsHelper.mapCentreRegex); + if (url.pathname.match(mapCentreRegex)) { + const [, lat, lon, zoom] = url.pathname.match(mapCentreRegex); mapCentre = `#map=${zoom}/${lat}/${lon}`; } else if (url.search.includes("center=")) { const [lat, lon] = url.searchParams.get("center").split(","); @@ -81,7 +84,7 @@ function redirectGoogleMaps(url, initiator) { params = "&zoom=17"; } // Set map layer - params = `${params}&layers=${mapsHelper.layers[url.searchParams.get("layer")] || mapsHelper.layers["none"] + params = `${params}&layers=${layers[url.searchParams.get("layer")] || layers["none"] }`; // Handle Google Maps Embed API if (url.pathname.split("/").includes("embed")) { @@ -97,25 +100,25 @@ function redirectGoogleMaps(url, initiator) { } } let marker, bbox; - mapsHelper.addressToLatLng(query, (coords, boundingbox) => { + addressToLatLng(query, (coords, boundingbox) => { marker = coords; bbox = boundingbox; }); redirect = `${link}/export/embed.html?bbox=${bbox}&layer=mapnik&marker=${marker}`; // Handle Google Maps Directions } else if (url.pathname.split("/").includes("dir")) { - const travelMode = mapsHelper.travelModes[url.searchParams.get("travelmode")] || mapsHelper.travelModes["driving"]; + const travelMode = travelModes[url.searchParams.get("travelmode")] || travelModes["driving"]; let origin; - mapsHelper.addressToLatLng(url.searchParams.get("origin"), (coords) => origin = coords); + addressToLatLng(url.searchParams.get("origin"), (coords) => origin = coords); let destination; - mapsHelper.addressToLatLng(url.searchParams.get("destination"), (coords) => destination = coords); + addressToLatLng(url.searchParams.get("destination"), (coords) => destination = coords); redirect = `${link}/directions?engine=${travelMode}&route=${origin}%3B${destination}${mapCentre}${params}`; // Get marker from data attribute } else if ( url.pathname.includes("data=") && - url.pathname.match(mapsHelper.dataLatLngRegex) + url.pathname.match(dataLatLngRegex) ) { - const [mlat, mlon] = url.pathname.match(mapsHelper.dataLatLngRegex); + const [mlat, mlon] = url.pathname.match(dataLatLngRegex); redirect = `${link}/?mlat=${mlat.replace("!3d", "")}&mlon=${mlon.replace("!4d", "")}${mapCentre}${params}`; // Get marker from ll param } else if (url.searchParams.has("ll")) { @@ -130,13 +133,23 @@ function redirectGoogleMaps(url, initiator) { let query; if (url.searchParams.has("q")) query = url.searchParams.get("q"); else if (url.searchParams.has("query")) query = url.searchParams.get("query"); - else if (url.pathname.match(mapsHelper.placeRegex)) query = url.pathname.match(mapsHelper.placeRegex)[1]; + else if (url.pathname.match(placeRegex)) query = url.pathname.match(placeRegex)[1]; redirect = `${link}/${query ? "search?query=" + query : ""}${mapCentre || "#"}${params}`; } return redirect; } + +async function init() { + let result = await browser.storage.sync.get([ + "disableOsm", + "osmInstance", + ]) + disableOsm = result.disableOsm; + osmInstance = result.osmInstance; +} + export default { targets, redirects, @@ -150,5 +163,6 @@ export default { setDisableOsm, getOsmInstance, setOsmInstance, - redirectGoogleMaps, + redirect, + init, }; diff --git a/src/assets/javascripts/helpers/google-search.js b/src/assets/javascripts/helpers/google-search.js index a17843b7..54c8536f 100644 --- a/src/assets/javascripts/helpers/google-search.js +++ b/src/assets/javascripts/helpers/google-search.js @@ -1,3 +1,5 @@ +import commonHelper from './common.js' + const targets = [ /https:\/\/google\.com/, /https:\/\/.*\.google\.com/, @@ -150,12 +152,12 @@ const redirects = { } }; - let disableSearch; const getDisableSearch = () => disableSearch; function setDisableSearch(val) { disableSearch = val; browser.storage.sync.set({ disableSearch }) + console.log("disableSearch: ", disableSearch) } let searchInstance; @@ -170,22 +172,22 @@ const getSearchFrontend = () => searchFrontend; function setSearchFrontend(val) { searchFrontend = val; browser.storage.sync.set({ searchFrontend }) + console.log("searchFrontend: ", searchFrontend) }; -function redirect(url, initiator) { - console.info("searchFrontend:", searchFrontend) - if (disableSearch || data.isException(url, initiator)) { +async function redirect(url, initiator) { + await init(); + if (disableSearch) return null; - } let instance; let path; if (searchFrontend == 'searx') { - instance = commonHelper.getRandomInstance(searchHelper.redirects.searx.normal); + instance = commonHelper.getRandomInstance(redirects.searx.normal); path = "/" } if (searchFrontend == 'whoogle') { - instance = commonHelper.getRandomInstance(searchHelper.redirects.whoogle.normal); + instance = commonHelper.getRandomInstance(redirects.whoogle.normal); path = "/search" } @@ -193,9 +195,22 @@ function redirect(url, initiator) { url.search.slice(1).split("&").forEach(function (input) { if (input.startsWith("q=")) searchQuery = input; }); + console.log("Will return"); return `${instance}${path}?${searchQuery}`; } +async function init() { + console.log("Init Search Helper"); + let result = await browser.storage.sync.get([ + "disableSearch", + "searchInstance", + "searchFrontend", + ]) + disableSearch = result.disableSearch; + searchInstance = result.searchInstance; + searchFrontend = result.searchFrontend; +} + export default { targets, redirects, @@ -206,4 +221,5 @@ export default { getSearchFrontend, setSearchFrontend, redirect, + init, }; diff --git a/src/assets/javascripts/helpers/google-translate.js b/src/assets/javascripts/helpers/google-translate.js index 9560602d..025a2446 100644 --- a/src/assets/javascripts/helpers/google-translate.js +++ b/src/assets/javascripts/helpers/google-translate.js @@ -21,6 +21,7 @@ const getDisableSimplyTranslate = () => disableSimplyTranslate; function setDisableSimplyTranslate(val) { disableSimplyTranslate = val; browser.storage.sync.set({ disableSimplyTranslate }) + console.log("disableSimplyTranslate: ", disableSimplyTranslate) } let simplyTranslateInstance; @@ -30,12 +31,22 @@ function setSimplyTranslateInstance(val) { browser.storage.sync.set({ simplyTranslateInstance }) }; -function redirectGoogleTranslate(url, initiator) { - if (disableSimplyTranslate || isException(url, initiator)) return null; - +async function redirect(url, initiator) { + await init() + if (disableSimplyTranslate) + return null; return `${simplyTranslateInstance}/${url.search}`; } +async function init() { + let result = await browser.storage.sync.get([ + "disableSimplyTranslate", + "simplyTranslateInstance", + ]); + disableSimplyTranslate = result.disableSimplyTranslate || false; + simplyTranslateInstance = result.simplyTranslateInstance; +} + export default { targets, redirects, @@ -43,7 +54,8 @@ export default { setDisableSimplyTranslate, getSimplyTranslateInstance, setSimplyTranslateInstance, - redirectGoogleTranslate, + redirect, + init, }; diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js index 1d7f8890..4c83a671 100644 --- a/src/assets/javascripts/helpers/instagram.js +++ b/src/assets/javascripts/helpers/instagram.js @@ -1,3 +1,5 @@ +import commonHelper from './common.js' + const targets = [ "instagram.com", "www.instagram.com", @@ -58,29 +60,30 @@ function setBibliogramInstance(val) { }; -function redirect(url, initiator, type) { - if (data.disableBibliogram || data.isException(url, initiator)) +async function redirect(url, initiator, type) { + await init(); + if (disableBibliogram) return null; // Do not redirect Bibliogram view on Instagram links if ( initiator && ( - initiator.origin === data.bibliogramInstance || - instagramHelper.redirects.normal.includes(initiator.origin) || - instagramHelper.targets.includes(initiator.host) + initiator.origin === bibliogramInstance || + redirects.normal.includes(initiator.origin) || + targets.includes(initiator.host) ) ) return null; // Do not redirect /accounts, /embeds.js, or anything other than main_frame - if (type !== "main_frame" || url.pathname.match(instagramHelper.bypassPaths)) + if (type !== "main_frame" || url.pathname.match(bypassPaths)) return null; - let link = commonHelper.getRandomInstance(instagramHelper.redirects.normal); + let link = commonHelper.getRandomInstance(redirects.normal); if ( url.pathname === "/" || - data.instagramReservedPaths.includes(url.pathname.split("/")[1]) + instagramReservedPaths.includes(url.pathname.split("/")[1]) ) return `${link}${url.pathname}${url.search}`; else @@ -89,6 +92,15 @@ function redirect(url, initiator, type) { } +async function init() { + let result = await browser.storage.sync.get([ + "disableBibliogram", + "bibliogramInstance", + ]) + disableBibliogram = result.disableBibliogram || false; + bibliogramInstance = result.bibliogramInstance; +} + export default { targets, redirects, @@ -99,4 +111,5 @@ export default { getBibliogramInstance, setBibliogramInstance, redirect, + init, }; diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js index 6bb6cd31..0d36fa49 100644 --- a/src/assets/javascripts/helpers/medium.js +++ b/src/assets/javascripts/helpers/medium.js @@ -1,4 +1,5 @@ -import data from "../data.js"; +import commonHelper from './common.js' + const targets = [ // /(.*\.medium\.com)?(?(1)|^medium\.com)/, @@ -38,27 +39,35 @@ function setScribeInstance(val) { browser.storage.sync.set({ scribeInstance }) }; - -function redirectMedium(url, initiator) { - if (disableScribe || data.isException(url, initiator)) return null; +async function redirect(url, initiator) { + await init() + if (disableScribe) return null; if (url.pathname == "/") return null; if ( - data.isFirefox() && + commonHelper.isFirefox() && initiator && ( initiator.origin === scribeInstance || - mediumHelper.redirects.normal.includes(initiator.origin) || - mediumHelper.targets.includes(initiator.host) + redirects.normal.includes(initiator.origin) || + targets.includes(initiator.host) ) ) { browser.storage.sync.set({ redirectBypassFlag: true }); return null; } - return `${commonHelper.getRandomInstance(mediumHelper.redirects.normal)}${url.pathname}${url.search}`; + return `${commonHelper.getRandomInstance(redirects.normal)}${url.pathname}${url.search}`; } +async function init() { + let result = await browser.storage.sync.get([ + "disableScribe", + "scribeInstance", + ]) + disableScribe = result.disableScribe || false; + scribeInstance = result.scribeInstance; +} export default { targets, @@ -67,5 +76,6 @@ export default { setDisableScribe, getScribeInstance, setScribeInstance, - redirectMedium, + redirect, + init, }; diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js index deca2c80..3f88c356 100644 --- a/src/assets/javascripts/helpers/reddit.js +++ b/src/assets/javascripts/helpers/reddit.js @@ -1,3 +1,5 @@ +import commonHelper from './common.js' + const targets = [ "www.reddit.com", "np.reddit.com", @@ -23,7 +25,6 @@ const redirects = { }, // old UI "teddit": { - "normal": [ "https://teddit.net", "https://teddit.ggc-project.de", @@ -71,9 +72,9 @@ function setRedditFrontend(val) { }; -function redirect(url, initiator, type) { - - if (disableReddit || data.isException(url, initiator)) +async function redirect(url, initiator, type) { + await init() + if (disableReddit) return null; // Do not redirect when already on the selected view @@ -82,11 +83,11 @@ function redirect(url, initiator, type) { // Do not redirect exclusions nor anything other than main_frame - if (type !== "main_frame" || url.pathname.match(redditHelper.bypassPaths)) + if (type !== "main_frame" || url.pathname.match(bypassPaths)) return null; - let libredditLink = commonHelper.getRandomInstance(redditHelper.redirects.libreddit.normal); - let tedditLink = commonHelper.getRandomInstance(redditHelper.redirects.teddit.normal); + let libredditLink = commonHelper.getRandomInstance(redirects.libreddit.normal); + let tedditLink = commonHelper.getRandomInstance(redirects.teddit.normal); if (url.host === "i.redd.it") // As of 2021-04-09, redirects for teddit images are nontrivial: @@ -111,6 +112,16 @@ function redirect(url, initiator, type) { if (redditFrontend == 'teddit') return `${tedditLink}${url.pathname}${url.search}`; } +async function init() { + let result = await browser.storage.sync.get([ + "disableReddit", + "redditInstance", + "redditFrontend", + ]) + disableReddit = result.disableReddit || false; + redditInstance = result.redditInstance; + redditFrontend = result.redditFrontend || 'libreddit'; +} export default { targets, @@ -123,4 +134,5 @@ export default { getRedditFrontend, setRedditFrontend, redirect, + init, }; diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index 4fdad605..c622c341 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -1,4 +1,5 @@ -import data from "../data.js"; +import commonHelper from './common.js' + /* Please remember to also update the src/manifest.json file (content_scripts > matches, 'remove-twitter-sw.js') @@ -58,26 +59,27 @@ function setNitterInstance(val) { } -function redirect(url, initiator) { - if (disableNitter || data.isException(url, initiator)) +async function redirect(url, initiator) { + await init(); + if (disableNitter) return null; if (url.pathname.split("/").includes("home")) { return null; } if ( - data.isFirefox() && + commonHelper.isFirefox() && initiator && ( initiator.origin === nitterInstance || - twitterHelper.redirects.normal.includes(initiator.origin) || - twitterHelper.targets.includes(initiator.host) + redirects.normal.includes(initiator.origin) || + targets.includes(initiator.host) ) ) { browser.storage.sync.set({ redirectBypassFlag: true }); return null; } - let link = commonHelper.getRandomInstance(twitterHelper.redirects.normal) + let link = commonHelper.getRandomInstance(redirects.normal) if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video") return `${link}/pic/${encodeURIComponent(url.href)}`; @@ -89,6 +91,14 @@ function redirect(url, initiator) { } +async function init() { + let result = await browser.storage.sync.get([ + "disableNitter", + "nitterInstance" + ]); + disableNitter = result.disableNitter || false; + nitterInstance = result.nitterInstance; +} export default { targets, @@ -98,4 +108,5 @@ export default { getNitterInstance, setNitterInstance, redirect, + init, }; diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js index 00a8a4cc..f27305f4 100644 --- a/src/assets/javascripts/helpers/wikipedia.js +++ b/src/assets/javascripts/helpers/wikipedia.js @@ -7,21 +7,22 @@ const redirects = { }; let disableWikipedia; +const getDisableWikipedia = () => disableWikipedia; function setDisableWikipedia(val) { disableWikipedia = val; browser.storage.sync.set({ disableWikipedia }) } -const getDisableWikipedia = () => disableWikipedia; let wikipediaInstance; +const getWikipediaInstance = () => wikipediaInstance; function setWikipediaInstance(val) { wikipediaInstance = val; browser.storage.sync.set({ wikipediaInstance }) }; -const getWikipediaInstance = () => wikipediaInstance; -function redirectWikipedia(url, initiator) { - if (disableWikipedia || data.isException(url, initiator)) return null; +async function redirect(url, initiator) { + await init() + if (disableWikipedia) return null; let GETArguments = []; if (url.search.length > 0) { @@ -54,12 +55,22 @@ function redirectWikipedia(url, initiator) { else return null; } +async function init() { + let result = await browser.storage.sync.get([ + "disableWikipedia", + "wikipediaInstance", + ]); + disableWikipedia = result.disableWikipedia || false; + wikipediaInstance = result.wikipediaInstance; +} + export default { + targets, + redirects, setDisableWikipedia, getDisableWikipedia, setWikipediaInstance, getWikipediaInstance, - redirectWikipedia, - targets, - redirects, + redirect, + init, }; diff --git a/src/assets/javascripts/helpers/youtube.js b/src/assets/javascripts/helpers/youtube.js index c55dda5b..957160a0 100644 --- a/src/assets/javascripts/helpers/youtube.js +++ b/src/assets/javascripts/helpers/youtube.js @@ -1,5 +1,7 @@ "use strict"; +import commonHelper from './common.js' + window.browser = window.browser || window.chrome; const targets = [ @@ -114,20 +116,20 @@ function setInvidiousPlayerStyle(val) { } let invidiousSubtitles; +let getInvidiousSubtitles = () => invidiousSubtitles; function setInvidiousSubtitles(val) { invidiousSubtitles = val; browser.storage.sync.set({ invidiousSubtitles }) console.log("invidiousSubtitles: ", invidiousSubtitles) } -let getInvidiousSubtitles = () => invidiousSubtitles; let invidiousAutoplay; +const getInvidiousAutoplay = () => invidiousAutoplay; function setInvidiousAutoplay(val) { invidiousAutoplay = val; browser.storage.sync.set({ invidiousAutoplay }) console.log("invidiousAutoplay: ", invidiousAutoplay) } -const getInvidiousAutoplay = () => invidiousAutoplay; let useFreeTube; function setUseFreeTube(val) { @@ -147,16 +149,17 @@ function setPersistInvidiousPrefs(val) { } const getPersistInvidiousPrefs = () => persistInvidiousPrefs; -function redirect(url, initiator, type) { - if (disableInvidious || data.isException(url, initiator)) +async function redirect(url, initiator, type) { + await init(); + if (disableInvidious) return null; if ( initiator && ( initiator.origin === invidiousInstance || - youtubeHelper.redirects.normal.includes(initiator.origin) || - youtubeHelper.targets.includes(initiator.host) + redirects.normal.includes(initiator.origin) || + targets.includes(initiator.host) ) ) return null; @@ -190,7 +193,7 @@ function redirect(url, initiator, type) { if (invidiousAutoplay) url.searchParams.append("autoplay", 1); - let randomInstance = commonHelper.getRandomInstance(youtubeHelper.redirects.normal) + let randomInstance = commonHelper.getRandomInstance(redirects.normal) return `${randomInstance}${url.pathname.replace("/shorts", "")}${url.search}`; } @@ -216,6 +219,7 @@ function initInvidiousCookie() { prefs.dark_mode = invidiousDarkMode; document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`; } + async function init() { let result = await browser.storage.sync.get( [ @@ -235,17 +239,17 @@ async function init() { "invidiousAutoplay", "useFreeTube", ]); - disableInvidious = result.disableInvidious; + disableInvidious = result.disableInvidious || false; invidiousInstance = result.invidiousInstance; - invidiousAlwaysProxy = result.invidiousAlwaysProxy; - invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo; - invidiousVideoQuality = result.invidiousVideoQuality; - invidiousDarkMode = result.invidiousDarkMode; - invidiousVolume = result.invidiousVolume; - invidiousPlayerStyle = result.invidiousPlayerStyle; - invidiousSubtitles = result.invidiousSubtitles; - invidiousAutoplay = result.invidiousAutoplay; - useFreeTube = result.useFreeTube; + invidiousAlwaysProxy = result.invidiousAlwaysProxy || true; + invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo || false; + invidiousVideoQuality = result.invidiousVideoQuality || 'medium'; + invidiousDarkMode = result.invidiousDarkMode || true; + invidiousVolume = result.invidiousVolume || 50; + invidiousPlayerStyle = result.invidiousPlayerStyle || 'invidious'; + invidiousSubtitles = result.invidiousSubtitles || ''; + invidiousAutoplay = result.invidiousAutoplay || true; + useFreeTube = result.useFreeTube || false; if (result.persistInvidiousPrefs) initInvidiousCookie(); } diff --git a/src/assets/javascripts/remove-twitter-sw.js b/src/assets/javascripts/remove-twitter-sw.js index d431f1a3..39282db1 100644 --- a/src/assets/javascripts/remove-twitter-sw.js +++ b/src/assets/javascripts/remove-twitter-sw.js @@ -35,13 +35,7 @@ function isNotException(url) { } function shouldRedirect(url) { - return ( - !redirectBypassFlag && - isNotException(url) && - !disableNitter && - url.host !== nitterInstance && - !url.pathname.includes("/home") - ); + return (!redirectBypassFlag && isNotException(url) && !disableNitter && url.host !== nitterInstance && !url.pathname.includes("/home")); } function redirectTwitter(url) { @@ -64,16 +58,14 @@ browser.storage.sync.get( ], (result) => { redirectBypassFlag = result.redirectBypassFlag; - browser.storage.sync.set({ - redirectBypassFlag: false, - }); + browser.storage.sync.set({ redirectBypassFlag: false }); if (!result.removeTwitterSW) { disableNitter = result.disableNitter; nitterInstance = result.nitterInstance || getRandomInstance(); exceptions = result.exceptions ? result.exceptions.map((e) => { - return new RegExp(e); - }) + return new RegExp(e); + }) : []; navigator.serviceWorker.getRegistrations().then((registrations) => { for (let registration of registrations) { diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 68b6db55..05403a88 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -24,9 +24,19 @@ window.browser = window.browser || window.chrome; // : []; // data.invidiousSubtitles = result.invidiousSubtitles || ""; +googleMaps.init() +searchHelper.init() +googleTranslateHelper.init() +instagramHelper.init() +mediumHelper.init() +redditHelper.init() +twitterHelper.init() +wikipediaHelper.init() +youtubeHelper.init() + browser.webRequest.onBeforeRequest.addListener( - (details) => { + async (details) => { const url = new URL(details.url); let initiator; if (details.originUrl) @@ -34,25 +44,25 @@ browser.webRequest.onBeforeRequest.addListener( else if (details.initiator) initiator = new URL(details.initiator); - let newUrl; + var newUrl; - if (youtubeHelper.targets.includes(url.host)) newUrl = youtubeHelper.redirect(url, initiator, details.type) + if (youtubeHelper.targets.includes(url.host)) newUrl = await youtubeHelper.redirect(url, initiator, details.type) - else if (twitterHelper.targets.includes(url.host)) newUrl = redirectTwitter(url, initiator); + else if (twitterHelper.targets.includes(url.host)) newUrl = await twitterHelper.redirect(url, initiator); - else if (instagramHelper.targets.includes(url.host)) newUrl = redirectInstagram(url, initiator, details.type); + else if (instagramHelper.targets.includes(url.host)) newUrl = await instagramHelper.redirect(url, initiator, details.type); - else if (url.href.match(mapsHelper.targets)) newUrl = redirectGoogleMaps(url, initiator); + else if (url.href.match(mapsHelper.targets)) newUrl = await mapsHelper.redirect(url, initiator); - else if (redditHelper.targets.includes(url.host)) newUrl = redirectReddit(url, initiator, details.type); + else if (redditHelper.targets.includes(url.host)) newUrl = await redditHelper.redirect(url, initiator, details.type); - else if (mediumHelper.targets.some((rx) => rx.test(url.host))) newUrl = redirectMedium(url, initiator); + else if (mediumHelper.targets.some((rx) => rx.test(url.host))) newUrl = await mediumHelper.redirect(url, initiator); - else if (searchHelper.targets.some((rx) => rx.test(url.href))) newUrl = redirectSearch(url, initiator); + else if (searchHelper.targets.some((rx) => rx.test(url.href))) newUrl = await searchHelper.redirect(url, initiator) - else if (googleTranslateHelper.targets.includes(url.host)) newUrl = redirectGoogleTranslate(url, initiator); + else if (googleTranslateHelper.targets.includes(url.host)) newUrl = await googleTranslateHelper.redirect(url, initiator); - else if (url.host.match(wikipediaHelper.targets)) newUrl = redirectWikipedia(url, initiator); + else if (url.host.match(wikipediaHelper.targets)) newUrl = await wikipediaHelper.redirect(url, initiator); if (newUrl) { console.info("Redirecting", url.href, "=>", newUrl); diff --git a/src/pages/options/init.js b/src/pages/options/init.js index f9de76f1..09b41fd8 100644 --- a/src/pages/options/init.js +++ b/src/pages/options/init.js @@ -1,8 +1,3 @@ -browser.storage.sync.get( - [ - "theme" - ], - (result) => { - if (result.theme) document.body.classList.add(result.theme); - } -) \ No newline at end of file +browser.storage.sync.get("theme", (result) => { + if (result.theme) document.body.classList.add(result.theme); +}) \ No newline at end of file diff --git a/src/pages/options/instagram.js b/src/pages/options/instagram.js index 77438742..7be11ff1 100644 --- a/src/pages/options/instagram.js +++ b/src/pages/options/instagram.js @@ -2,7 +2,9 @@ import instagramHelper from "../../assets/javascripts/helpers/instagram.js"; let disableBibliogramElement = document.getElementById("disable-bibliogram"); -disableBibliogramElement.checked = !instagramHelper.getDisableBibliogram(); +instagramHelper.init().then(() => { + disableBibliogramElement.checked = !instagramHelper.getDisableBibliogram(); +}) disableBibliogramElement.addEventListener("change", (event) => instagramHelper.setDisableBibliogram(!event.target.checked) diff --git a/src/pages/options/maps.js b/src/pages/options/maps.js index 310f9285..a8819a50 100644 --- a/src/pages/options/maps.js +++ b/src/pages/options/maps.js @@ -2,7 +2,9 @@ import mapsHelper from "../../assets/javascripts/helpers/google-maps.js"; let disableOsmElement = document.getElementById("disable-osm"); -disableOsmElement.checked = !mapsHelper.getDisableOsm(); +mapsHelper.init().then(() => { + disableOsmElement.checked = !mapsHelper.getDisableOsm(); +}) disableOsmElement.addEventListener("change", (event) => mapsHelper.setDisableOsm(!event.target.checked) diff --git a/src/pages/options/medium.js b/src/pages/options/medium.js index bcd2c2e4..5f41282e 100644 --- a/src/pages/options/medium.js +++ b/src/pages/options/medium.js @@ -2,7 +2,9 @@ import mediumHelper from "../../assets/javascripts/helpers/medium.js"; let disableScribeElement = document.getElementById("disable-scribe"); -disableScribeElement.checked = !mediumHelper.getDisableScribe(); +mediumHelper.init().then(() => { + disableScribeElement.checked = !mediumHelper.getDisableScribe(); +}) disableScribeElement.addEventListener("change", (event) => mediumHelper.setDisableScribe(!event.target.checked) diff --git a/src/pages/options/reddit.js b/src/pages/options/reddit.js index 96b736be..0222c6dd 100644 --- a/src/pages/options/reddit.js +++ b/src/pages/options/reddit.js @@ -1,15 +1,17 @@ -import reddit from "../../assets/javascripts/helpers/reddit.js"; +import redditHelper from "../../assets/javascripts/helpers/reddit.js"; let disableRedditElement = document.getElementById("disable-reddit"); let redditFrontendElement = document.getElementById("reddit-frontend"); -disableRedditElement.checked = !reddit.getDisableReddit(); -redditFrontendElement.value = reddit.getRedditFrontend(); +redditHelper.init().then(() => { + disableRedditElement.checked = !redditHelper.getDisableReddit(); + redditFrontendElement.value = redditHelper.getRedditFrontend(); +}) disableRedditElement.addEventListener("change", - (event) => reddit.setDisableReddit(!event.target.checked) + (event) => redditHelper.setDisableReddit(!event.target.checked) ); redditFrontendElement.addEventListener("change", - (event) => reddit.setRedditFrontend(event.target.options[redditFrontendElement.selectedIndex].value) + (event) => redditHelper.setRedditFrontend(event.target.options[redditFrontendElement.selectedIndex].value) ); \ No newline at end of file diff --git a/src/pages/options/search.html b/src/pages/options/search.html index 77bd4d23..d0510eed 100644 --- a/src/pages/options/search.html +++ b/src/pages/options/search.html @@ -65,6 +65,7 @@ <script type="module" src="./init.js"></script> + <script type="module" src="./init.js"></script> <script type="module" src="./search.js"></script> <script src="../../assets/javascripts/localise.js"></script> </body> diff --git a/src/pages/options/search.js b/src/pages/options/search.js index 85e39749..37e095a0 100644 --- a/src/pages/options/search.js +++ b/src/pages/options/search.js @@ -3,8 +3,10 @@ import searchHelper from "../../assets/javascripts/helpers/google-search.js"; let disableSearchElement = document.getElementById("disable-search"); let searchFrontendElement = document.getElementById("search-frontend"); -disableSearchElement.checked = !searchHelper.getDisableSearch(); -searchFrontendElement.value = searchHelper.getSearchFrontend(); +searchHelper.init().then(() => { + disableSearchElement.checked = !searchHelper.getDisableSearch(); + searchFrontendElement.value = searchHelper.getSearchFrontend(); +}); searchFrontendElement.addEventListener("change", (event) => searchHelper.setSearchFrontend(event.target.options[searchFrontendElement.selectedIndex].value) diff --git a/src/pages/options/shared.js b/src/pages/options/shared.js index caa3a407..62da2504 100644 --- a/src/pages/options/shared.js +++ b/src/pages/options/shared.js @@ -17,7 +17,6 @@ function parseURL(urlString) { return ""; } - function autocomplete(input, list) { let currentFocus; input.addEventListener("focus", (e) => { @@ -109,9 +108,6 @@ function autocomplete(input, list) { } - - - export default { autocompletes, parseURL, diff --git a/src/pages/options/translate.js b/src/pages/options/translate.js index 4e254446..c6182fc2 100644 --- a/src/pages/options/translate.js +++ b/src/pages/options/translate.js @@ -2,7 +2,9 @@ import googleTranslateHelper from "../../assets/javascripts/helpers/google-trans let disableSimplyTranslateElement = document.getElementById("disable-simplyTranslate"); -disableSimplyTranslateElement.checked = !googleTranslateHelper.getDisableSimplyTranslate(); +googleTranslateHelper.init().then(() => { + disableSimplyTranslateElement.checked = !googleTranslateHelper.getDisableSimplyTranslate(); +}); disableSimplyTranslateElement.addEventListener("change", (event) => googleTranslateHelper.setDisableSimplyTranslate(!event.target.checked) diff --git a/src/pages/options/twitter.js b/src/pages/options/twitter.js index 60be6cb0..bf4f6b98 100644 --- a/src/pages/options/twitter.js +++ b/src/pages/options/twitter.js @@ -3,8 +3,10 @@ import twitterHelper from "../../assets/javascripts/helpers/twitter.js"; let removeTwitterSWElement = document.getElementById("remove-twitter-sw"); let disableNitterElement = document.getElementById("disable-nitter"); -disableNitterElement.checked = !twitterHelper.getDisableNitter(); -removeTwitterSWElement.checked = !remove.getRemoveTwitterSW; // Problem +twitterHelper.init().then(() => { + disableNitterElement.checked = !twitterHelper.getDisableNitter(); + removeTwitterSWElement.checked = !remove.getRemoveTwitterSW; // Problem +}); disableNitterElement.addEventListener("change", (event) => twitterHelper.setDisableNitter(!event.target.checked) diff --git a/src/pages/options/wikipedia.js b/src/pages/options/wikipedia.js index b2e7d23c..95ef6406 100644 --- a/src/pages/options/wikipedia.js +++ b/src/pages/options/wikipedia.js @@ -2,7 +2,9 @@ import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js"; let disableWikipediaElement = document.getElementById("disable-wikipedia"); -disableWikipediaElement.checked = !wikipediaHelper.getDisableWikipedia(); +wikipediaHelper.init().then(() => { + disableWikipediaElement.checked = !wikipediaHelper.getDisableWikipedia(); +}) disableWikipediaElement.addEventListener("change", (event) => wikipediaHelper.setDisableWikipedia(!event.target.checked) diff --git a/src/pages/options/youtube.js b/src/pages/options/youtube.js index 95e7d2c9..a05f4c14 100644 --- a/src/pages/options/youtube.js +++ b/src/pages/options/youtube.js @@ -19,13 +19,13 @@ youtubeHelper.init().then(() => { invidiousDarkModeElement.checked = youtubeHelper.getInvidiousDarkMode(); persistInvidiousPrefsElement.checked = youtubeHelper.getPersistInvidiousPrefs(); invidiousVolumeElement.value = youtubeHelper.getInvidiousVolume(); - invidiousVolumeValueElement.textContent = youtubeHelper.getInvidiousVolume() ? `${youtubeHelper.getInvidiousVolume()}%` : " - "; - invidiousPlayerStyleElement.value = youtubeHelper.getInvidiousPlayerStyle() || ""; - invidiousSubtitlesElement.value = youtubeHelper.getInvidiousSubtitles() || ""; + invidiousVolumeValueElement.textContent = `${youtubeHelper.getInvidiousVolume()}%`; + invidiousPlayerStyleElement.value = youtubeHelper.getInvidiousPlayerStyle(); + invidiousSubtitlesElement.value = youtubeHelper.getInvidiousSubtitles(); useFreeTubeElement.checked = youtubeHelper.getUseFreeTube(); invidiousOnlyEmbeddedVideoElement.checked = youtubeHelper.getInvidiousOnlyEmbeddedVideo(); invidiousAlwaysProxyElement.checked = youtubeHelper.getInvidiousAlwaysProxy(); - invidiousVideoQualityElement.value = youtubeHelper.getInvidiousVideoQuality() || ""; + invidiousVideoQualityElement.value = youtubeHelper.getInvidiousVideoQuality(); invidiousAutoplayElement.checked = youtubeHelper.getInvidiousAutoplay(); }); @@ -43,11 +43,10 @@ persistInvidiousPrefsElement.addEventListener("change", ); invidiousVolumeElement.addEventListener("input", - commonHelper.debounce(() => { + () => { youtubeHelper.setInvidiousVolume(invidiousVolumeElement.value); - console.info("youtubeHelper.invidiousVolume:", youtubeHelper.getInvidiousVolume()); invidiousVolumeValueElement.textContent = `${invidiousVolumeElement.value}%`; - }, 1) + } ); invidiousPlayerStyleElement.addEventListener("change", diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index 5f570774..30587d3e 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -2,6 +2,15 @@ import commonHelper from "../../assets/javascripts/helpers/common.js"; import data from "../../assets/javascripts/data.js"; +import twitterHelper from "../../assets/javascripts/helpers/twitter.js"; +import youtubeHelper from "../../assets/javascripts/helpers/youtube.js"; +import instagramHelper from "../../assets/javascripts/helpers/instagram.js"; +import mapsHelper from "../../assets/javascripts/helpers/google-maps.js"; +import redditHelper from "../../assets/javascripts/helpers/reddit.js"; +import searchHelper from "../../assets/javascripts/helpers/google-search.js"; +import translateHelper from "../../assets/javascripts/helpers/google-translate.js"; +import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js"; +import mediumHelper from "../../assets/javascripts/helpers/medium.js"; let disableNitterElement = document.querySelector("#disable-nitter"); let disableInvidiousElement = document.querySelector("#disable-invidious"); @@ -29,51 +38,41 @@ disableWikipediaElement.checked = !data.disableWikipedia; disableScribeElement.checked = !data.disableScribe; -disableNitterElement.addEventListener("change", (event) => { - data.disableNitter = !event.target.checked; - browser.storage.sync.set({ disableNitter: data.disableNitter }); -}); +disableNitterElement.addEventListener("change", + (event) => twitterHelper.setDisableNitter(!event.target.checked) +); -disableInvidiousElement.addEventListener("change", (event) => { - data.disableInvidious = !event.target.checked; - browser.storage.sync.set({ disableInvidious: data.disableInvidious }); -}); +disableInvidiousElement.addEventListener("change", + (event) => youtubeHelper.setDisableInvidious(!event.target.checked) +); -disableBibliogramElement.addEventListener("change", (event) => { - data.disableBibliogram = !event.target.checked; - browser.storage.sync.set({ disableBibliogram: data.disableBibliogram }); -}); +disableBibliogramElement.addEventListener("change", + (event) => instagramHelper.setDisableBibliogram(!event.target.checked) +); -disableOsmElement.addEventListener("change", (event) => { - data.disableOsm = !event.target.checked; - browser.storage.sync.set({ disableOsm: data.disableOsm }); -}); +disableOsmElement.addEventListener("change", + (event) => mapsHelper.setDisableOsm(!event.target.checked) +); -disableRedditElement.addEventListener("change", (event) => { - data.disableReddit = !event.target.checked; - browser.storage.sync.set({ disableReddit: data.disableReddit }); -}); +disableRedditElement.addEventListener("change", + (event) => redditHelper.setDisableReddit(!event.target.checked) +); -disableSearchElement.addEventListener("change", (event) => { - data.disableSearch = !event.target.checked; - console.log("DisableSearch", data.disableSearch) - browser.storage.sync.set({ disableSearch: data.disableSearch }); -}); +disableSearchElement.addEventListener("change", + (event) => searchHelper.setDisableSearch(!event.target.checked) +); -disableSimplyTranslateElement.addEventListener("change", (event) => { - data.disableSimplyTranslate = !event.target.checked; - browser.storage.sync.set({ disableSimplyTranslate: data.disableSimplyTranslate }); -}); +disableSimplyTranslateElement.addEventListener("change", + (event) => translateHelper.setDisableSimplyTranslate(!event.target.checked) +); -disableWikipediaElement.addEventListener("change", (event) => { - data.disableWikipedia = !event.target.checked; - browser.storage.sync.set({ disableWikipedia: data.disableWikipedia }); -}); +disableWikipediaElement.addEventListener("change", + (event) => wikipediaHelper.setDisableWikipedia(!event.target.checked) +); -disableScribeElement.addEventListener("change", (event) => { - data.disableScribe = !event.target.checked; - browser.storage.sync.set({ disableScribe: data.disableScribe }); -}); +disableScribeElement.addEventListener("change", + (event) => mediumHelper.setDisableScribe(!event.target.checked) +); document.querySelector("#update-instances").addEventListener("click", () => { |