aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-01 21:37:43 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-01 21:37:43 +0300
commit41c1c6effac3f6a777fce47df025e513bda6157a (patch)
tree38da025cc97986b852b734c3b051fa33ce8cf149 /src/pages
parentFixed theme issue (diff)
downloadlibredirect-41c1c6effac3f6a777fce47df025e513bda6157a.zip
Changing data handling
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/background/background.html13
-rw-r--r--src/pages/background/background.js676
-rw-r--r--src/pages/options/general.js7
-rw-r--r--src/pages/options/instagram.html8
-rw-r--r--src/pages/options/instagram.js57
-rw-r--r--src/pages/options/maps.html6
-rw-r--r--src/pages/options/maps.js31
-rw-r--r--src/pages/options/medium.html6
-rw-r--r--src/pages/options/medium.js60
-rw-r--r--src/pages/options/reddit.html10
-rw-r--r--src/pages/options/reddit.js94
-rw-r--r--src/pages/options/search.html14
-rw-r--r--src/pages/options/search.js70
-rw-r--r--src/pages/options/translate.html6
-rw-r--r--src/pages/options/translate.js37
-rw-r--r--src/pages/options/twitter.html8
-rw-r--r--src/pages/options/twitter.js63
-rw-r--r--src/pages/options/wikipedia.html6
-rw-r--r--src/pages/options/wikipedia.js62
-rw-r--r--src/pages/options/youtube.html14
-rw-r--r--src/pages/options/youtube.js145
-rw-r--r--src/pages/popup/popup.js104
22 files changed, 251 insertions, 1246 deletions
diff --git a/src/pages/background/background.html b/src/pages/background/background.html
index 55f5b619..a24e1594 100644
--- a/src/pages/background/background.html
+++ b/src/pages/background/background.html
@@ -1,7 +1,10 @@
<!DOCTYPE html>
<html>
- <head>
- <meta charset="utf-8" />
- <script type="module" src="background.js"></script>
- </head>
-</html>
+
+<head>
+ <meta charset="utf-8" />
+ <script type="module" src="../../assets/javascripts/data.js"></script>
+ <script type="module" src="background.js"></script>
+</head>
+
+</html> \ No newline at end of file
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index d19eed94..68b6db55 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -1,585 +1,29 @@
"use strict";
-import commonHelper from "../../assets/javascripts/helpers/common.js";
+import mapsHelper from "../../assets/javascripts/helpers/google-maps.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 mediumHelper from "../../assets/javascripts/helpers/medium.js";
import redditHelper from "../../assets/javascripts/helpers/reddit.js";
import searchHelper from "../../assets/javascripts/helpers/google-search.js";
import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js";
import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
-
-const nitterInstances = twitterHelper.redirects;
-const twitterDomains = twitterHelper.targets;
-const youtubeDomains = youtubeHelper.targets;
-const mediumDomains = mediumHelper.targets;
-const scribeInstances = mediumHelper.redirects;
-const scribeDefault = mediumHelper.redirects[0];
-const invidiousInstances = youtubeHelper.redirects;
-const instagramDomains = instagramHelper.targets;
-const bibliogramInstances = instagramHelper.redirects;
-const instagramReservedPaths = instagramHelper.reservedPaths;
-const bibliogramBypassPaths = instagramHelper.bypassPaths;
-const osmDefault = mapsHelper.redirects[0];
-const googleMapsRegex = mapsHelper.targets;
-const mapCentreRegex = mapsHelper.mapCentreRegex;
-const dataLatLngRegex = mapsHelper.dataLatLngRegex;
-const placeRegex = mapsHelper.placeRegex;
-const travelModes = mapsHelper.travelModes;
-const layers = mapsHelper.layers;
-
-const redditInstances = redditHelper.redirects;
-const redditDomains = redditHelper.targets;
-const redditBypassPaths = redditHelper.bypassPaths;
-const redditDefault = redditHelper.redirects[0];
-
-const googleSearchRegex = searchHelper.targets;
-const searchInstances = searchHelper.redirects;
-const simplyTranslateInstances = googleTranslateHelper.redirects;
-const simplyTranslateDefault = simplyTranslateInstances[0];
-const googleTranslateDomains = googleTranslateHelper.targets;
-const wikipediaInstances = wikipediaHelper.redirects;
-const wikipediaDefault = wikipediaInstances[0];
-const wikipediaRegex = wikipediaHelper.targets;
-
-let disableNitter;
-let disableInvidious;
-let disableBibliogram;
-let disableOsm;
-let disableReddit;
-let disableScribe;
-let disableSearch;
-let disableSimplyTranslate;
-let disableWikipedia;
-let nitterInstance;
-let invidiousInstance;
-let bibliogramInstance;
-let osmInstance;
-let scribeInstance;
-let redditInstance;
-let searchInstance;
-let simplyTranslateInstance;
-let wikipediaInstance;
-let invidiousAlwaysProxy;
-let invidiousOnlyEmbeddedVideo;
-let invidiousVideoQuality;
-let invidiousDarkMode;
-let invidiousVolume;
-let invidiousPlayerStyle;
-let invidiousSubtitles;
-let invidiousAutoplay;
-let useFreeTube;
-
-let nitterRandomPool;
-let invidiousRandomPool;
-let bibliogramRandomPool;
-let scribeRandomPool;
-
-
-let exceptions;
-let redditFrontend;
-let searchFrontend;
+import data from "../../assets/javascripts/data.js";
+import googleMaps from "../../assets/javascripts/helpers/google-maps.js";
window.browser = window.browser || window.chrome;
-browser.storage.sync.get(
- [
- "nitterInstance",
- "invidiousInstance",
- "bibliogramInstance",
- "osmInstance",
- "redditInstance",
- "scribeInstance",
- "searchInstance",
- "simplyTranslateInstance",
- "wikipediaInstance",
- "disableNitter",
- "disableInvidious",
- "disableBibliogram",
- "disableOsm",
- "disableReddit",
- "disableScribe",
- "disableSearch",
- "disableSimplyTranslate",
- "disableWikipedia",
- "invidiousAlwaysProxy",
- "invidiousOnlyEmbeddedVideo",
- "invidiousVideoQuality",
- "invidiousDarkMode",
- "invidiousVolume",
- "invidiousPlayerStyle",
- "invidiousSubtitles",
- "invidiousAutoplay",
- "useFreeTube",
- "nitterRandomPool",
- "invidiousRandomPool",
- "bibliogramRandomPool",
- "scribeRandomPool",
- "wikilessRandomPool",
- "exceptions",
- "redditFrontend",
- "searchFrontend",
- ],
- (result) => {
- osmInstance = result.osmInstance || osmDefault;
- disableOsm = result.disableOsm;
-
- searchInstance = result.searchInstance;
- disableSearch = result.disableSearch;
- searchFrontend = result.searchFrontend;
-
- simplyTranslateInstance = result.simplyTranslateInstance || simplyTranslateDefault;
- disableSimplyTranslate = result.disableSimplyTranslate;
-
- redditInstance = result.redditInstance;
- disableReddit = result.disableReddit;
- redditFrontend = result.redditFrontend;
-
- disableWikipedia = result.disableWikipedia;
- wikipediaInstance = result.wikipediaInstance || wikipediaDefault;
-
- exceptions = result.exceptions
- ? result.exceptions.map((e) => {
- return new RegExp(e);
- })
- : [];
-
-
- invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo;
- invidiousDarkMode = result.invidiousDarkMode;
- disableInvidious = result.disableInvidious;
- invidiousAlwaysProxy = result.invidiousAlwaysProxy;
- invidiousInstance = result.invidiousInstance;
- invidiousVideoQuality = result.invidiousVideoQuality;
- invidiousVolume = result.invidiousVolume;
- invidiousPlayerStyle = result.invidiousPlayerStyle;
- invidiousSubtitles = result.invidiousSubtitles || "";
- invidiousAutoplay = result.invidiousAutoplay;
- useFreeTube = result.useFreeTube;
- invidiousRandomPool =
- result.invidiousRandomPool
- ? result.invidiousRandomPool
- : commonHelper.filterInstances(invidiousInstances);
-
- nitterInstance = result.nitterInstance;
- disableNitter = result.disableNitter;
- nitterRandomPool =
- result.nitterRandomPool
- ? result.nitterRandomPool
- : commonHelper.filterInstances(nitterInstances);
-
+// data.osmInstance = result.osmInstance || data.osmDefault;
+// data.simplyTranslateInstance = result.simplyTranslateInstance || data.simplyTranslateDefault;
+// data.wikipediaInstance = result.wikipediaInstance || data.wikipediaDefault;
+// data.exceptions = result.exceptions
+// ? result.exceptions.map((e) => {
+// return new RegExp(e);
+// })
+// : [];
+// data.invidiousSubtitles = result.invidiousSubtitles || "";
- bibliogramInstance = result.bibliogramInstance;
- disableBibliogram = result.disableBibliogram;
- bibliogramRandomPool =
- result.bibliogramRandomPool
- ? result.bibliogramRandomPool
- : commonHelper.filterInstances(bibliogramInstances);
-
-
- scribeInstance = result.scribeInstance;
- disableScribe = result.disableScribe;
- scribeRandomPool =
- result.scribeRandomPool
- ? result.scribeRandomPool
- : commonHelper.filterInstances(scribeInstances);
- }
-);
-
-browser.storage.onChanged.addListener((changes) => {
- if ("invidiousInstance" in changes) invidiousInstance = changes.invidiousInstance.newValue;
- if ("disableInvidious" in changes) disableInvidious = changes.disableInvidious.newValue;
- if ("invidiousAlwaysProxy" in changes) invidiousAlwaysProxy = changes.invidiousAlwaysProxy.newValue;
- if ("invidiousOnlyEmbeddedVideo" in changes) invidiousOnlyEmbeddedVideo = changes.invidiousOnlyEmbeddedVideo.newValue;
- if ("invidiousVideoQuality" in changes) invidiousVideoQuality = changes.invidiousVideoQuality.newValue;
- if ("invidiousDarkMode" in changes) invidiousDarkMode = changes.invidiousDarkMode.newValue;
- if ("invidiousVolume" in changes) invidiousVolume = changes.invidiousVolume.newValue;
- if ("invidiousPlayerStyle" in changes) invidiousPlayerStyle = changes.invidiousPlayerStyle.newValue;
- if ("invidiousSubtitles" in changes) invidiousSubtitles = changes.invidiousSubtitles.newValue;
- if ("invidiousAutoplay" in changes) invidiousAutoplay = changes.invidiousAutoplay.newValue;
- if ("useFreeTube" in changes) useFreeTube = changes.useFreeTube.newValue;
- if ("invidiousRandomPool" in changes) invidiousRandomPool = changes.invidiousRandomPool.newValue;
-
- if ("nitterInstance" in changes) nitterInstance = changes.nitterInstance.newValue;
- if ("disableNitter" in changes) disableNitter = changes.disableNitter.newValue;
- if ("nitterRandomPool" in changes) nitterRandomPool = changes.nitterRandomPool.newValue;
-
- if ("bibliogramInstance" in changes) bibliogramInstance = changes.bibliogramInstance.newValue;
- if ("disableBibliogram" in changes) disableBibliogram = changes.disableBibliogram.newValue;
- if ("bibliogramRandomPool" in changes) bibliogramRandomPool = changes.bibliogramRandomPool.newValue;
-
- if ("redditInstance" in changes) redditInstance = changes.redditInstance.newValue || redditDefault;
- if ("disableReddit" in changes) disableReddit = changes.disableReddit.newValue;
- if ("redditFrontend" in changes) redditFrontend = changes.redditFrontend.newValue
-
- if ("searchInstance" in changes) searchInstance = changes.searchInstance.newValue;
- if ("disableSearch" in changes) disableSearch = changes.disableSearch.newValue;
- if ("searchFrontend" in changes) searchFrontend = changes.searchFrontend.newValue
-
- if ("simplyTranslateInstance" in changes) simplyTranslateInstance = changes.simplyTranslateInstance.newValue || simplyTranslateDefault;
- if ("disableSimplyTranslate" in changes) disableSimplyTranslate = changes.disableSimplyTranslate.newValue;
-
- if ("osmInstance" in changes) osmInstance = changes.osmInstance.newValue || osmDefault;
- if ("disableOsm" in changes) disableOsm = changes.disableOsm.newValue;
-
- if ("wikipediaInstance" in changes) wikipediaInstance = changes.wikipediaInstance.newValue || wikipediaDefault;
- if ("disableWikipedia" in changes) disableWikipedia = changes.disableWikipedia.newValue;
-
- if ("scribeInstance" in changes) scribeInstance = changes.scribeInstance.newValue || scribeDefault;
- if ("disableScribe" in changes) disableScribe = changes.disableScribe.newValue;
- if ("scribeRandomPool" in changes) scribeRandomPool = changes.scribeRandomPool.newValue;
-
- if ("exceptions" in changes) exceptions = changes.exceptions.newValue.map((e) => new RegExp(e));
-});
-
-function isException(url, initiator) {
- return (
- exceptions.some((regex) => regex.test(url.href)) ||
- (initiator && exceptions.some((regex) => regex.test(initiator.href)))
- );
-}
-
-function isFirefox() {
- return typeof InstallTrigger !== "undefined";
-}
-
-function redirectYouTube(url, initiator, type) {
- if (disableInvidious || isException(url, initiator)) {
- return null;
- }
- if (
- initiator &&
- (initiator.origin === invidiousInstance ||
- invidiousInstances.includes(initiator.origin) ||
- youtubeDomains.includes(initiator.host))
- ) {
- return null;
- }
- if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) {
- // Don't redirect YouTube Player API.
- return null;
- }
- if (url.host.split(".")[0] === "studio") {
- // Avoid redirecting `studio.youtube.com`
- return null;
- }
- if (invidiousOnlyEmbeddedVideo && type !== "sub_frame") {
- return null;
- }
- if (useFreeTube && type === "main_frame") {
- return `freetube://${url}`;
- }
- // Apply settings
- if (invidiousAlwaysProxy) {
- url.searchParams.append("local", true);
- }
- if (invidiousVideoQuality) {
- url.searchParams.append("quality", invidiousVideoQuality);
- }
- if (invidiousDarkMode) {
- url.searchParams.append("dark_mode", invidiousDarkMode);
- }
- if (invidiousVolume) {
- url.searchParams.append("volume", invidiousVolume);
- }
- if (invidiousPlayerStyle) {
- url.searchParams.append("player_style", invidiousPlayerStyle);
- }
- if (invidiousSubtitles) {
- url.searchParams.append("subtitles", invidiousSubtitles);
- }
- if (invidiousAutoplay) {
- url.searchParams.append("autoplay", 1);
- }
-
- return `${invidiousInstance || commonHelper.getRandomInstance(invidiousRandomPool)
- }${url.pathname.replace("/shorts", "")}${url.search}`;
-}
-
-function redirectTwitter(url, initiator) {
- if (disableNitter || isException(url, initiator)) {
- return null;
- }
- if (url.pathname.split("/").includes("home")) {
- return null;
- }
- if (
- isFirefox() &&
- initiator &&
- (initiator.origin === nitterInstance ||
- nitterInstances.includes(initiator.origin) ||
- twitterDomains.includes(initiator.host))
- ) {
- browser.storage.sync.set({
- redirectBypassFlag: true,
- });
- return null;
- }
- if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video") {
- return `${nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)}/pic/${encodeURIComponent(url.href)}`;
- } else if (url.pathname.split("/").includes("tweets")) {
- return `${nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)}${url.pathname.replace("/tweets", "")}${url.search}`;
- } else {
- return `${nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)}${url.pathname}${url.search}`;
- }
-}
-
-function redirectInstagram(url, initiator, type) {
- if (disableBibliogram || isException(url, initiator)) {
- return null;
- }
- // Do not redirect Bibliogram view on Instagram links
- if (
- initiator &&
- (initiator.origin === bibliogramInstance ||
- bibliogramInstances.includes(initiator.origin) ||
- instagramDomains.includes(initiator.host))
- ) {
- return null;
- }
- // Do not redirect /accounts, /embeds.js, or anything other than main_frame
- if (type !== "main_frame" || url.pathname.match(bibliogramBypassPaths)) {
- return null;
- }
- if (
- url.pathname === "/" ||
- instagramReservedPaths.includes(url.pathname.split("/")[1])
- ) {
- return `${bibliogramInstance || commonHelper.getRandomInstance(bibliogramRandomPool)
- }${url.pathname}${url.search}`;
- } else {
- // Likely a user profile, redirect to '/u/...'
- return `${bibliogramInstance || commonHelper.getRandomInstance(bibliogramRandomPool)
- }/u${url.pathname}${url.search}`;
- }
-}
-
-function redirectGoogleMaps(url, initiator) {
- if (disableOsm || isException(url, initiator)) {
- return null;
- }
- if (initiator.host === "earth.google.com") {
- return null;
- }
- let redirect;
- let mapCentre = "";
- let params = "";
- // Set map centre if present
- 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(",");
- mapCentre = `#map=${url.searchParams.get("zoom") || "17"}/${lat}/${lon}`;
- // Set default zoom if mapCentre not present
- } else {
- params = "&zoom=17";
- }
- // Set map layer
- params = `${params}&layers=${layers[url.searchParams.get("layer")] || layers["none"]
- }`;
- // Handle Google Maps Embed API
- if (url.pathname.split("/").includes("embed")) {
- let query = "";
- if (url.searchParams.has("q")) {
- query = url.searchParams.get("q");
- } else if (url.searchParams.has("query")) {
- query = url.searchParams.has("query");
- } else if (url.searchParams.has("pb")) {
- try {
- query = url.searchParams.get("pb").split(/!2s(.*?)!/)[1];
- } catch (error) {
- console.error(error);
- // Unable to find map marker in URL.
- }
- }
- let marker, bbox;
- mapsHelper.addressToLatLng(query, (coords, boundingbox) => {
- marker = coords;
- bbox = boundingbox;
- });
- redirect = `${osmInstance}/export/embed.html?bbox=${bbox}&layer=mapnik&marker=${marker}`;
- // Handle Google Maps Directions
- } else if (url.pathname.split("/").includes("dir")) {
- const travelMode =
- travelModes[url.searchParams.get("travelmode")] || travelModes["driving"];
- let origin;
- mapsHelper.addressToLatLng(url.searchParams.get("origin"), (coords) => {
- origin = coords;
- });
- let destination;
- mapsHelper.addressToLatLng(
- url.searchParams.get("destination"),
- (coords) => {
- destination = coords;
- }
- );
- redirect = `${osmInstance}/directions?engine=${travelMode}&route=${origin}%3B${destination}${mapCentre}${params}`;
- // Get marker from data attribute
- } else if (
- url.pathname.includes("data=") &&
- url.pathname.match(dataLatLngRegex)
- ) {
- const [mlat, mlon] = url.pathname.match(dataLatLngRegex);
- redirect = `${osmInstance}/?mlat=${mlat.replace(
- "!3d",
- ""
- )}&mlon=${mlon.replace("!4d", "")}${mapCentre}${params}`;
- // Get marker from ll param
- } else if (url.searchParams.has("ll")) {
- const [mlat, mlon] = url.searchParams.get("ll").split(",");
- redirect = `${osmInstance}/?mlat=${mlat}&mlon=${mlon}${mapCentre}${params}`;
- // Get marker from viewpoint param.
- } else if (url.searchParams.has("viewpoint")) {
- const [mlat, mlon] = url.searchParams.get("viewpoint").split(",");
- redirect = `${osmInstance}/?mlat=${mlat}&mlon=${mlon}${mapCentre}${params}`;
- // Use query as search if present.
- } else {
- 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(placeRegex)) {
- query = url.pathname.match(placeRegex)[1];
- }
- redirect = `${osmInstance}/${query ? "search?query=" + query : ""}${mapCentre || "#"
- }${params}`;
- }
-
- return redirect;
-}
-
-function redirectReddit(url, initiator, type) {
-
- if (disableReddit || isException(url, initiator))
- return null;
-
- // Do not redirect when already on the selected view
- if ((initiator && initiator.origin === redditInstance) || url.origin === redditInstance)
- return null;
-
- // Do not redirect exclusions nor anything other than main_frame
- if (type !== "main_frame" || url.pathname.match(redditBypassPaths))
- return null;
-
- console.info(url.host);
- if (url.host === "i.redd.it")
- // As of 2021-04-09, redirects for teddit images are nontrivial:
- // - navigating to the image before ever navigating to its page causes
- // 404 error (probably needs fix on teddit project)
- // - some image links on teddit are very different
- // Therefore, don't support redirecting image links for teddit.
- return `${redditInstance || commonHelper.getRandomInstance(redditInstances['libreddit'])}/img${url.pathname}${url.search}`;
- else if (url.host === "redd.it") {
- if (redditFrontend == 'libreddit')
- return `${redditInstance || commonHelper.getRandomInstance(redditInstances['libreddit'])}${url.pathname}${url.search}`;
- if (redditFrontend == 'teddit' && !url.pathname.match(/^\/+[^\/]+\/+[^\/]/))
- // As of 2021-04-22, redirects for teddit redd.it/foo links don't work.
- // It appears that adding "/comments" as a prefix works, so manually add
- // that prefix if it is missing. Even though redd.it/comments/foo links
- // don't seem to work or exist, guard against affecting those kinds of
- // paths.
- // Note the difference between redd.it/comments/foo (doesn't work) and
- // teddit.net/comments/foo (works).
- return `${redditInstance || commonHelper.getRandomInstance(redditInstances['teddit'])}/comments${url.pathname}${url.search}`;
- return null;
- }
- if (redditFrontend == 'libreddit')
- return `${redditInstance || commonHelper.getRandomInstance(redditInstances['libreddit'])}${url.pathname}${url.search}`;
- if (redditFrontend == 'teddit')
- return `${redditInstance || commonHelper.getRandomInstance(redditInstances['teddit'])}${url.pathname}${url.search}`;
-}
-
-function redirectMedium(url, initiator) {
- if (disableScribe || isException(url, initiator))
- return null;
-
- if (url.pathname == "/")
- return null;
-
- if (
- isFirefox() &&
- initiator &&
- (initiator.origin === scribeInstance ||
- scribeInstances.includes(initiator.origin) ||
- mediumDomains.includes(initiator.host))
- ) {
- browser.storage.sync.set({ redirectBypassFlag: true });
- return null;
- }
- return `${scribeInstance || commonHelper.getRandomInstance(scribeRandomPool)}${url.pathname}${url.search}`;
-}
-
-function redirectSearch(url, initiator) {
- if (disableSearch || isException(url, initiator)) {
- console.log("disableSearch:", disableSearch)
- return null;
- }
-
- let search;
- let searchQ;
- console.log("searchFrontend", searchFrontend);
- if (searchFrontend == 'searx') {
- search = searchInstance || commonHelper.getRandomInstance(searchInstances["searx"]);
- searchQ = "/"
- }
- if (searchFrontend == 'whoogle') {
- search = searchInstance || commonHelper.getRandomInstance(searchInstances["whoogle"]);
- searchQ = "/search"
- }
-
- let searchQuery = "";
- url.search
- .slice(1)
- .split("&")
- .forEach(function (input) {
- if (input.startsWith("q=")) searchQuery = input;
- });
- console.info("It will direct to:", `${search}${searchQ}?${searchQuery}`)
- return `${search}${searchQ}?${searchQuery}`;
-}
-
-function redirectGoogleTranslate(url, initiator) {
- if (disableSimplyTranslate || isException(url, initiator)) return null;
-
- return `${simplyTranslateInstance}/${url.search}`;
-}
-
-function redirectWikipedia(url, initiator) {
- if (disableWikipedia || isException(url, initiator)) return null;
- let GETArguments = [];
- if (url.search.length > 0) {
- let search = url.search.substring(1); //get rid of '?'
- let argstrings = search.split("&");
- for (let i = 0; i < argstrings.length; i++) {
- let args = argstrings[i].split("=");
- GETArguments.push([args[0], args[1]]);
- }
- }
- let link = `${wikipediaInstance}${url.pathname}`;
- let urlSplit = url.host.split(".");
- if (urlSplit[0] != "wikipedia" && urlSplit[0] != "www") {
- if (urlSplit[0] == "m")
- GETArguments.push(["mobileaction", "toggle_view_mobile"]);
- else GETArguments.push(["lang", urlSplit[0]]);
- if (urlSplit[1] == "m")
- GETArguments.push(["mobileaction", "toggle_view_mobile"]);
- //wikiless doesn't have mobile view support yet
- }
- for (let i = 0; i < GETArguments.length; i++)
- link += (i == 0 ? "?" : "&") + GETArguments[i][0] + "=" + GETArguments[i][1];
-
- if (
- urlSplit[urlSplit.length - 1] == "org" &&
- urlSplit[urlSplit.length - 2] == "wikipedia"
- )
- //just in case someone wanted to visit wikipedia.org.foo.bar.net
- return link;
- else return null;
-}
browser.webRequest.onBeforeRequest.addListener(
(details) => {
@@ -591,23 +35,24 @@ browser.webRequest.onBeforeRequest.addListener(
initiator = new URL(details.initiator);
let newUrl;
- if (youtubeDomains.includes(url.host)) newUrl = redirectYouTube(url, initiator, details.type)
- else if (twitterDomains.includes(url.host)) newUrl = redirectTwitter(url, initiator);
+ if (youtubeHelper.targets.includes(url.host)) newUrl = youtubeHelper.redirect(url, initiator, details.type)
+
+ else if (twitterHelper.targets.includes(url.host)) newUrl = redirectTwitter(url, initiator);
- else if (instagramDomains.includes(url.host)) newUrl = redirectInstagram(url, initiator, details.type);
+ else if (instagramHelper.targets.includes(url.host)) newUrl = redirectInstagram(url, initiator, details.type);
- else if (url.href.match(googleMapsRegex)) newUrl = redirectGoogleMaps(url, initiator);
+ else if (url.href.match(mapsHelper.targets)) newUrl = redirectGoogleMaps(url, initiator);
- else if (redditDomains.includes(url.host)) newUrl = redirectReddit(url, initiator, details.type);
+ else if (redditHelper.targets.includes(url.host)) newUrl = redirectReddit(url, initiator, details.type);
- else if (mediumDomains.some((rx) => rx.test(url.host))) newUrl = redirectMedium(url, initiator);
+ else if (mediumHelper.targets.some((rx) => rx.test(url.host))) newUrl = redirectMedium(url, initiator);
- else if (googleSearchRegex.some((rx) => rx.test(url.href))) newUrl = redirectSearch(url, initiator);
+ else if (searchHelper.targets.some((rx) => rx.test(url.href))) newUrl = redirectSearch(url, initiator);
- else if (googleTranslateDomains.includes(url.host)) newUrl = redirectGoogleTranslate(url, initiator);
+ else if (googleTranslateHelper.targets.includes(url.host)) newUrl = redirectGoogleTranslate(url, initiator);
- else if (url.host.match(wikipediaRegex)) newUrl = redirectWikipedia(url, initiator);
+ else if (url.host.match(wikipediaHelper.targets)) newUrl = redirectWikipedia(url, initiator);
if (newUrl) {
console.info("Redirecting", url.href, "=>", newUrl);
@@ -628,18 +73,20 @@ browser.tabs.onUpdated.addListener((tabId, changeInfo, _) => {
}
var protocolHost = `${url.protocol}//${url.host}`;
var mightyList = [];
- mightyList.push(...invidiousInstances);
- mightyList.push(...nitterInstances);
- mightyList.push(...bibliogramInstances);
- mightyList.push(...redditInstances.libreddit);
- mightyList.push(...redditInstances.teddit);
- mightyList.push(redditInstances.desktop);
- mightyList.push(redditInstances.mobile);
- mightyList.push(...searchInstances.searx);
- mightyList.push(...searchInstances.whoogle);
- mightyList.push(...simplyTranslateInstances);
- mightyList.push(...scribeInstances);
- mightyList.push(...wikipediaInstances);
+ mightyList.push(
+ ...youtubeHelper.redirects.normal,
+ ...twitterHelper.redirects.normal,
+ ...instagramHelper.redirects.normal,
+ ...redditHelper.redirects.libreddit.normal,
+ ...redditHelper.redirects.teddit.normal,
+ redditHelper.redirects.desktop,
+ redditHelper.redirects.mobile,
+ ...searchHelper.redirects.searx.normal,
+ ...searchHelper.redirects.whoogle.normal,
+ ...googleTranslateHelper.redirects.normal,
+ ...mediumHelper.redirects.normal,
+ ...wikipediaHelper.redirects.normal
+ );
if (mightyList.includes(protocolHost)) browser.pageAction.show(tabId);
});
@@ -649,13 +96,14 @@ browser.pageAction.onClicked.addListener((tab) => {
var tabUrl = new URL(tab.url);
var protocolHost = `${tabUrl.protocol}//${tabUrl.host}`;
var newUrl;
- if (invidiousInstances.includes(protocolHost))
- newUrl = 'https://youtube.com';
- else if (nitterInstances.includes(protocolHost))
- newUrl = 'https://twitter.com';
- else if (bibliogramInstances.includes(protocolHost))
- newUrl = 'https://instagram.com';
- else if (redditInstances['libreddit'].includes(protocolHost) || redditInstances['teddit'].includes(protocolHost)) {
+ if (youtubeHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://youtube.com';
+
+ if (twitterHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://twitter.com';
+
+ if (instagramHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://instagram.com';
+
+
+ if (redditHelper.redirects.libreddit.normal.includes(protocolHost) || redditHelper.redirects.teddit.normal.includes(protocolHost)) {
if (tabUrl.pathname.startsWith('/img')) {
newUrl = "https://i.redd.it"
tabUrl.href = tabUrl.href.replace("/img", "")
@@ -663,19 +111,19 @@ browser.pageAction.onClicked.addListener((tab) => {
else
newUrl = 'https://reddit.com';
}
- else if (searchInstances.searx.includes(protocolHost) || searchInstances.whoogle.includes(protocolHost))
- newUrl = 'https://google.com';
- else if (simplyTranslateInstances.includes(protocolHost))
- newUrl = 'https://translate.google.com';
- else if (scribeInstances.includes(protocolHost))
- newUrl = 'https://medium.com';
- else if (wikipediaInstances.includes(protocolHost))
- newUrl = 'https://wikipedia.com';
- if (newUrl)
- browser.tabs.update({
- url: tabUrl.href.replace(protocolHost, newUrl)
- });
+ if (
+ searchHelper.redirects.searx.normal.includes(protocolHost) ||
+ searchHelper.redirects.whoogle.normal.includes(protocolHost)
+ ) newUrl = 'https://google.com';
+
+ if (googleTranslateHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://translate.google.com';
+
+ if (mediumHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://medium.com';
+
+ if (wikipediaHelper.redirects.normal.includes(protocolHost)) newUrl = 'https://wikipedia.com';
+
+ if (newUrl) browser.tabs.update({ url: tabUrl.href.replace(protocolHost, newUrl) });
});
browser.runtime.onInstalled.addListener((details) => {
@@ -697,7 +145,10 @@ browser.runtime.onInstalled.addListener((details) => {
if (result.redditFrontend === undefined) browser.storage.sync.set({ redditFrontend: 'libreddit' })
- if (result.searchFrontend === undefined) browser.storage.sync.set({ searchFrontend: 'searx' })
+ if (result.searchFrontend === undefined) {
+ data.searchFrontend = 'searx';
+ browser.storage.sync.set({ searchFrontend: data.searchFrontend })
+ }
}
);
@@ -714,11 +165,8 @@ browser.runtime.onInstalled.addListener((details) => {
whitelist: null,
});
}
- if (result.invidiousInstance === "https://invidio.us") {
- browser.storage.sync.set({
- invidiousInstance: null,
- });
- }
+ if (result.invidiousInstance === "https://invidio.us")
+ browser.storage.sync.set({ invidiousInstance: null });
}
);
}
diff --git a/src/pages/options/general.js b/src/pages/options/general.js
index e77f2aee..9b0731a1 100644
--- a/src/pages/options/general.js
+++ b/src/pages/options/general.js
@@ -1,5 +1,6 @@
"use strict";
+import data from "../../assets/javascripts/data.js";
import commonHelper from "../../assets/javascripts/helpers/common.js";
import shared from "./shared.js";
@@ -7,7 +8,6 @@ import shared from "./shared.js";
const domparser = new DOMParser();
let themeElement = document.getElementById("theme");
-let exceptions;
window.browser = window.browser || window.chrome;
@@ -37,10 +37,11 @@ browser.storage.sync.get(
"theme",
],
(result) => {
+ data.theme = result.theme || "";
themeElement.value = result.theme || "";
if (result.theme) document.body.classList.add(result.theme);
- exceptions = result.exceptions || [];
- exceptions.forEach(prependExceptionsItem);
+ data.exceptions = result.exceptions || [];
+ data.exceptions.forEach(prependExceptionsItem);
shared.autocompletes.forEach((value) => {
});
}
diff --git a/src/pages/options/instagram.html b/src/pages/options/instagram.html
index 96d9d07c..25cfc8f2 100644
--- a/src/pages/options/instagram.html
+++ b/src/pages/options/instagram.html
@@ -28,21 +28,21 @@
<h1>Enable</h1>
<input id="disable-bibliogram" type="checkbox" checked />
</div>
- <div class="some-block option-block">
+ <!-- <div class="some-block option-block">
<h4>Instance</h4>
<div class="autocomplete">
<input id="bibliogram-instance" type="url" data-localise-placeholder="__MSG_randomInstancePlaceholder__"
placeholder="Random instance (none selected)" />
</div>
- </div>
+ </div> -->
- <section class="settings-block">
+ <!-- <section class="settings-block">
<h4>Instance List</h4>
<div class="random-pool">
<textarea id="bibliogram-random-pool" name="bibliogram-random-pool" type="text"></textarea>
<ul id="bibliogram-random-pool-list"></ul>
</div>
- </section>
+ </section> -->
</section>
diff --git a/src/pages/options/instagram.js b/src/pages/options/instagram.js
index db31de1e..77438742 100644
--- a/src/pages/options/instagram.js
+++ b/src/pages/options/instagram.js
@@ -1,58 +1,9 @@
import instagramHelper from "../../assets/javascripts/helpers/instagram.js";
-import commonHelper from "../../assets/javascripts/helpers/common.js";
-import shared from "./shared.js";
-
-const bibliogramInstances = instagramHelper.redirects;
-
-let bibliogramInstanceElement = document.getElementById("bibliogram-instance");
let disableBibliogramElement = document.getElementById("disable-bibliogram");
-let bibliogramRandomPoolElement = document.getElementById("bibliogram-random-pool");
-let bibliogramRandomPoolListElement = document.getElementById("bibliogram-random-pool-list");
-
-let bibliogramRandomPool;
-
-browser.storage.sync.get(
- [
- "bibliogramInstance",
- "disableBibliogram",
- "bibliogramRandomPool",
- ],
- (result) => {
- bibliogramInstanceElement.value = result.bibliogramInstance || "";
- disableBibliogramElement.checked = !result.disableBibliogram;
-
-
- bibliogramRandomPool = result.bibliogramRandomPool || commonHelper.filterInstances(bibliogramInstances)
- bibliogramRandomPoolElement.value = bibliogramRandomPool.join("\n");
- commonHelper.updateListElement(bibliogramRandomPoolListElement, bibliogramRandomPool);
- let id = "bibliogram-instance";
- let instances = bibliogramRandomPoolElement.value.split(',')
- shared.autocompletes.push({ id: id, instances: instances })
- shared.autocomplete(document.getElementById(id), instances);
- }
-)
-
-bibliogramInstanceElement.addEventListener("input", commonHelper.debounce(() => {
- if (bibliogramInstanceElement.checkValidity())
- browser.storage.sync.set({ bibliogramInstance: shared.parseURL(bibliogramInstanceElement.value) });
-}, 500));
-
-disableBibliogramElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableBibliogram: !event.target.checked });
-});
-
-bibliogramRandomPoolElement.addEventListener("input", commonHelper.debounce(() => {
- bibliogramRandomPool = commonHelper.filterList(bibliogramRandomPoolElement.value.split("\n"))
- commonHelper.updateListElement(bibliogramRandomPoolListElement, bibliogramRandomPool);
- browser.storage.sync.set({ bibliogramRandomPool: bibliogramRandomPool });
-}, 50));
+disableBibliogramElement.checked = !instagramHelper.getDisableBibliogram();
-browser.storage.onChanged.addListener((changes) => {
- if ("bibliogramRandomPool" in changes) {
- bibliogramRandomPool = changes.bibliogramRandomPool.newValue;
- bibliogramRandomPoolElement.value = bibliogramRandomPool.join("\n");
- commonHelper.updateListElement(bibliogramRandomPoolListElement, bibliogramRandomPool);
- }
-}) \ No newline at end of file
+disableBibliogramElement.addEventListener("change",
+ (event) => instagramHelper.setDisableBibliogram(!event.target.checked)
+); \ No newline at end of file
diff --git a/src/pages/options/maps.html b/src/pages/options/maps.html
index 47c5adfa..bfcedbaf 100644
--- a/src/pages/options/maps.html
+++ b/src/pages/options/maps.html
@@ -26,15 +26,15 @@
<section class="option-block">
<div class="some-block option-block">
- <h1>Maps (OpenStreetMap)</h1>
+ <h1>Enable</h1>
<input id="disable-osm" type="checkbox" checked />
</div>
- <div class="some-block option-block">
+ <!-- <div class="some-block option-block">
<h4>Instance</h4>
<div class="autocomplete">
<input id="osm-instance" type="url" placeholder="https://openstreetmap.org" />
</div>
- </div>
+ </div> -->
</section>
<script type="module" src="./init.js"></script>
<script type="module" src="./maps.js"></script>
diff --git a/src/pages/options/maps.js b/src/pages/options/maps.js
index 89a92057..310f9285 100644
--- a/src/pages/options/maps.js
+++ b/src/pages/options/maps.js
@@ -1,32 +1,9 @@
import mapsHelper from "../../assets/javascripts/helpers/google-maps.js";
-import commonHelper from "../../assets/javascripts/helpers/common.js";
-import shared from "./shared.js";
-const osmInstances = mapsHelper.redirects;
-
-let osmInstanceElement = document.getElementById("osm-instance");
let disableOsmElement = document.getElementById("disable-osm");
-browser.storage.sync.get(
- [
- "osmInstance",
- "disableOsm",
- ],
- (result) => {
- osmInstanceElement.value = result.osmInstance || "";
- disableOsmElement.checked = !result.disableOsm;
- let id = "osm-instance"
- let instances = osmInstances
- shared.autocompletes.push({ id: id, instances: instances })
- shared.autocomplete(document.getElementById(id), instances);
- }
-)
-
-osmInstanceElement.addEventListener("input", commonHelper.debounce(() => {
- if (osmInstanceElement.checkValidity())
- browser.storage.sync.set({ osmInstance: shared.parseURL(osmInstanceElement.value) });
-}, 500));
+disableOsmElement.checked = !mapsHelper.getDisableOsm();
-disableOsmElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableOsm: !event.target.checked });
-}); \ No newline at end of file
+disableOsmElement.addEventListener("change",
+ (event) => mapsHelper.setDisableOsm(!event.target.checked)
+); \ No newline at end of file
diff --git a/src/pages/options/medium.html b/src/pages/options/medium.html
index b04a631e..fb44b7ee 100644
--- a/src/pages/options/medium.html
+++ b/src/pages/options/medium.html
@@ -25,10 +25,10 @@
<section class="option-block">
<div class="some-block option-block">
- <h1>Medium (Scribe)</h1>
+ <h1>Enable</h1>
<input id="disable-scribe" type="checkbox" checked />
</div>
- <div class="some-block option-block">
+ <!-- <div class="some-block option-block">
<h4>Instance</h4>
<div class="autocomplete">
<input id="scribe-instance" type="url" name="scribe-instance"
@@ -42,7 +42,7 @@
<textarea id="scribe-random-pool" type="text"></textarea>
<ul id="scribe-random-pool-list"></ul>
</div>
- </section>
+ </section> -->
</section>
<script type="module" src="./init.js"></script>
diff --git a/src/pages/options/medium.js b/src/pages/options/medium.js
index bd86089f..bcd2c2e4 100644
--- a/src/pages/options/medium.js
+++ b/src/pages/options/medium.js
@@ -1,61 +1,9 @@
import mediumHelper from "../../assets/javascripts/helpers/medium.js";
-import commonHelper from "../../assets/javascripts/helpers/common.js";
-import shared from "./shared.js";
-const scribeInstances = mediumHelper.redirects;
-
-let scribeInstanceElement = document.getElementById("scribe-instance");
let disableScribeElement = document.getElementById("disable-scribe");
-let scribeRandomPoolElement = document.getElementById("scribe-random-pool");
-let scribeRandomPoolListElement = document.getElementById('scribe-random-pool-list');
-
-let scribeRandomPool;
-
-browser.storage.sync.get(
- [
- "disableScribe",
- "scribeInstance",
- "scribeRandomPool",
- ],
- (result) => {
- scribeInstanceElement.value = result.scribeInstance || "";
- disableScribeElement.checked = !result.disableScribe;
-
- scribeRandomPool = result.scribeRandomPool || commonHelper.filterInstances(scribeInstances)
- scribeRandomPoolElement.value = scribeRandomPool.join("\n");
- commonHelper.updateListElement(scribeRandomPoolListElement, scribeRandomPool);
-
- let id = "scribe-instance";
- let instances = scribeRandomPoolElement.value.split('\n')
- shared.autocompletes.push({ id: id, instances: instances })
- shared.autocomplete(document.getElementById(id), instances);
- }
-)
-
-disableScribeElement.addEventListener("change", (event) => {
- console.info("isScibeEnabled:", event.target.checked)
- browser.storage.sync.set({ disableScribe: !event.target.checked });
-});
-
-scribeInstanceElement.addEventListener("input", commonHelper.debounce(() => {
- if (scribeInstanceElement.checkValidity()) {
- console.info("selectedScribeInstance", scribeInstanceElement.value);
- browser.storage.sync.set({
- scribeInstance: shared.parseURL(scribeInstanceElement.value)
- });
- }
-}, 500));
-scribeRandomPoolElement.addEventListener("input", commonHelper.debounce(() => {
- scribeRandomPool = commonHelper.filterList(scribeRandomPoolElement.value.split("\n"))
- commonHelper.updateListElement(scribeRandomPoolListElement, scribeRandomPool);
- browser.storage.sync.set({ scribeRandomPool: scribeRandomPool });
-}, 50));
+disableScribeElement.checked = !mediumHelper.getDisableScribe();
-browser.storage.onChanged.addListener((changes) => {
- if ("scribeRandomPool" in changes) {
- scribeRandomPool = changes.scribeRandomPool.newValue;
- scribeRandomPoolElement.value = scribeRandomPool.join("\n");
- commonHelper.updateListElement(scribeRandomPoolListElement, scribeRandomPool);
- }
-}) \ No newline at end of file
+disableScribeElement.addEventListener("change",
+ (event) => mediumHelper.setDisableScribe(!event.target.checked)
+);
diff --git a/src/pages/options/reddit.html b/src/pages/options/reddit.html
index 88f4c46c..14474285 100644
--- a/src/pages/options/reddit.html
+++ b/src/pages/options/reddit.html
@@ -27,16 +27,16 @@
<section class="option-block">
<div class="some-block option-block">
- <h1>Reddit</h1>
+ <h1>Enable</h1>
<input id="disable-reddit" type="checkbox" checked />
</div>
- <div class="some-block option-block">
+ <!-- <div class="some-block option-block">
<h4>Instance</h4>
<div class="autocomplete">
<input id="reddit-instance" type="url" placeholder="https://libredd.it" />
</div>
- </div>
+ </div> -->
<div class="some-block option-block">
<h4>Frontend</h4>
@@ -46,7 +46,7 @@
</select>
</div>
- <section class="settings-block">
+ <!-- <section class="settings-block">
<h4>LibReddit Instance List</h4>
<div class="random-pool">
<textarea id="libreddit-random-pool" type="text"></textarea>
@@ -60,7 +60,7 @@
<textarea id="teddit-random-pool" type="text"></textarea>
<ul id="teddit-random-pool-list"></ul>
</div>
- </section>
+ </section> -->
</section>
diff --git a/src/pages/options/reddit.js b/src/pages/options/reddit.js
index 6702c4de..96b736be 100644
--- a/src/pages/options/reddit.js
+++ b/src/pages/options/reddit.js
@@ -1,91 +1,15 @@
-import redditHelper from "../../assets/javascripts/helpers/reddit.js";
-import commonHelper from "../../assets/javascripts/helpers/common.js";
-import shared from "./shared.js";
+import reddit from "../../assets/javascripts/helpers/reddit.js";
-
-const redditInstances = redditHelper.redirects;
-
-let redditInstanceElement = document.getElementById("reddit-instance");
let disableRedditElement = document.getElementById("disable-reddit");
let redditFrontendElement = document.getElementById("reddit-frontend");
-let libredditRandomPoolElement = document.getElementById("libreddit-random-pool");
-let libredditRandomPoolListElement = document.getElementById("libreddit-random-pool-list");
-
-let tedditRandomPoolElement = document.getElementById("teddit-random-pool");
-let tedditRandomPoolListElement = document.getElementById("teddit-random-pool-list");
-
-let libredditRandomPool
-let tedditRandomPool
-
-browser.storage.sync.get(
- [
- "redditInstance",
- "disableReddit",
- "redditFrontend",
- "libredditRandomPool",
- "tedditRandomPool"
- ],
- (result) => {
- redditInstanceElement.value = result.redditInstance || "";
- disableRedditElement.checked = !result.disableReddit;
- redditFrontendElement.value = result.redditFrontend;
-
- libredditRandomPool = result.libredditRandomPool || commonHelper.filterInstances(redditInstances.libreddit)
- libredditRandomPoolElement.value = libredditRandomPool.join("\n");
- commonHelper.updateListElement(libredditRandomPoolListElement, libredditRandomPool);
-
- tedditRandomPool = result.tedditRandomPool || commonHelper.filterInstances(redditInstances.teddit)
- tedditRandomPoolElement.value = tedditRandomPool.join("\n");
- commonHelper.updateListElement(tedditRandomPoolListElement, tedditRandomPool);
-
- // let id = "reddit-instance";
- // let instances = redditInstances;
- // shared.autocompletes.push({ id: id, instances: instances })
- // shared.autocomplete(document.getElementById(id), instances);
- }
-)
-
-redditInstanceElement.addEventListener("input", commonHelper.debounce(() => {
- if (redditInstanceElement.checkValidity()) {
- browser.storage.sync.set({
- redditInstance: shared.parseURL(redditInstanceElement.value),
- });
- }
-}, 500));
-
-disableRedditElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableReddit: !event.target.checked });
-});
-
-redditFrontendElement.addEventListener("change", (event) => {
- const value = event.target.options[redditFrontendElement.selectedIndex].value;
- console.info("Reddit Frontend:", value)
- browser.storage.sync.set({ redditFrontend: value })
-});
-
-libredditRandomPoolElement.addEventListener("input", commonHelper.debounce(() => {
- libredditRandomPool = commonHelper.filterList(libredditRandomPoolElement.value.split("\n"))
- commonHelper.updateListElement(libredditRandomPoolListElement, libredditRandomPool);
- browser.storage.sync.set({ libredditRandomPool: libredditRandomPool });
-}, 50));
-
-tedditRandomPoolElement.addEventListener("input", commonHelper.debounce(() => {
- tedditRandomPool = commonHelper.filterList(tedditRandomPoolElement.value.split("\n"))
- commonHelper.updateListElement(tedditRandomPoolListElement, tedditRandomPool);
- browser.storage.sync.set({ tedditRandomPool: tedditRandomPool });
-}, 50));
+disableRedditElement.checked = !reddit.getDisableReddit();
+redditFrontendElement.value = reddit.getRedditFrontend();
-browser.storage.onChanged.addListener((changes) => {
- if ("libredditRandomPool" in changes) {
- libredditRandomPool = changes.libredditRandomPool.newValue;
- libredditRandomPoolElement.value = libredditRandomPool.join("\n");
- commonHelper.updateListElement(libredditRandomPoolListElement, libredditRandomPool);
- }
+disableRedditElement.addEventListener("change",
+ (event) => reddit.setDisableReddit(!event.target.checked)
+);
- if ("tedditRandomPool" in changes) {
- tedditRandomPool = changes.tedditRandomPool.newValue;
- tedditRandomPoolElement.value = tedditRandomPool.join("\n");
- commonHelper.updateListElement(tedditRandomPoolListElement, tedditRandomPool);
- }
-}) \ No newline at end of file
+redditFrontendElement.addEventListener("change",
+ (event) => reddit.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 63a416cf..77bd4d23 100644
--- a/src/pages/options/search.html
+++ b/src/pages/options/search.html
@@ -25,17 +25,17 @@
<section class="option-block">
<div class="some-block option-block">
- <h1>Search</h1>
+ <h1>Enable</h1>
<input id="disable-search" type="checkbox" checked />
</div>
- <div class="some-block option-block">
+ <!-- <div class="some-block option-block">
<h4>Instance</h4>
- <!-- <div class="autocomplete"> -->
+ <div class="autocomplete">
<input id="search-instance" type="url"
data-localise-placeholder="__MSG_randomInstancePlaceholder__"
placeholder="Random instance (none selected)" />
- <!-- </div> -->
- </div>
+ </div>
+ </div> -->
<div class="some-block option-block">
<h4>Frontend</h4>
@@ -44,7 +44,7 @@
<option value="whoogle">Whoogle</option>
</select>
</div>
-
+<!--
<section class="settings-block">
<h4>SearX Instance List</h4>
<div class="random-pool">
@@ -59,7 +59,7 @@
<textarea id="whoogle-random-pool" type="text"></textarea>
<ul id="whoogle-random-pool-list"></ul>
</div>
- </section>
+ </section> -->
</section>
diff --git a/src/pages/options/search.js b/src/pages/options/search.js
index dc3246db..85e39749 100644
--- a/src/pages/options/search.js
+++ b/src/pages/options/search.js
@@ -1,69 +1,15 @@
import searchHelper from "../../assets/javascripts/helpers/google-search.js";
-import commonHelper from "../../assets/javascripts/helpers/common.js";
-import shared from "./shared.js";
-const searchInstances = searchHelper.redirects;
-let searchInstanceElement = document.getElementById("search-instance");
let disableSearchElement = document.getElementById("disable-search");
let searchFrontendElement = document.getElementById("search-frontend");
-let searxRandomPoolElement = document.getElementById("searx-random-pool");
-let searxRandomPoolListElement = document.getElementById("searx-random-pool-list");
+disableSearchElement.checked = !searchHelper.getDisableSearch();
+searchFrontendElement.value = searchHelper.getSearchFrontend();
-let whoogleRandomPoolElement = document.getElementById("whoogle-random-pool");
-let whoogleRandomPoolListElement = document.getElementById("whoogle-random-pool-list");
+searchFrontendElement.addEventListener("change",
+ (event) => searchHelper.setSearchFrontend(event.target.options[searchFrontendElement.selectedIndex].value)
+);
-let searxRandomPool
-let whoogleRandomPool
-
-browser.storage.sync.get(
- [
- "searchInstance",
- "disableSearch",
- "searchFrontend",
- "searxRandomPool",
- "whoogleRandomPool"
- ],
- (result) => {
- searchInstanceElement.value = (result.searchInstance && result.searchInstance.link) || "";
- disableSearchElement.checked = !result.disableSearch;
- searchFrontendElement.value = result.searchFrontend;
-
- searxRandomPool = result.searxRandomPool || commonHelper.filterInstances(searchInstances.searx)
- searxRandomPoolElement.value = searxRandomPool.join("\n");
- commonHelper.updateListElement(searxRandomPoolListElement, searxRandomPool);
-
- whoogleRandomPool = result.whoogleRandomPool || commonHelper.filterInstances(searchInstances.whoogle)
- whoogleRandomPoolElement.value = whoogleRandomPool.join("\n");
- commonHelper.updateListElement(whoogleRandomPoolListElement, whoogleRandomPool);
-
- // let id = "search-instance"
- // let instances = searchInstances.map((instance) => instance.link)
- // shared.autocompletes.push({ id: id, instances: instances })
- // shared.autocomplete(document.getElementById(id), instances);
- }
-)
-
-const searchInstanceChange = commonHelper.debounce(() => {
- const instance = searchInstances.find(
- (instance) => instance.link === searchInstanceElement.value
- );
- if (instance || !searchInstanceElement.value) {
- browser.storage.sync.set({
- searchInstance: instance || searchInstanceElement.value,
- });
- } else {
- searchInstanceElement.setCustomValidity("Must be an instance from the list");
- }
-}, 500);
-searchInstanceElement.addEventListener("input", searchInstanceChange);
-
-searchFrontendElement.addEventListener("change", (event) => {
- const value = event.target.options[searchFrontendElement.selectedIndex].value;
- console.info("Search Frontend:", value)
- browser.storage.sync.set({ searchFrontend: value })
-});
-
-disableSearchElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableSearch: !event.target.checked });
-});
+disableSearchElement.addEventListener("change",
+ (event) => searchHelper.setDisableSearch(!event.target.checked)
+);
diff --git a/src/pages/options/translate.html b/src/pages/options/translate.html
index e33b57a9..7e727c33 100644
--- a/src/pages/options/translate.html
+++ b/src/pages/options/translate.html
@@ -24,15 +24,15 @@
</section>
<section class="option-block">
<div class="some-block option-block">
- <h1>Translate (SimplyTranslate)</h1>
+ <h1>Enable</h1>
<input id="disable-simplyTranslate" type="checkbox" checked />
</div>
- <div class="some-block option-block">
+ <!-- <div class="some-block option-block">
<h4>Instance</h4>
<div class="autocomplete">
<input id="simplyTranslate-instance" type="url" placeholder="https://translate.metalune.xyz" />
</div>
- </div>
+ </div> -->
</section>
diff --git a/src/pages/options/translate.js b/src/pages/options/translate.js
index 7259df00..4e254446 100644
--- a/src/pages/options/translate.js
+++ b/src/pages/options/translate.js
@@ -1,38 +1,9 @@
import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js";
-import commonHelper from "../../assets/javascripts/helpers/common.js";
-import shared from "./shared.js";
-const simplyTranslateInstances = googleTranslateHelper.redirects;
-
-let simplyTranslateInstanceElement = document.getElementById("simplyTranslate-instance");
let disableSimplyTranslateElement = document.getElementById("disable-simplyTranslate");
+disableSimplyTranslateElement.checked = !googleTranslateHelper.getDisableSimplyTranslate();
-browser.storage.sync.get(
- [
- "simplyTranslateInstance",
- "disableSimplyTranslate",
- ],
- (result) => {
- simplyTranslateInstanceElement.value = result.simplyTranslateInstance || "";
- disableSimplyTranslateElement.checked = !result.disableSimplyTranslate;
- let id = "simplyTranslate-instance"
- let instances = simplyTranslateInstances;
- shared.autocompletes.push({ id: id, instances: instances })
- shared.autocomplete(document.getElementById(id), instances);
- }
-)
-
-simplyTranslateInstanceElement.addEventListener(
- "input",
- commonHelper.debounce(() => {
- if (simplyTranslateInstanceElement.checkValidity()) {
- browser.storage.sync.set({
- simplyTranslateInstance: shared.parseURL(simplyTranslateInstanceElement.value),
- });
- }
- }, 500));
-
-disableSimplyTranslateElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableSimplyTranslate: !event.target.checked });
-}); \ No newline at end of file
+disableSimplyTranslateElement.addEventListener("change",
+ (event) => googleTranslateHelper.setDisableSimplyTranslate(!event.target.checked)
+); \ No newline at end of file
diff --git a/src/pages/options/twitter.html b/src/pages/options/twitter.html
index 7922e69d..555b3f64 100644
--- a/src/pages/options/twitter.html
+++ b/src/pages/options/twitter.html
@@ -30,22 +30,22 @@
<h1>Enable</h1>
<input id="disable-nitter" type="checkbox" checked />
</div>
- <div class="some-block option-block">
+ <!-- <div class="some-block option-block">
<h4>Instance</h4>
<div class="autocomplete">
<input id="nitter-instance" type="url" name="nitter-instance"
data-localise-placeholder="__MSG_randomInstancePlaceholder__"
placeholder="Random instance (none selected)" />
</div>
- </div>
+ </div> -->
- <section class="settings-block">
+ <!-- <section class="settings-block">
<h4>Instance List</h4>
<div class="random-pool">
<textarea id="nitter-random-pool" type="text"></textarea>
<ul id="nitter-random-pool-list"></ul>
</div>
- </section>
+ </section> -->
<div class="some-block option-block">
<h4 data-localise="__MSG_removeTwitterSW__">Proactively remove Twitter service worker</h4>
<input id="remove-twitter-sw" type="checkbox" checked />
diff --git a/src/pages/options/twitter.js b/src/pages/options/twitter.js
index 21ee66b7..60be6cb0 100644
--- a/src/pages/options/twitter.js
+++ b/src/pages/options/twitter.js
@@ -1,66 +1,15 @@
import twitterHelper from "../../assets/javascripts/helpers/twitter.js";
-import commonHelper from "../../assets/javascripts/helpers/common.js";
-import shared from "./shared.js";
-const nitterInstances = twitterHelper.redirects;
-
-let nitterInstanceElement = document.getElementById("nitter-instance");
let removeTwitterSWElement = document.getElementById("remove-twitter-sw");
let disableNitterElement = document.getElementById("disable-nitter");
-let nitterRandomPoolElement = document.getElementById("nitter-random-pool");
-let nitterRandomPoolListElement = document.getElementById('nitter-random-pool-list');
-
-let nitterRandomPool
-
-browser.storage.sync.get(
- [
- "nitterInstance",
- "disableNitter",
- "nitterRandomPool",
- "removeTwitterSW",
- ],
- (result) => {
- nitterInstanceElement.value = result.nitterInstance || "";
- disableNitterElement.checked = !result.disableNitter;
- removeTwitterSWElement.checked = !result.removeTwitterSW;
-
- nitterRandomPool = result.nitterRandomPool || commonHelper.filterInstances(nitterInstances)
- nitterRandomPoolElement.value = nitterRandomPool.join("\n");
- commonHelper.updateListElement(nitterRandomPoolListElement, nitterRandomPool);
- let id = "nitter-instance"
- let instances = nitterRandomPool
- shared.autocompletes.push({ id: id, instances: instances })
- shared.autocomplete(document.getElementById(id), instances);
- }
-)
+disableNitterElement.checked = !twitterHelper.getDisableNitter();
+removeTwitterSWElement.checked = !remove.getRemoveTwitterSW; // Problem
-nitterInstanceElement.addEventListener("input", commonHelper.debounce(() => {
- if (nitterInstanceElement.checkValidity()) {
- browser.storage.sync.set({
- nitterInstance: shared.parseURL(nitterInstanceElement.value),
- });
- }
-}, 500));
-
-disableNitterElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableNitter: !event.target.checked });
-});
+disableNitterElement.addEventListener("change",
+ (event) => twitterHelper.setDisableNitter(!event.target.checked)
+);
removeTwitterSWElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ removeTwitterSW: !event.target.checked });
+ browser.storage.sync.set({ removeTwitterSW: !event.target.checked }); // Problem
});
-
-nitterRandomPoolElement.addEventListener("input", commonHelper.debounce(() => {
- nitterRandomPool = commonHelper.filterList(nitterRandomPoolElement.value.split("\n"))
- commonHelper.updateListElement(nitterRandomPoolListElement, nitterRandomPool);
- browser.storage.sync.set({ nitterRandomPool: nitterRandomPool });
-}, 50));
-
-browser.storage.onChanged.addListener((changes) => {
- if ("nitterRandomPool" in changes) {
- nitterRandomPool = changes.nitterRandomPool.newValue;
- nitterRandomPoolElement.value = nitterRandomPool.join("\n");
- commonHelper.updateListElement(nitterRandomPoolListElement, nitterRandomPool);
- }
-}) \ No newline at end of file
diff --git a/src/pages/options/wikipedia.html b/src/pages/options/wikipedia.html
index 8978d08e..d3cc5cb2 100644
--- a/src/pages/options/wikipedia.html
+++ b/src/pages/options/wikipedia.html
@@ -25,10 +25,10 @@
<section class="option-block">
<div class="some-block option-block">
- <h1>Wikipedia (Wikiless)</h1>
+ <h1>Enable</h1>
<input id="disable-wikipedia" type="checkbox" checked />
</div>
- <div class="some-block option-block">
+ <!-- <div class="some-block option-block">
<h4>Instance</h4>
<div class="autocomplete">
<input id="wikipedia-instance" type="url" placeholder="https://wikiless.org" />
@@ -41,7 +41,7 @@
<textarea id="wikiless-random-pool" type="text"></textarea>
<ul id="wikiless-random-pool-list"></ul>
</div>
- </section>
+ </section> -->
</section>
<script type="module" src="./init.js"></script>
diff --git a/src/pages/options/wikipedia.js b/src/pages/options/wikipedia.js
index 8306d842..b2e7d23c 100644
--- a/src/pages/options/wikipedia.js
+++ b/src/pages/options/wikipedia.js
@@ -1,63 +1,9 @@
import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
-import commonHelper from "../../assets/javascripts/helpers/common.js";
-import shared from "./shared.js";
-
-const wikilessInstances = wikipediaHelper.redirects;
-
-let wikipediaInstanceElement = document.getElementById("wikipedia-instance");
let disableWikipediaElement = document.getElementById("disable-wikipedia");
-let wikilessRandomPoolElement = document.getElementById("wikiless-random-pool");
-let wikilessRandomPoolListElement = document.getElementById('wikiless-random-pool-list');
-
-let wikilessRandomPool
-
-browser.storage.sync.get(
- [
- "wikipediaInstance",
- "disableWikipedia",
- "wikilessRandomPool"
- ],
- (result) => {
- wikipediaInstanceElement.value = result.wikipediaInstance || "";
- disableWikipediaElement.checked = !result.disableWikipedia;
-
- wikilessRandomPool = result.wikilessRandomPool || commonHelper.filterInstances(wikilessInstances)
- wikilessRandomPoolElement.value = wikilessRandomPool.join("\n")
- commonHelper.updateListElement(wikilessRandomPoolListElement, wikilessRandomPool);
-
- let id = "wikipedia-instance";
- let instances = wikilessInstances;
- shared.autocompletes.push({ id: id, instances: instances })
- shared.autocomplete(document.getElementById(id), instances);
- }
-)
-
-wikipediaInstanceElement.addEventListener("input", commonHelper.debounce(() => {
- if (wikipediaInstanceElement.checkValidity()) {
- browser.storage.sync.set({
- wikipediaInstance: shared.parseURL(wikipediaInstanceElement.value),
- });
- }
-}, 500));
-
-disableWikipediaElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableWikipedia: !event.target.checked });
-});
-
-wikilessRandomPoolElement.addEventListener("input", commonHelper.debounce(() => {
- wikilessRandomPool = commonHelper.filterList(wikilessRandomPoolElement.value.split("\n"))
- commonHelper.updateListElement(wikilessRandomPoolListElement, wikilessRandomPool);
- browser.storage.sync.set({ wikilessRandomPool: wikilessRandomPool });
-}, 50));
+disableWikipediaElement.checked = !wikipediaHelper.getDisableWikipedia();
-browser.storage.onChanged.addListener((changes) => {
- if ("wikilessRandomPool" in changes) {
- console.info("Wikiless updating");
- console.info(changes.wikilessRandomPool.newValue)
- wikilessRandomPool = changes.wikilessRandomPool.newValue;
- wikilessRandomPoolElement.value = wikilessRandomPool.join("\n");
- commonHelper.updateListElement(wikilessRandomPoolListElement, wikilessRandomPool);
- }
-}) \ No newline at end of file
+disableWikipediaElement.addEventListener("change",
+ (event) => wikipediaHelper.setDisableWikipedia(!event.target.checked)
+); \ No newline at end of file
diff --git a/src/pages/options/youtube.html b/src/pages/options/youtube.html
index 61dac7bd..442c15c0 100644
--- a/src/pages/options/youtube.html
+++ b/src/pages/options/youtube.html
@@ -30,27 +30,27 @@
<input id="disable-invidious" type="checkbox" checked />
</div>
- <div class="some-block option-block">
+ <!-- <div class="some-block option-block">
<h4>Instance</h4>
- <!-- <div class="autocomplete"> -->
+ <div class="autocomplete">
<input id="invidious-instance" type="url" data-localise-placeholder="__MSG_randomInstancePlaceholder__"
placeholder="Random instance (none selected)" />
- <!-- </div> -->
- </div>
+ </div>
+ </div> -->
- <section class="settings-block">
+ <!-- <section class="settings-block">
<h4>Instance List</h4>
<div class="random-pool">
<textarea type="textarea" id="invidious-random-pool" name="invidious-random-pool"
type="text"></textarea>
<ul id="invidious-random-pool-list"></ul>
</div>
- </section>
+ </section> -->
<div class="some-block option-block">
<h4>Player Style</h4>
<select id="invidious-player-style">
- <option value="">Invidious</option>
+ <option value="invidious">Invidious</option>
<option value="youtube">YouTube</option>
</select>
</div>
diff --git a/src/pages/options/youtube.js b/src/pages/options/youtube.js
index 8749a711..95e7d2c9 100644
--- a/src/pages/options/youtube.js
+++ b/src/pages/options/youtube.js
@@ -1,10 +1,6 @@
import youtubeHelper from "../../assets/javascripts/helpers/youtube.js";
import commonHelper from "../../assets/javascripts/helpers/common.js";
-import shared from "./shared.js";
-const invidiousInstances = youtubeHelper.redirects;
-
-let invidiousInstanceElement = document.getElementById("invidious-instance");
let disableInvidiousElement = document.getElementById("disable-invidious");
let invidiousDarkModeElement = document.getElementById("invidious-dark-mode");
let persistInvidiousPrefsElement = document.getElementById("persist-invidious-prefs");
@@ -12,128 +8,75 @@ let invidiousVolumeElement = document.getElementById("invidious-volume");
let invidiousPlayerStyleElement = document.getElementById("invidious-player-style");
let invidiousSubtitlesElement = document.getElementById("invidious-subtitles");
let invidiousAutoplayElement = document.getElementById("invidious-autoplay");
-let invidiousRandomPoolElement = document.getElementById("invidious-random-pool");
-let invidiousRandomPoolListElement = document.getElementById('invidious-random-pool-list');
let useFreeTubeElement = document.getElementById("use-freetube");
let invidiousAlwaysProxyElement = document.getElementById("always-proxy");
let invidiousOnlyEmbeddedVideoElement = document.getElementById("only-embed");
let invidiousVideoQualityElement = document.getElementById("video-quality");
+let invidiousVolumeValueElement = document.querySelector("#volume-value");
-let invidiousRandomPool;
-
-browser.storage.sync.get(
- [
- "invidiousInstance",
- "disableInvidious",
- "invidiousDarkMode",
- "persistInvidiousPrefs",
- "invidiousVolume",
- "invidiousPlayerStyle",
- "invidiousSubtitles",
- "invidiousAutoplay",
- "invidiousRandomPool",
- "useFreeTube",
- "invidiousAlwaysProxy",
- "invidiousOnlyEmbeddedVideo",
- "invidiousVideoQuality",
- ],
- (result) => {
- invidiousInstanceElement.value = result.invidiousInstance || "";
- disableInvidiousElement.checked = !result.disableInvidious;
- invidiousDarkModeElement.checked = result.invidiousDarkMode;
- persistInvidiousPrefsElement.checked = result.persistInvidiousPrefs;
- invidiousVolumeElement.value = result.invidiousVolume;
- document.querySelector("#volume-value").textContent = result.invidiousVolume ? `${result.invidiousVolume}%` : " - ";
- invidiousPlayerStyleElement.value = result.invidiousPlayerStyle || "";
- invidiousSubtitlesElement.value = result.invidiousSubtitles || "";
- useFreeTubeElement.checked = result.useFreeTube;
- invidiousOnlyEmbeddedVideoElement.checked = result.invidiousOnlyEmbeddedVideo;
- invidiousAlwaysProxyElement.checked = result.invidiousAlwaysProxy;
- invidiousVideoQualityElement.value = result.invidiousVideoQuality || "";
- invidiousAutoplayElement.checked = result.invidiousAutoplay;
-
- invidiousRandomPool = result.invidiousRandomPool || commonHelper.filterInstances(invidiousInstances)
- invidiousRandomPoolElement.value = invidiousRandomPool.join("\n");
- commonHelper.updateListElement(invidiousRandomPoolListElement, invidiousRandomPool);
+youtubeHelper.init().then(() => {
+ disableInvidiousElement.checked = !youtubeHelper.getDisableInvidious();
+ 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() || "";
+ useFreeTubeElement.checked = youtubeHelper.getUseFreeTube();
+ invidiousOnlyEmbeddedVideoElement.checked = youtubeHelper.getInvidiousOnlyEmbeddedVideo();
+ invidiousAlwaysProxyElement.checked = youtubeHelper.getInvidiousAlwaysProxy();
+ invidiousVideoQualityElement.value = youtubeHelper.getInvidiousVideoQuality() || "";
+ invidiousAutoplayElement.checked = youtubeHelper.getInvidiousAutoplay();
+});
- let id = "invidious-instance"
- let instances = invidiousRandomPool;
- shared.autocompletes.push({ id: id, instances: instances });
- shared.autocomplete(document.getElementById(id), instances);
- }
-)
-invidiousInstanceElement.addEventListener("input",
- commonHelper.debounce(() => {
- if (invidiousInstanceElement.checkValidity())
- browser.storage.sync.set({ invidiousInstance: shared.parseURL(invidiousInstanceElement.value) });
- }, 500)
+disableInvidiousElement.addEventListener("change",
+ (event) => youtubeHelper.setDisableInvidious(!event.target.checked)
);
-disableInvidiousElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableInvidious: !event.target.checked });
-});
-
-invidiousDarkModeElement.addEventListener("change", (event) => {
- console.info("InvidiousDarkMode", event.target.checked);
- browser.storage.sync.set({ invidiousDarkMode: event.target.checked });
-});
+invidiousDarkModeElement.addEventListener("change",
+ (event) => youtubeHelper.setInvidiousDarkMode(event.target.checked)
+);
-persistInvidiousPrefsElement.addEventListener("change", (event) => {
- console.info("Persist preferences (as cookie)", event.target.checked);
- browser.storage.sync.set({ persistInvidiousPrefs: event.target.checked });
-});
+persistInvidiousPrefsElement.addEventListener("change",
+ (event) => youtubeHelper.setPersistInvidiousPrefs(event.target.checked)
+);
invidiousVolumeElement.addEventListener("input",
commonHelper.debounce(() => {
- document.querySelector("#volume-value").textContent = `${invidiousVolumeElement.value}%`;
- browser.storage.sync.set({ invidiousVolume: invidiousVolumeElement.value });
+ youtubeHelper.setInvidiousVolume(invidiousVolumeElement.value);
+ console.info("youtubeHelper.invidiousVolume:", youtubeHelper.getInvidiousVolume());
+ invidiousVolumeValueElement.textContent = `${invidiousVolumeElement.value}%`;
}, 1)
);
-invidiousPlayerStyleElement.addEventListener("change", (event) => {
- browser.storage.sync.set({
- invidiousPlayerStyle: event.target.options[invidiousPlayerStyleElement.selectedIndex].value,
- });
-});
+invidiousPlayerStyleElement.addEventListener("change",
+ (event) => youtubeHelper.setInvidiousPlayerStyle(event.target.options[invidiousPlayerStyleElement.selectedIndex].value)
+);
invidiousSubtitlesElement.addEventListener("input",
commonHelper.debounce(() => {
- browser.storage.sync.set({ invidiousSubtitles: invidiousSubtitlesElement.value });
+ youtubeHelper.setInvidiousSubtitles(invidiousSubtitlesElement.value)
}, 500)
);
-invidiousAutoplayElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ invidiousAutoplay: event.target.checked });
-});
-
-invidiousRandomPoolElement.addEventListener("input", commonHelper.debounce(() => {
- invidiousRandomPool = commonHelper.filterList(invidiousRandomPoolElement.value.split("\n"))
- commonHelper.updateListElement(invidiousRandomPoolListElement, invidiousRandomPool);
- browser.storage.sync.set({ invidiousRandomPool: invidiousRandomPool });
-}, 50)
+invidiousAutoplayElement.addEventListener("change",
+ (event) => youtubeHelper.setInvidiousAutoplay(event.target.checked)
);
-useFreeTubeElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ useFreeTube: event.target.checked });
-});
-invidiousAlwaysProxyElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ invidiousAlwaysProxy: event.target.checked });
-});
+useFreeTubeElement.addEventListener("change",
+ (event) => youtubeHelper.setUseFreeTube(event.target.checked)
+);
-invidiousOnlyEmbeddedVideoElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ invidiousOnlyEmbeddedVideo: event.target.checked });
-});
+invidiousAlwaysProxyElement.addEventListener("change",
+ (event) => youtubeHelper.setInvidiousAlwaysProxy(event.target.checked)
+);
-invidiousVideoQualityElement.addEventListener("change", (event) => {
- browser.storage.sync.set({ invidiousVideoQuality: event.target.options[invidiousVideoQualityElement.selectedIndex].value });
-});
+invidiousOnlyEmbeddedVideoElement.addEventListener("change",
+ (event) => youtubeHelper.setInvidiousOnlyEmbeddedVideo(event.target.checked)
+);
-browser.storage.onChanged.addListener((changes) => {
- if ("invidiousRandomPool" in changes) {
- invidiousRandomPool = changes.invidiousRandomPool.newValue;
- invidiousRandomPoolElement.value = invidiousRandomPool.join("\n");
- commonHelper.updateListElement(invidiousRandomPoolListElement, invidiousRandomPool);
- }
-}) \ No newline at end of file
+invidiousVideoQualityElement.addEventListener("change",
+ (event) => youtubeHelper.setInvidiousVideoQuality(event.target.options[invidiousVideoQualityElement.selectedIndex].value)
+);
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index 57dda80b..5f570774 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -1,80 +1,78 @@
"use strict";
import commonHelper from "../../assets/javascripts/helpers/common.js";
+import data from "../../assets/javascripts/data.js";
-let disableNitter = document.querySelector("#disable-nitter");
-let disableInvidious = document.querySelector("#disable-invidious");
-let disableBibliogram = document.querySelector("#disable-bibliogram");
-let disableOsm = document.querySelector("#disable-osm");
-let disableReddit = document.querySelector("#disable-reddit");
-let disableSearch = document.querySelector("#disable-search");
-let disableSimplyTranslate = document.querySelector("#disable-simplyTranslate");
-let disableWikipedia = document.querySelector("#disable-wikipedia");
-let disableScribe = document.querySelector("#disable-scribe");
+let disableNitterElement = document.querySelector("#disable-nitter");
+let disableInvidiousElement = document.querySelector("#disable-invidious");
+let disableBibliogramElement = document.querySelector("#disable-bibliogram");
+let disableOsmElement = document.querySelector("#disable-osm");
+let disableRedditElement = document.querySelector("#disable-reddit");
+let disableSearchElement = document.querySelector("#disable-search");
+let disableSimplyTranslateElement = document.querySelector("#disable-simplyTranslate");
+let disableWikipediaElement = document.querySelector("#disable-wikipedia");
+let disableScribeElement = document.querySelector("#disable-scribe");
window.browser = window.browser || window.chrome;
-browser.storage.sync.get(
- [
- "disableNitter",
- "disableInvidious",
- "disableBibliogram",
- "disableOsm",
- "disableReddit",
- "disableSearch",
- "disableSimplyTranslate",
- "disableWikipedia",
- "disableScribe",
- "theme",
- ],
- (result) => {
- if (result.theme) document.body.classList.add(result.theme);
- disableNitter.checked = !result.disableNitter;
- disableInvidious.checked = !result.disableInvidious;
- disableBibliogram.checked = !result.disableBibliogram;
- disableOsm.checked = !result.disableOsm;
- disableReddit.checked = !result.disableReddit;
- disableSearch.checked = !result.disableSearch;
- disableSimplyTranslate.checked = !result.disableSimplyTranslate;
- disableWikipedia.checked = !result.disableWikipedia;
- disableScribe.checked = !result.disableScribe;
- }
-);
+// Complete change to the global variables in data.js
-disableNitter.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableNitter: !event.target.checked });
+if (data.theme) document.body.classList.add(data.theme);
+disableNitterElement.checked = !data.disableNitter;
+disableInvidiousElement.checked = !data.disableInvidious;
+disableBibliogramElement.checked = !data.disableBibliogram;
+disableOsmElement.checked = !data.disableOsm;
+disableRedditElement.checked = !data.disableReddit;
+disableSearchElement.checked = !data.disableSearch;
+disableSimplyTranslateElement.checked = !data.disableSimplyTranslate;
+disableWikipediaElement.checked = !data.disableWikipedia;
+disableScribeElement.checked = !data.disableScribe;
+
+
+disableNitterElement.addEventListener("change", (event) => {
+ data.disableNitter = !event.target.checked;
+ browser.storage.sync.set({ disableNitter: data.disableNitter });
});
-disableInvidious.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableInvidious: !event.target.checked });
+disableInvidiousElement.addEventListener("change", (event) => {
+ data.disableInvidious = !event.target.checked;
+ browser.storage.sync.set({ disableInvidious: data.disableInvidious });
});
-disableBibliogram.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableBibliogram: !event.target.checked });
+disableBibliogramElement.addEventListener("change", (event) => {
+ data.disableBibliogram = !event.target.checked;
+ browser.storage.sync.set({ disableBibliogram: data.disableBibliogram });
});
-disableOsm.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableOsm: !event.target.checked });
+disableOsmElement.addEventListener("change", (event) => {
+ data.disableOsm = !event.target.checked;
+ browser.storage.sync.set({ disableOsm: data.disableOsm });
});
-disableReddit.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableReddit: !event.target.checked });
+disableRedditElement.addEventListener("change", (event) => {
+ data.disableReddit = !event.target.checked;
+ browser.storage.sync.set({ disableReddit: data.disableReddit });
});
-disableSearch.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableSearch: !event.target.checked });
+disableSearchElement.addEventListener("change", (event) => {
+ data.disableSearch = !event.target.checked;
+ console.log("DisableSearch", data.disableSearch)
+ browser.storage.sync.set({ disableSearch: data.disableSearch });
});
-disableSimplyTranslate.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableSimplyTranslate: !event.target.checked });
+disableSimplyTranslateElement.addEventListener("change", (event) => {
+ data.disableSimplyTranslate = !event.target.checked;
+ browser.storage.sync.set({ disableSimplyTranslate: data.disableSimplyTranslate });
});
-disableWikipedia.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableWikipedia: !event.target.checked });
+disableWikipediaElement.addEventListener("change", (event) => {
+ data.disableWikipedia = !event.target.checked;
+ browser.storage.sync.set({ disableWikipedia: data.disableWikipedia });
});
-disableScribe.addEventListener("change", (event) => {
- browser.storage.sync.set({ disableScribe: !event.target.checked });
+disableScribeElement.addEventListener("change", (event) => {
+ data.disableScribe = !event.target.checked;
+ browser.storage.sync.set({ disableScribe: data.disableScribe });
});