about summary refs log tree commit diff stats
path: root/src/pages/options
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-05-03 16:45:14 +0300
committerManeraKai <manerakai@protonmail.com>2022-05-03 16:45:29 +0300
commita78d6cdd04d491fcc773a4530d7887eee2ba4a59 (patch)
tree4784be6bdd47a0da9af535961a90e26e02393ae3 /src/pages/options
parentUpdate README.md (diff)
downloadlibredirect-a78d6cdd04d491fcc773a4530d7887eee2ba4a59.zip
Restructuring and simplifying code #229
Diffstat (limited to 'src/pages/options')
-rw-r--r--src/pages/options/imgur/imgur.js84
-rw-r--r--src/pages/options/instagram/instagram.js73
-rw-r--r--src/pages/options/reddit/reddit.js166
-rw-r--r--src/pages/options/youtube/invidious.js190
-rw-r--r--src/pages/options/youtube/piped.js144
-rw-r--r--src/pages/options/youtube/pipedMaterial.js118
-rw-r--r--src/pages/options/youtube/youtube.js62
7 files changed, 361 insertions, 476 deletions
diff --git a/src/pages/options/imgur/imgur.js b/src/pages/options/imgur/imgur.js
index 11ebcebc..8d4428cf 100644
--- a/src/pages/options/imgur/imgur.js
+++ b/src/pages/options/imgur/imgur.js
@@ -2,18 +2,15 @@ import imgurHelper from "../../../assets/javascripts/helpers/imgur.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableImgurElement = document.getElementById("disable-imgur");
-disableImgurElement.addEventListener("change",
-    (event) => imgurHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    event => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        imgurHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
-    }
-);
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableImgur: !disableImgurElement.checked,
+        imgurProtocol: protocolElement.value,
+    });
+    init();
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -36,50 +33,45 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-imgurHelper.init().then(() => {
-    disableImgurElement.checked = !imgurHelper.getDisable();
+function init() {
+    imgurHelper.init().then(() => {
+        browser.storage.local.get(
+            [
+                "disableImgur",
+                "imgurProtocol",
+            ],
+            r => {
+                disableImgurElement.checked = !r.disableImgur;
+                protocol.value = r.imgurProtocol;
+                changeProtocolSettings(r.imgurProtocol);
+            }
+        );
 
-    let protocol = imgurHelper.getProtocol();
-    console.log('protocol', protocol);
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
 
-    browser.storage.local.get("rimgoLatency").then(r => {
         commonHelper.processDefaultCustomInstances(
             'rimgo',
             'normal',
             imgurHelper,
-            document,
-            imgurHelper.getRimgoNormalRedirectsChecks,
-            imgurHelper.setRimgoNormalRedirectsChecks,
-            imgurHelper.getRimgoNormalCustomRedirects,
-            imgurHelper.setRimgoNormalCustomRedirects,
-            r.rimgoLatency
+            document
         );
-    });
 
-    commonHelper.processDefaultCustomInstances(
-        'rimgo',
-        'tor',
-        imgurHelper,
-        document,
-        imgurHelper.getRimgoTorRedirectsChecks,
-        imgurHelper.setRimgoTorRedirectsChecks,
-        imgurHelper.getRimgoTorCustomRedirects,
-        imgurHelper.setRimgoTorCustomRedirects
-    );
+        commonHelper.processDefaultCustomInstances(
+            'rimgo',
+            'tor',
+            imgurHelper,
+            document
+        );
+
+        commonHelper.processDefaultCustomInstances(
+            'rimgo',
+            'i2p',
+            imgurHelper,
+            document
+        );
+    });
+}
+init();
 
-    commonHelper.processDefaultCustomInstances(
-        'rimgo',
-        'i2p',
-        imgurHelper,
-        document,
-        imgurHelper.getRimgoI2pRedirectsChecks,
-        imgurHelper.setRimgoI2pRedirectsChecks,
-        imgurHelper.getRimgoI2pCustomRedirects,
-        imgurHelper.setRimgoI2pCustomRedirects
-    );
-});
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
diff --git a/src/pages/options/instagram/instagram.js b/src/pages/options/instagram/instagram.js
index 867a5ddc..7dcd5607 100644
--- a/src/pages/options/instagram/instagram.js
+++ b/src/pages/options/instagram/instagram.js
@@ -2,18 +2,15 @@ import instagramHelper from "../../../assets/javascripts/helpers/instagram.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableInstagramElement = document.getElementById("disable-bibliogram");
-disableInstagramElement.addEventListener("change",
-    (event) => instagramHelper.setDisable(!event.target.checked)
-);
+let protocolElement = document.getElementById("protocol");
 
-let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        instagramHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
-    }
-);
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableInstagram: disableInstagramElement.checked,
+        instagramProtocol: protocolElement.value,
+    })
+    changeProtocolSettings(protocolElement.value);
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,41 +25,23 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-instagramHelper.init().then(() => {
-    disableInstagramElement.checked = !instagramHelper.getDisable();
+browser.storage.local.get(
+    [
+        "disableInstagram",
+        "instagramProtocol"
+    ],
+    r => {
 
-    let protocol = instagramHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
+        disableInstagramElement.checked = !r.disableInstagram;
 
+        let protocol = r.instagramProtocol;
+        protocolElement.value = protocol;
+        changeProtocolSettings(protocol);
 
-    browser.storage.local.get("bibliogramLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'bibliogram',
-            'normal',
-            instagramHelper,
-            document,
-            instagramHelper.getBibliogramNormalRedirectsChecks,
-            instagramHelper.setBibliogramNormalRedirectsChecks,
-            instagramHelper.getBibliogramNormalCustomRedirects,
-            instagramHelper.setBibliogramNormalCustomRedirects,
-            r.bibliogramLatency,
-        )
+        commonHelper.processDefaultCustomInstances('bibliogram', 'normal', instagramHelper, document)
+        commonHelper.processDefaultCustomInstances('bibliogram', 'tor', instagramHelper, document)
     })
 
-    commonHelper.processDefaultCustomInstances(
-        'bibliogram',
-        'tor',
-        instagramHelper,
-        document,
-        instagramHelper.getBibliogramTorRedirectsChecks,
-        instagramHelper.setBibliogramTorRedirectsChecks,
-        instagramHelper.getBibliogramTorCustomRedirects,
-        instagramHelper.setBibliogramTorCustomRedirects
-    )
-})
-
-
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
 latencyElement.addEventListener("click",
@@ -76,17 +55,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.bibliogram.normal).then(r => {
             browser.storage.local.set({ bibliogramLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'bibliogram',
-                'normal',
-                instagramHelper,
-                document,
-                instagramHelper.getBibliogramNormalRedirectsChecks,
-                instagramHelper.setBibliogramNormalRedirectsChecks,
-                instagramHelper.getBibliogramNormalCustomRedirects,
-                instagramHelper.setBibliogramNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('bibliogram', 'normal', instagramHelper, document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js
index 91160ecf..47bd1856 100644
--- a/src/pages/options/reddit/reddit.js
+++ b/src/pages/options/reddit/reddit.js
@@ -45,7 +45,6 @@ document.addEventListener("change", async () => {
     init();
 })
 
-
 window.onblur = () => {
     redditHelper.initLibredditCookies();
     redditHelper.initTedditCookies();
@@ -93,100 +92,53 @@ function changeFrontendsSettings(frontend) {
     }
 }
 function init() {
-    redditHelper.init().then(() => {
-        browser.storage.local.get(
-            [
-                "disableReddit",
-                "bypassWatchOnReddit",
-                "redditProtocol",
-                "redditFrontend",
-
-                "enableLibredditCustomSettings",
-
-                "redditTheme",
-                "redditFrontPage",
-                "redditLayout",
-                "redditWide",
-                "redditPostSort",
-                "redditCommentSort",
-                "redditShowNsfw",
-                "redditAutoplayVideos",
-                "redditUseHls",
-                "redditHideHlsNotification",
-            ],
-            r => {
-                disableRedditElement.checked = !r.disableReddit
-                bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit
-                protocolElement.value = r.redditProtocol
-                redditFrontendElement.value = r.redditFrontend
-                enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings
-                changeFrontendsSettings(r.redditFrontend);
-                changeProtocolSettings(r.redditProtocol);
-
-                theme.value = r.redditTheme;
-                front_page.value = r.redditFrontPage;
-                layout.value = r.redditLayout;
-                wide.checked = r.redditWide;
-                post_sort.value = r.redditPostSort;
-                comment_sort.value = r.redditCommentSort;
-                show_nsfw.checked = r.redditShowNsfw;
-                autoplay_videos.checked = r.redditAutoplayVideos;
-                use_hls.checked = r.redditUseHls;
-                hide_hls_notification.checked = r.redditHideHlsNotification;
-            }
-        )
-
-        browser.storage.local.get("libredditLatency").then(r => {
-            commonHelper.processDefaultCustomInstances(
-                'libreddit',
-                'normal',
-                redditHelper,
-                document,
-                redditHelper.getLibredditNormalRedirectsChecks,
-                redditHelper.setLibredditNormalRedirectsChecks,
-                redditHelper.getLibredditNormalCustomRedirects,
-                redditHelper.setLibredditNormalCustomRedirects,
-                r.libredditLatency,
-            )
-        })
-
-        commonHelper.processDefaultCustomInstances(
-            'libreddit',
-            'tor',
-            redditHelper,
-            document,
-            redditHelper.getLibredditTorRedirectsChecks,
-            redditHelper.setLibredditTorRedirectsChecks,
-            redditHelper.getLibredditTorCustomRedirects,
-            redditHelper.setLibredditTorCustomRedirects
-        )
-
-        browser.storage.local.get("tedditLatency").then(r => {
-            commonHelper.processDefaultCustomInstances(
-                'teddit',
-                'normal',
-                redditHelper,
-                document,
-                redditHelper.getTedditNormalRedirectsChecks,
-                redditHelper.setTedditNormalRedirectsChecks,
-                redditHelper.getTedditNormalCustomRedirects,
-                redditHelper.setTedditNormalCustomRedirects,
-                r.tedditLatency,
-            );
-        })
-
-        commonHelper.processDefaultCustomInstances(
-            'teddit',
-            'tor',
-            redditHelper,
-            document,
-            redditHelper.getTedditTorRedirectsChecks,
-            redditHelper.setTedditTorRedirectsChecks,
-            redditHelper.getTedditTorCustomRedirects,
-            redditHelper.setTedditTorCustomRedirects
-        );
-
-    })
+    browser.storage.local.get(
+        [
+            "disableReddit",
+            "bypassWatchOnReddit",
+            "redditProtocol",
+            "redditFrontend",
+
+            "enableLibredditCustomSettings",
+
+            "redditTheme",
+            "redditFrontPage",
+            "redditLayout",
+            "redditWide",
+            "redditPostSort",
+            "redditCommentSort",
+            "redditShowNsfw",
+            "redditAutoplayVideos",
+            "redditUseHls",
+            "redditHideHlsNotification",
+        ],
+        r => {
+            disableRedditElement.checked = !r.disableReddit
+            bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit
+            protocolElement.value = r.redditProtocol
+            redditFrontendElement.value = r.redditFrontend
+            enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings
+            changeFrontendsSettings(r.redditFrontend);
+            changeProtocolSettings(r.redditProtocol);
+
+            theme.value = r.redditTheme;
+            front_page.value = r.redditFrontPage;
+            layout.value = r.redditLayout;
+            wide.checked = r.redditWide;
+            post_sort.value = r.redditPostSort;
+            comment_sort.value = r.redditCommentSort;
+            show_nsfw.checked = r.redditShowNsfw;
+            autoplay_videos.checked = r.redditAutoplayVideos;
+            use_hls.checked = r.redditUseHls;
+            hide_hls_notification.checked = r.redditHideHlsNotification;
+        }
+    )
+
+    commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document)
+    commonHelper.processDefaultCustomInstances('libreddit', 'tor', redditHelper, document)
+
+    commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
+    commonHelper.processDefaultCustomInstances('teddit', 'tor', redditHelper, document);
 }
 init();
 
@@ -203,17 +155,7 @@ latencyLibredditElement.addEventListener("click",
         commonHelper.testLatency(latencyLibredditLabel, redirects.libreddit.normal).then(r => {
             browser.storage.local.set({ libredditLatency: r });
             latencyLibredditLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'libreddit',
-                'normal',
-                redditHelper,
-                document,
-                redditHelper.getLibredditNormalRedirectsChecks,
-                redditHelper.setLibredditNormalRedirectsChecks,
-                redditHelper.getLibredditNormalCustomRedirects,
-                redditHelper.setLibredditNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document);
             latencyLibredditElement.removeEventListener("click", reloadWindow);
         });
     }
@@ -232,17 +174,7 @@ latencyTedditElement.addEventListener("click",
         commonHelper.testLatency(latencyTedditLabel, redirects.teddit.normal).then(r => {
             browser.storage.local.set({ tedditLatency: r });
             latencyTedditLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'teddit',
-                'normal',
-                redditHelper,
-                document,
-                redditHelper.getTedditNormalRedirectsChecks,
-                redditHelper.setTedditNormalRedirectsChecks,
-                redditHelper.getTedditNormalCustomRedirects,
-                redditHelper.setTedditNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
             latencyTedditElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/youtube/invidious.js b/src/pages/options/youtube/invidious.js
index af94c531..d314607e 100644
--- a/src/pages/options/youtube/invidious.js
+++ b/src/pages/options/youtube/invidious.js
@@ -34,21 +34,27 @@ let feed_menu1 = invidious.getElementsByClassName("feed_menu[1]")[0];
 volume.addEventListener("input", () => volumeValue.textContent = `${volume.value}%`);
 
 invidious.addEventListener("change", async _ => {
-    console.log('changed invidious settings');
-    let commentsList = youtubeHelper.getInvidiousComments();
-    commentsList[0] = comments0.value;
-    commentsList[1] = comments1.value;
-
-    let captionsList = youtubeHelper.getInvidiousCaptions();
-    captionsList[0] = captions0.value;
-    captionsList[1] = captions1.value;
-    captionsList[2] = captions2.value;
-
-    let feedMenuList = youtubeHelper.getInvidiousFeedMenuList();
-    feedMenuList[0] = feed_menu0.value;
-    feedMenuList[1] = feed_menu1.value;
-
-    await youtubeHelper.setYoutubeSettings({
+  browser.storage.local.get(
+    [
+      "invidiousComments",
+      "invidiousCaptions",
+      "invidiousFeedMenuList",
+    ],
+    async r => {
+      let commentsList = r.invidiousComments;
+      commentsList[0] = comments0.value;
+      commentsList[1] = comments1.value;
+
+      let captionsList = r.invidiousCaptions;
+      captionsList[0] = captions0.value;
+      captionsList[1] = captions1.value;
+      captionsList[2] = captions2.value;
+
+      let feedMenuList = r.invidiousFeedMenuList;
+      feedMenuList[0] = feed_menu0.value;
+      feedMenuList[1] = feed_menu1.value;
+
+      await browser.storage.local.set({
         invidiousAlwaysProxy: alwaysProxy.checked,
         youtubeAutoplay: autoplay.checked,
         invidiousPlayerStyle: playerStyle.value,
@@ -73,79 +79,85 @@ invidious.addEventListener("change", async _ => {
         invidiousThinMode: thin_mode.checked,
         invidiousDefaultHome: default_home.value,
         invidiousFeedMenuList: feedMenuList,
-    });
-    init();
+      });
+      init();
+    }
+  )
 });
 
 function init() {
-    youtubeHelper.init().then(() => {
-        videoLoop.checked = youtubeHelper.getInvidiousVideoLoop();
-
-        autoplay.checked = youtubeHelper.getAutoplay();
-
-        playerStyle.value = youtubeHelper.getInvidiousPlayerStyle();
-
-        continueAutoplay.checked = youtubeHelper.getInvidiousContinueAutoplay();
-        invidiousContinue.checked = youtubeHelper.getInvidiousContinue();
-        alwaysProxy.checked = youtubeHelper.getInvidiousAlwaysProxy();
-        youtubeListen.checked = youtubeHelper.getYoutubeListen();
-
-        speed.value = youtubeHelper.getInvidiousSpeed();
-        quality.value = youtubeHelper.getInvidiousQuality();
-        qualityDash.value = youtubeHelper.getInvidiousQualityDash();
-
-        volume.value = youtubeHelper.getVolume();
-        volumeValue.textContent = `${youtubeHelper.getVolume()}%`;
-
-        comments0.value = youtubeHelper.getInvidiousComments()[0];
-        comments1.value = youtubeHelper.getInvidiousComments()[1];
-
-        captions0.value = youtubeHelper.getInvidiousCaptions()[0];
-        captions1.value = youtubeHelper.getInvidiousCaptions()[1];
-        captions2.value = youtubeHelper.getInvidiousCaptions()[2];
-
-        relatedVideo.checked = youtubeHelper.getInvidiousRelatedVideos();
-        annotations.checked = youtubeHelper.getInvidiousAnnotations();
-        extendDesc.checked = youtubeHelper.getInvidiousExtendDesc();
-        vrMode.checked = youtubeHelper.getInvidiousVrMode();
-        savePlayerPos.checked = youtubeHelper.getInvidiousSavePlayerPos();
-
-        region.value = youtubeHelper.getInvidiousRegion();
-        darkMode.value = youtubeHelper.getInvidiousDarkMode();
-        thin_mode.checked = youtubeHelper.getInvidiousThinMode();
-        default_home.value = youtubeHelper.getInvidiousDefaultHome();
-
-        feed_menu0.value = youtubeHelper.getInvidiousFeedMenuList()[0];
-        feed_menu1.value = youtubeHelper.getInvidiousFeedMenuList()[1];
-
-        browser.storage.local.get("invidiousLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'invidious',
-            'normal',
-            youtubeHelper,
-            document,
-            youtubeHelper.getInvidiousNormalRedirectsChecks,
-            youtubeHelper.setInvidiousNormalRedirectsChecks,
-            youtubeHelper.getInvidiousNormalCustomRedirects,
-            youtubeHelper.setInvidiousNormalCustomRedirects,
-            r.invidiousLatency
-          );
-        })
-
-        commonHelper.processDefaultCustomInstances(
-            'invidious',
-            'tor',
-            youtubeHelper,
-            document,
-            youtubeHelper.getInvidiousTorRedirectsChecks,
-            youtubeHelper.setInvidiousTorRedirectsChecks,
-            youtubeHelper.getInvidiousTorCustomRedirects,
-            youtubeHelper.setInvidiousTorCustomRedirects
-        );
-    });
+  browser.storage.local.get(
+    [
+      "youtubeListen",
+      "youtubeVolume",
+      "youtubeAutoplay",
+      "invidiousQuality",
+      "invidiousAlwaysProxy",
+      "invidiousQuality",
+      "invidiousPlayerStyle",
+      "invidiousVideoLoop",
+      "invidiousContinueAutoplay",
+      "invidiousContinue",
+      "invidiousSpeed",
+      "invidiousQualityDash",
+      "invidiousComments",
+      "invidiousCaptions",
+      "invidiousRelatedVideos",
+      "invidiousAnnotations",
+      "invidiousExtendDesc",
+      "invidiousVrMode",
+      "invidiousSavePlayerPos",
+      "invidiousRegion",
+      "invidiousDarkMode",
+      "invidiousThinMode",
+      "invidiousDefaultHome",
+      "invidiousFeedMenuList",
+    ],
+    r => {
+      videoLoop.checked = r.invidiousVideoLoop;
+      autoplay.checked = r.youtubeAutoplay;
+      playerStyle.value = r.invidiousPlayerStyle;
+
+      continueAutoplay.checked = r.invidiousContinueAutoplay;
+      invidiousContinue.checked = r.invidiousContinue;
+      alwaysProxy.checked = r.invidiousAlwaysProxy;
+      youtubeListen.checked = r.youtubeListen;
+
+      speed.value = r.invidiousSpeed;
+      quality.value = r.invidiousQuality;
+      qualityDash.value = r.invidiousQualityDash;
+
+      volume.value = r.youtubeVolume;
+      volumeValue.textContent = `${r.youtubeVolume}%`;
+
+      comments0.value = r.invidiousComments[0];
+      comments1.value = r.invidiousComments[1];
+
+      captions0.value = r.invidiousCaptions[0];
+      captions1.value = r.invidiousCaptions[1];
+      captions2.value = r.invidiousCaptions[2];
+
+      relatedVideo.checked = r.invidiousRelatedVideos;
+      annotations.checked = r.invidiousAnnotations;
+      extendDesc.checked = r.invidiousExtendDesc;
+      vrMode.checked = r.invidiousVrMode;
+      savePlayerPos.checked = r.invidiousSavePlayerPos;
+
+      region.value = r.invidiousRegion;
+      darkMode.value = r.invidiousDarkMode;
+      thin_mode.checked = r.invidiousThinMode;
+      default_home.value = r.invidiousDefaultHome;
+
+      feed_menu0.value = r.invidiousFeedMenuList[0];
+      feed_menu1.value = r.invidiousFeedMenuList[1];
+
+      commonHelper.processDefaultCustomInstances('invidious', 'normal', youtubeHelper, document);
+      commonHelper.processDefaultCustomInstances('invidious', 'tor', youtubeHelper, document);
+    }
+  )
 }
 
-init()
+init();
 
 let latencyInvidiousElement = document.getElementById("latency-invidious");
 let latencyInvidiousLabel = document.getElementById("latency-invidious-label");
@@ -160,17 +172,7 @@ latencyInvidiousElement.addEventListener("click",
     commonHelper.testLatency(latencyInvidiousLabel, redirects.invidious.normal).then(r => {
       browser.storage.local.set({ invidiousLatency: r });
       latencyInvidiousLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances(
-        'invidious',
-        'normal',
-        youtubeHelper,
-        document,
-        youtubeHelper.getInvidiousNormalRedirectsChecks,
-        youtubeHelper.setInvidiousNormalRedirectsChecks,
-        youtubeHelper.getInvidiousNormalCustomRedirects,
-        youtubeHelper.setInvidiousNormalCustomRedirects,
-        r,
-      );
+      commonHelper.processDefaultCustomInstances('invidious', 'normal', youtubeHelper, document);
       latencyInvidiousElement.removeEventListener("click", reloadWindow);
     });
   }
diff --git a/src/pages/options/youtube/piped.js b/src/pages/options/youtube/piped.js
index a0bc45a7..6e30b8e6 100644
--- a/src/pages/options/youtube/piped.js
+++ b/src/pages/options/youtube/piped.js
@@ -44,7 +44,6 @@ function selectSkipModify(value, boolean) {
 }
 let selectSkip = [];
 piped.addEventListener("change", async () => {
-    console.log("changed piped settings");
     let pipedEnabledCodecsResult = [];
     for (const opt of pipedEnabledCodecs.options)
         if (opt.selected) pipedEnabledCodecsResult.push(opt.value);
@@ -59,7 +58,7 @@ piped.addEventListener("change", async () => {
     selectSkipModify('poi_highlight', pipedSelectedSkipPoiHighlight.checked);
     selectSkipModify('filler', pipedSelectedSkipFiller.checked);
 
-    await youtubeHelper.setYoutubeSettings({
+    await browser.storage.local.set({
         pipedQuality: pipedQuality.value,
         pipedBufferGoal: pipedBufferGoal.value,
         pipedRegion: pipedRegion.value,
@@ -80,89 +79,78 @@ piped.addEventListener("change", async () => {
     init();
 });
 
-function init() {
-    youtubeHelper.init().then(() => {
-        pipedSponsorblock.checked = youtubeHelper.getPipedSponsorblock();
-        pipedDdlTheme.value = youtubeHelper.getPipedDdlTheme();
-        selectSkip = youtubeHelper.getPipedSelectedSkip();
-        pipedSelectedSkipSponsor.checked = selectSkip.includes('sponsor');
-        pipedSelectedSkipIntro.checked = selectSkip.includes('intro');
-        pipedSelectedSkipOutro.checked = selectSkip.includes('outro');
-        pipedSelectedSkipPreview.checked = selectSkip.includes('preview');
-        autoplay.checked = youtubeHelper.getAutoplay();
-        pipedSelectedSkipInteraction.checked = selectSkip.includes('interaction');
-        pipedSelectedSkipSelfpromo.checked = selectSkip.includes('selfpromo');
-        pipedSelectedSkipMusicOfftopic.checked = selectSkip.includes('music_offtopic');
-        pipedSelectedSkipPoiHighlight.checked = selectSkip.includes('poi_highlight');
-        pipedSelectedSkipFiller.checked = selectSkip.includes('filler');
-        pipedListen.checked = youtubeHelper.getYoutubeListen();
-        pipedQuality.value = youtubeHelper.getPipedQuality();
-        pipedBufferGoal.value = youtubeHelper.getPipedBufferGoal();
-        pipedRegion.value = youtubeHelper.getPipedRegion();
-        pipedHomepage.value = youtubeHelper.getPipedHomepage();
-        pipedComments.checked = youtubeHelper.getPipedComments();
-        pipedMinimizeDescription.checked = youtubeHelper.getPipedMinimizeDescription();
-        pipedWatchHistory.checked = youtubeHelper.getPipedWatchHistory();
-        pipedEnabledCodecs.value = youtubeHelper.getPipedEnabledCodecs();
-        pipedDisableLBRY.checked = youtubeHelper.getPipedDisableLBRY();
-        pipedProxyLBRY.checked = youtubeHelper.getPipedProxyLBRY();
+async function init() {
+    await browser.storage.local.get(
+        [
+            "youtubeVolume",
+            "youtubeAutoplay",
+            "youtubeListen",
 
-        volume.value = youtubeHelper.getVolume();
-        volumeValue.textContent = `${youtubeHelper.getVolume()}%`;
+            "pipedBufferGoal",
+            "pipedComments",
+            "pipedDisableLBRY",
+            "pipedEnabledCodecs",
+            "pipedHomepage",
+            "pipedMinimizeDescription",
+            "pipedProxyLBRY",
+            "pipedQuality",
+            "pipedRegion",
+            "pipedSelectedSkip",
+            "pipedSponsorblock",
+            "pipedDdlTheme",
+            "pipedWatchHistory",
+        ],
+        r => {
+            pipedSponsorblock.checked = r.pipedSponsorblock;
+            pipedDdlTheme.value = r.pipedDdlTheme;
+            selectSkip = r.pipedSelectedSkip;
+            pipedSelectedSkipSponsor.checked = selectSkip.includes('sponsor');
+            pipedSelectedSkipIntro.checked = selectSkip.includes('intro');
+            pipedSelectedSkipOutro.checked = selectSkip.includes('outro');
+            pipedSelectedSkipPreview.checked = selectSkip.includes('preview');
+            autoplay.checked = r.youtubeAutoplay;
+            pipedSelectedSkipInteraction.checked = selectSkip.includes('interaction');
+            pipedSelectedSkipSelfpromo.checked = selectSkip.includes('selfpromo');
+            pipedSelectedSkipMusicOfftopic.checked = selectSkip.includes('music_offtopic');
+            pipedSelectedSkipPoiHighlight.checked = selectSkip.includes('poi_highlight');
+            pipedSelectedSkipFiller.checked = selectSkip.includes('filler');
+            pipedListen.checked = r.youtubeListen;
+            pipedQuality.value = r.pipedQuality;
+            pipedBufferGoal.value = r.pipedBufferGoal;
+            pipedRegion.value = r.pipedRegion;
+            pipedHomepage.value = r.pipedHomepage;
+            pipedComments.checked = r.pipedComments;
+            pipedMinimizeDescription.checked = r.pipedMinimizeDescription;
+            pipedWatchHistory.checked = r.pipedWatchHistory;
+            pipedEnabledCodecs.value = r.pipedEnabledCodecs;
+            pipedDisableLBRY.checked = r.pipedDisableLBRY;
+            pipedProxyLBRY.checked = r.pipedProxyLBRY;
 
-        browser.storage.local.get("pipedLatency").then(r => {
-            commonHelper.processDefaultCustomInstances(
-                'piped',
-                'normal',
-                youtubeHelper,
-                document,
-                youtubeHelper.getPipedNormalRedirectsChecks,
-                youtubeHelper.setPipedNormalRedirectsChecks,
-                youtubeHelper.getPipedNormalCustomRedirects,
-                youtubeHelper.setPipedNormalCustomRedirects,
-                r.pipedLatency,
-            );
-        });
+            volume.value = r.youtubeVolume;
+            volumeValue.textContent = `${r.youtubeVolume}%`;
 
-        commonHelper.processDefaultCustomInstances(
-            'piped',
-            'tor',
-            youtubeHelper,
-            document,
-            youtubeHelper.getPipedTorRedirectsChecks,
-            youtubeHelper.setPipedTorRedirectsChecks,
-            youtubeHelper.getPipedTorCustomRedirects,
-            youtubeHelper.setPipedTorCustomRedirects
-        );
-    });
+            commonHelper.processDefaultCustomInstances('piped', 'normal', youtubeHelper, document);
+            commonHelper.processDefaultCustomInstances('piped', 'tor', youtubeHelper, document);
+        }
+    );
 }
 init();
 
 let latencyPipedElement = document.getElementById("latency-piped");
 let latencyPipedLabel = document.getElementById("latency-piped-label");
 latencyPipedElement.addEventListener("click",
-  async () => {
-    let reloadWindow = () => location.reload();
-    latencyPipedElement.addEventListener("click", reloadWindow);
-    await youtubeHelper.init();
-    let redirects = youtubeHelper.getRedirects();
-    const oldHtml = latencyPipedLabel.innerHTML;
-    latencyPipedLabel.innerHTML = '...';
-    commonHelper.testLatency(latencyPipedLabel, redirects.piped.normal).then(r => {
-      browser.storage.local.set({ pipedLatency: r });
-      latencyPipedLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances(
-        'piped',
-        'normal',
-        youtubeHelper,
-        document,
-        youtubeHelper.getPipedNormalRedirectsChecks,
-        youtubeHelper.setPipedNormalRedirectsChecks,
-        youtubeHelper.getPipedNormalCustomRedirects,
-        youtubeHelper.setPipedNormalCustomRedirects,
-        r,
-      );
-      latencyPipedElement.removeEventListener("click", reloadWindow);
-    });
-  }
+    async () => {
+        let reloadWindow = () => location.reload();
+        latencyPipedElement.addEventListener("click", reloadWindow);
+        await youtubeHelper.init();
+        let redirects = youtubeHelper.getRedirects();
+        const oldHtml = latencyPipedLabel.innerHTML;
+        latencyPipedLabel.innerHTML = '...';
+        commonHelper.testLatency(latencyPipedLabel, redirects.piped.normal).then(r => {
+            browser.storage.local.set({ pipedLatency: r });
+            latencyPipedLabel.innerHTML = oldHtml;
+            commonHelper.processDefaultCustomInstances('piped', 'normal', youtubeHelper, document);
+            latencyPipedElement.removeEventListener("click", reloadWindow);
+        });
+    }
 );
diff --git a/src/pages/options/youtube/pipedMaterial.js b/src/pages/options/youtube/pipedMaterial.js
index bc31289a..7c647b18 100644
--- a/src/pages/options/youtube/pipedMaterial.js
+++ b/src/pages/options/youtube/pipedMaterial.js
@@ -44,7 +44,7 @@ pipedMaterialElement.addEventListener("change", async () => {
     selectSkipModify('selfpromo', selectedSkipSelfpromoElement.checked);
     selectSkipModify('music_offtopic', selectedSkipMusicOfftopicElement.checked);
 
-    await youtubeHelper.setYoutubeSettings({
+    await browser.storage.local.set({
         youtubeListen: listenElement.checked,
         pipedDisableLBRY: disableLBRYElement.checked,
         pipedProxyLBRY: proxyLBRYElement.checked,
@@ -68,77 +68,61 @@ pipedMaterialElement.addEventListener("change", async () => {
 });
 
 function init() {
-    youtubeHelper.init().then(() => {
-        autoplayElement.checked = youtubeHelper.getAutoplay();
-
-        listenElement.checked = youtubeHelper.getYoutubeListen();
-        disableLBRYElement.checked = youtubeHelper.getPipedDisableLBRY();
-        proxyLBRYElement.checked = youtubeHelper.getPipedProxyLBRY();
-        sponsorblockElement.checked = youtubeHelper.getPipedSponsorblock();
-        skipToLastPointElement.checked = youtubeHelper.getPipedMaterialSkipToLastPoint();
-        selectedSkipSponsorElement.checked = selectSkip.includes('sponsors');
-        selectedSkipIntroElement.checked = selectSkip.includes('intro');
-        selectedSkipOutroElement.checked = selectSkip.includes('outro');
-        selectedSkipPreviewElement.checked = selectSkip.includes('preview');
-        selectedSkipInteractionElement.checked = selectSkip.includes('interaction');
-        selectedSkipSelfpromoElement.checked = selectSkip.includes('selfpromo');
-        selectedSkipMusicOfftopicElement.checked = selectSkip.includes('music_offtopic');
-
-        volumeElement.value = youtubeHelper.getVolume();
-        volumeValueElement.textContent = `${youtubeHelper.getVolume()}%`;
-        browser.storage.local.get("pipedMaterialLatency").then(r => {
-            commonHelper.processDefaultCustomInstances(
-                'pipedMaterial',
-                'normal',
-                youtubeHelper,
-                document,
-                youtubeHelper.getPipedMaterialNormalRedirectsChecks,
-                youtubeHelper.setPipedMaterialNormalRedirectsChecks,
-                youtubeHelper.getPipedMaterialNormalCustomRedirects,
-                youtubeHelper.setPipedMaterialNormalCustomRedirects,
-                r.pipedMaterialLatency,
-            );
-        });
+    browser.storage.local.get(
+        [
+            "youtubeAutoplay",
+            "youtubeVolume",
+            "youtubeListen",
 
-        commonHelper.processDefaultCustomInstances(
-            'pipedMaterial',
-            'tor',
-            youtubeHelper,
-            document,
-            youtubeHelper.getPipedMaterialTorRedirectsChecks,
-            youtubeHelper.setPipedMaterialTorRedirectsChecks,
-            youtubeHelper.getPipedMaterialTorCustomRedirects,
-            youtubeHelper.setPipedMaterialTorCustomRedirects
-        );
-    });
+            "pipedDisableLBRY",
+            "pipedProxyLBRY",
+            "pipedSelectedSkip",
+            "pipedSponsorblock",
+
+            "pipedMaterialSkipToLastPoint",
+        ],
+        r => {
+            autoplayElement.checked = r.youtubeAutoplay;
+
+            listenElement.checked = r.youtubeListen;
+            disableLBRYElement.checked = r.pipedDisableLBRY;
+            proxyLBRYElement.checked = r.pipedProxyLBRY;
+            sponsorblockElement.checked = r.pipedSponsorblock;
+            skipToLastPointElement.checked = r.pipedMaterialSkipToLastPoint;
+
+            selectSkip = r.pipedSelectedSkip;
+            selectedSkipSponsorElement.checked = selectSkip.includes('sponsors');
+            selectedSkipIntroElement.checked = selectSkip.includes('intro');
+            selectedSkipOutroElement.checked = selectSkip.includes('outro');
+            selectedSkipPreviewElement.checked = selectSkip.includes('preview');
+            selectedSkipInteractionElement.checked = selectSkip.includes('interaction');
+            selectedSkipSelfpromoElement.checked = selectSkip.includes('selfpromo');
+            selectedSkipMusicOfftopicElement.checked = selectSkip.includes('music_offtopic');
+
+            volumeElement.value = r.youtubeVolume;
+            volumeValueElement.textContent = `${r.youtubeVolume}%`;
+
+            commonHelper.processDefaultCustomInstances('pipedMaterial', 'normal', youtubeHelper, document);
+            commonHelper.processDefaultCustomInstances('pipedMaterial', 'tor', youtubeHelper, document);
+        });
 }
 init();
 
 let latencyPipedMaterialElement = document.getElementById("latency-pipedMaterial");
 let latencyPipedMaterialLabel = document.getElementById("latency-pipedMaterial-label");
 latencyPipedMaterialElement.addEventListener("click",
-  async () => {
-    let reloadWindow = () => location.reload();
-    latencyPipedMaterialElement.addEventListener("click", reloadWindow);
-    await youtubeHelper.init();
-    let redirects = youtubeHelper.getRedirects();
-    const oldHtml = latencyPipedMaterialLabel.innerHTML;
-    latencyPipedMaterialLabel.innerHTML = '...';
-    commonHelper.testLatency(latencyPipedMaterialLabel, redirects.pipedMaterial.normal).then(r => {
-      browser.storage.local.set({ pipedMaterialLatency: r });
-      latencyPipedMaterialLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances(
-        'pipedMaterial',
-        'normal',
-        youtubeHelper,
-        document,
-        youtubeHelper.getPipedMaterialNormalRedirectsChecks,
-        youtubeHelper.setPipedMaterialNormalRedirectsChecks,
-        youtubeHelper.getPipedMaterialNormalCustomRedirects,
-        youtubeHelper.setPipedMaterialNormalCustomRedirects,
-        r,
-      );
-      latencyPipedMaterialElement.removeEventListener("click", reloadWindow);
-    });
-  }
+    async () => {
+        let reloadWindow = () => location.reload();
+        latencyPipedMaterialElement.addEventListener("click", reloadWindow);
+        await youtubeHelper.init();
+        let redirects = youtubeHelper.getRedirects();
+        const oldHtml = latencyPipedMaterialLabel.innerHTML;
+        latencyPipedMaterialLabel.innerHTML = '...';
+        commonHelper.testLatency(latencyPipedMaterialLabel, redirects.pipedMaterial.normal).then(r => {
+            browser.storage.local.set({ pipedMaterialLatency: r });
+            latencyPipedMaterialLabel.innerHTML = oldHtml;
+            commonHelper.processDefaultCustomInstances('pipedMaterial', 'normal', youtubeHelper, document);
+            latencyPipedMaterialElement.removeEventListener("click", reloadWindow);
+        });
+    }
 );
\ No newline at end of file
diff --git a/src/pages/options/youtube/youtube.js b/src/pages/options/youtube/youtube.js
index 5f915251..71ae4777 100644
--- a/src/pages/options/youtube/youtube.js
+++ b/src/pages/options/youtube/youtube.js
@@ -95,9 +95,8 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-
-document.addEventListener("change", () => {
-    youtubeHelper.setYoutubeSettings({
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
         disableYoutube: !disableYoutubeElement.checked,
         youtubeFrontend: youtubeFrontendElement.value,
         youtubeEmbedFrontend: youtubeEmbedFrontendElement.value,
@@ -111,24 +110,43 @@ document.addEventListener("change", () => {
     changeFrontendsSettings();
 })
 
-youtubeHelper.init().then(() => {
-    disableYoutubeElement.checked = !youtubeHelper.getDisable();
-    enableYoutubeCustomSettingsElement.checked = youtubeHelper.getEnableCustomSettings();
-    
-    OnlyEmbeddedVideoElement.value = youtubeHelper.getOnlyEmbeddedVideo();
-    bypassWatchOnYoutubeElement.checked = youtubeHelper.getBypassWatchOnYoutube();
-    
-    let frontend = youtubeHelper.getFrontend();
-    youtubeFrontendElement.value = frontend;
-    changeFrontendsSettings();
+browser.storage.local.get(
+    [
+        "disableYoutube",
+        "enableYoutubeCustomSettings",
+        "OnlyEmbeddedVideo",
+        "youtubeRedirects",
+        "youtubeFrontend",
+
+        "alwaysUsePreferred",
+        "youtubeEmbedFrontend",
+        "youtubeProtocol",
+        "bypassWatchOnYoutube",
+    ],
+    r => {
+        disableYoutubeElement.checked = !r.disableYoutube;
+        enableYoutubeCustomSettingsElement.checked = r.enableYoutubeCustomSettings;
+
+        OnlyEmbeddedVideoElement.value = r.OnlyEmbeddedVideo;
+        bypassWatchOnYoutubeElement.checked = r.bypassWatchOnYoutube;
+
+        let frontend = r.youtubeFrontend;
+        youtubeFrontendElement.value = frontend;
+        changeFrontendsSettings();
+
+        let protocol = r.youtubeProtocol;
+        protocolElement.value = protocol;
+        changeProtocolSettings(protocol);
+
+        let youtubeEmbedFrontend = r.youtubeEmbedFrontend;
+        youtubeEmbedFrontendElement.value = youtubeEmbedFrontend
+        if (frontend == "freetube" || frontend == "yatte") {
+            changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend)
+        };
+    }
+);
 
-    let protocol = youtubeHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
 
-    let youtubeEmbedFrontend = youtubeHelper.getYoutubeEmbedFrontend()
-    youtubeEmbedFrontendElement.value = youtubeEmbedFrontend
-    if (frontend == "freetube" || frontend == "yatte") {
-        changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend)
-    };
-});
+window.onblur = () => {
+    youtubeHelper.initInvidiousCookies();
+}
\ No newline at end of file