about summary refs log tree commit diff stats
path: root/src/pages/options
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-05-21 01:46:47 +0300
committerManeraKai <manerakai@protonmail.com>2022-05-21 01:46:47 +0300
commitebc9bf35a60325330c6403fbd26987a0f864422b (patch)
treeb1df80514c6dedb2384bad50468bc9cb8f57777c /src/pages/options
parentAlligned Buttons in Extension Popup (#267) (diff)
downloadlibredirect-ebc9bf35a60325330c6403fbd26987a0f864422b.zip
Cleaned code. Added shortcuts for the CopyRaw btn #268
Diffstat (limited to 'src/pages/options')
-rw-r--r--src/pages/options/general/general.js4
-rw-r--r--src/pages/options/imgur/imgur.js28
-rw-r--r--src/pages/options/init.js4
-rw-r--r--src/pages/options/instagram/instagram.js25
-rw-r--r--src/pages/options/lbry/lbry.js25
-rw-r--r--src/pages/options/maps/maps.js23
-rw-r--r--src/pages/options/medium/medium.js25
-rw-r--r--src/pages/options/peertube/peertube.js26
-rw-r--r--src/pages/options/reddit/reddit.js50
-rw-r--r--src/pages/options/search/search.js81
-rw-r--r--src/pages/options/sendTargets/sendTargets.js25
-rw-r--r--src/pages/options/tiktok/tiktok.js25
-rw-r--r--src/pages/options/translate/translate.js49
-rw-r--r--src/pages/options/twitter/twitter.html21
-rw-r--r--src/pages/options/twitter/twitter.js25
-rw-r--r--src/pages/options/twitter/twitter.pug3
-rw-r--r--src/pages/options/wikipedia/wikipedia.js27
-rw-r--r--src/pages/options/youtube/youtube.html3
-rw-r--r--src/pages/options/youtube/youtube.js74
-rw-r--r--src/pages/options/youtube/youtube.pug3
-rw-r--r--src/pages/options/youtubeMusic/youtubeMusic.js23
21 files changed, 85 insertions, 484 deletions
diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js
index bcf7a521..c8a600ce 100644
--- a/src/pages/options/general/general.js
+++ b/src/pages/options/general/general.js
@@ -1,7 +1,7 @@
 "use strict";
 window.browser = window.browser || window.chrome;
 
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 import generalHelper from "../../../assets/javascripts/helpers/general.js";
 
 
@@ -10,7 +10,7 @@ let updateInstancesElement = document.getElementById("update-instances");
 updateInstancesElement.addEventListener("click", () => {
   let oldHtml = updateInstancesElement.innerHTML
   updateInstancesElement.innerHTML = '...';
-  if (commonHelper.updateInstances()) {
+  if (utils.updateInstances()) {
     updateInstancesElement.innerHTML = 'Done!';
     new Promise(resolve => setTimeout(resolve, 1500)).then( // sleep 1500ms
       () => updateInstancesElement.innerHTML = oldHtml
diff --git a/src/pages/options/imgur/imgur.js b/src/pages/options/imgur/imgur.js
index 597d015b..0b1343c8 100644
--- a/src/pages/options/imgur/imgur.js
+++ b/src/pages/options/imgur/imgur.js
@@ -1,5 +1,5 @@
 import imgurHelper from "../../../assets/javascripts/helpers/imgur.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disableImgurElement = document.getElementById("disable-imgur");
 let protocolElement = document.getElementById("protocol")
@@ -45,26 +45,8 @@ browser.storage.local.get(
     }
 );
 
-commonHelper.processDefaultCustomInstances('imgur', 'rimgo', 'normal', document);
-commonHelper.processDefaultCustomInstances('imgur', 'rimgo', 'tor', document);
-commonHelper.processDefaultCustomInstances('imgur', 'rimgo', 'i2p', document);
+utils.processDefaultCustomInstances('imgur', 'rimgo', 'normal', document);
+utils.processDefaultCustomInstances('imgur', 'rimgo', 'tor', document);
+utils.processDefaultCustomInstances('imgur', 'rimgo', 'i2p', document);
 
-
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await imgurHelper.init();
-        let redirects = imgurHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.rimgo.normal).then(r => {
-            browser.storage.local.set({ rimgoLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('imgur', 'rimgo', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow)
-        });
-    }
-);
+utils.latency('imgur', 'rimgo', document, location)
\ No newline at end of file
diff --git a/src/pages/options/init.js b/src/pages/options/init.js
index 78ea11f3..b9ff4950 100644
--- a/src/pages/options/init.js
+++ b/src/pages/options/init.js
@@ -1,5 +1,5 @@
 window.browser = window.browser || window.chrome;
-import commonHelper from "../../assets/javascripts/helpers/common.js";
+import utils from "../../assets/javascripts/helpers/utils.js";
 
 function changeTheme() {
     browser.storage.local.get(
@@ -34,4 +34,4 @@ browser.storage.onChanged.addListener(changeTheme)
 
 window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", changeTheme)
 
-if (commonHelper.isRtl()) document.getElementsByTagName("body")[0].classList.add("rtl");
\ No newline at end of file
+if (utils.isRtl()) document.getElementsByTagName("body")[0].classList.add("rtl");
\ No newline at end of file
diff --git a/src/pages/options/instagram/instagram.js b/src/pages/options/instagram/instagram.js
index 39d11426..955aafc3 100644
--- a/src/pages/options/instagram/instagram.js
+++ b/src/pages/options/instagram/instagram.js
@@ -1,5 +1,5 @@
 import instagramHelper from "../../../assets/javascripts/helpers/instagram.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 const disable = document.getElementById("disable-bibliogram");
 const protocol = document.getElementById("protocol");
@@ -36,24 +36,7 @@ browser.storage.local.get(
         changeProtocolSettings();
     })
 
-commonHelper.processDefaultCustomInstances('instagram', 'bibliogram', 'normal', document);
-commonHelper.processDefaultCustomInstances('instagram', 'bibliogram', 'tor', document);
+utils.processDefaultCustomInstances('instagram', 'bibliogram', 'normal', document);
+utils.processDefaultCustomInstances('instagram', 'bibliogram', 'tor', document);
 
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await instagramHelper.init();
-        let redirects = instagramHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.bibliogram.normal).then(r => {
-            browser.storage.local.set({ bibliogramLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('instagram', 'bibliogram', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
\ No newline at end of file
+utils.latency('instagram', 'bibliogram', document, location)
\ No newline at end of file
diff --git a/src/pages/options/lbry/lbry.js b/src/pages/options/lbry/lbry.js
index fcac7bd8..92cc21a5 100644
--- a/src/pages/options/lbry/lbry.js
+++ b/src/pages/options/lbry/lbry.js
@@ -1,5 +1,5 @@
 import lbryHelper from "../../../assets/javascripts/helpers/lbry.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disable = document.getElementById("disable-lbry");
 let protocol = document.getElementById("protocol")
@@ -37,24 +37,7 @@ browser.storage.local.get(
     }
 )
 
-commonHelper.processDefaultCustomInstances('lbryTargets', 'librarian', 'normal', document);
-commonHelper.processDefaultCustomInstances('lbryTargets', 'librarian', 'tor', document);
+utils.processDefaultCustomInstances('lbryTargets', 'librarian', 'normal', document);
+utils.processDefaultCustomInstances('lbryTargets', 'librarian', 'tor', document);
 
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await lbryHelper.init();
-        let redirects = lbryHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.librarian.normal).then(r => {
-            browser.storage.local.set({ librarianLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('lbry', 'librarian', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
\ No newline at end of file
+utils.latency('lbryTargets', 'librarian', document, location)
\ No newline at end of file
diff --git a/src/pages/options/maps/maps.js b/src/pages/options/maps/maps.js
index 7e18def3..6db8c03e 100644
--- a/src/pages/options/maps/maps.js
+++ b/src/pages/options/maps/maps.js
@@ -1,5 +1,5 @@
 import mapsHelper from "../../../assets/javascripts/helpers/maps.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 const disable = document.getElementById("disable-osm");
 const frontend = document.getElementById("maps-frontend");
@@ -29,23 +29,4 @@ browser.storage.local.get(
         changeFrontendsSettings();
     }
 )
-commonHelper.processDefaultCustomInstances('maps', 'facil', 'normal', document);
-
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await mapsHelper.init();
-        let redirects = mapsHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.facil.normal).then(r => {
-            browser.storage.local.set({ facilLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('maps', 'facil', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
\ No newline at end of file
+utils.processDefaultCustomInstances('maps', 'facil', 'normal', document);
\ No newline at end of file
diff --git a/src/pages/options/medium/medium.js b/src/pages/options/medium/medium.js
index 786f8f17..9f00878d 100644
--- a/src/pages/options/medium/medium.js
+++ b/src/pages/options/medium/medium.js
@@ -1,5 +1,5 @@
 import mediumHelper from "../../../assets/javascripts/helpers/medium.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disable = document.getElementById("disable-medium");
 let protocol = document.getElementById("protocol")
@@ -15,8 +15,8 @@ browser.storage.local.get(
         changeProtocolSettings();
     }
 )
-commonHelper.processDefaultCustomInstances('medium', 'scribe', 'normal', document);
-commonHelper.processDefaultCustomInstances('medium', 'scribe', 'tor', document);
+utils.processDefaultCustomInstances('medium', 'scribe', 'normal', document);
+utils.processDefaultCustomInstances('medium', 'scribe', 'tor', document);
 
 document.addEventListener("change", async () => {
     await browser.storage.local.set({
@@ -39,21 +39,4 @@ function changeProtocolSettings() {
     }
 }
 
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await mediumHelper.init();
-        let redirects = mediumHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.scribe.normal).then(r => {
-            browser.storage.local.set({ scribeLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('medium', 'scribe', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
\ No newline at end of file
+utils.latency('medium', 'scribe', document, location)
\ No newline at end of file
diff --git a/src/pages/options/peertube/peertube.js b/src/pages/options/peertube/peertube.js
index 818e3fec..0bf16cc7 100644
--- a/src/pages/options/peertube/peertube.js
+++ b/src/pages/options/peertube/peertube.js
@@ -1,5 +1,5 @@
 import peertubeHelper from "../../../assets/javascripts/helpers/peertube.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disable = document.getElementById("disable-peertube");
 let protocol = document.getElementById("protocol")
@@ -14,8 +14,8 @@ browser.storage.local.get(
         changeProtocolSettings();
     }
 )
-commonHelper.processDefaultCustomInstances('peertube', 'simpleertube', 'normal', document);
-commonHelper.processDefaultCustomInstances('peertube', 'simpleertube', 'tor', document);
+utils.processDefaultCustomInstances('peertube', 'simpleertube', 'normal', document);
+utils.processDefaultCustomInstances('peertube', 'simpleertube', 'tor', document);
 
 document.addEventListener("change", async () => {
     await browser.storage.local.set({
@@ -37,22 +37,4 @@ function changeProtocolSettings() {
         torDiv.style.display = 'block';
     }
 }
-
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await peertubeHelper.init();
-        let redirects = peertubeHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.simpleertube.normal).then(r => {
-            browser.storage.local.set({ simpleertubeLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('peertube', 'simpleertube', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
\ No newline at end of file
+utils.latency('peertube', 'simpleertube', document, location)
\ No newline at end of file
diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js
index 52399649..3661f73f 100644
--- a/src/pages/options/reddit/reddit.js
+++ b/src/pages/options/reddit/reddit.js
@@ -1,5 +1,5 @@
 import redditHelper from "../../../assets/javascripts/helpers/reddit.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let libredditDivElement = document.getElementById("libreddit")
 let tedditDivElement = document.getElementById("teddit")
@@ -81,46 +81,10 @@ browser.storage.local.get(
     }
 )
 
-commonHelper.processDefaultCustomInstances('reddit', 'libreddit', 'normal', document);
-commonHelper.processDefaultCustomInstances('reddit', 'libreddit', 'tor', document);
-commonHelper.processDefaultCustomInstances('reddit', 'teddit', 'normal', document);
-commonHelper.processDefaultCustomInstances('reddit', 'teddit', 'tor', document);
+utils.processDefaultCustomInstances('reddit', 'libreddit', 'normal', document);
+utils.processDefaultCustomInstances('reddit', 'libreddit', 'tor', document);
+utils.processDefaultCustomInstances('reddit', 'teddit', 'normal', document);
+utils.processDefaultCustomInstances('reddit', 'teddit', 'tor', document);
 
-
-let latencyLibredditElement = document.getElementById("latency-libreddit");
-let latencyLibredditLabel = document.getElementById("latency-libreddit-label");
-latencyLibredditElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyLibredditElement.addEventListener("click", reloadWindow);
-        await redditHelper.init();
-        let redirects = redditHelper.getRedirects();
-        const oldHtml = latencyLibredditLabel.innerHTML;
-        latencyLibredditLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLibredditLabel, redirects.libreddit.normal).then(r => {
-            browser.storage.local.set({ libredditLatency: r });
-            latencyLibredditLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('reddit', 'libreddit', 'normal', document);
-            latencyLibredditElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
-
-let latencyTedditElement = document.getElementById("latency-teddit");
-let latencyTedditLabel = document.getElementById("latency-teddit-label");
-latencyTedditElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyTedditElement.addEventListener("click", reloadWindow);
-        await redditHelper.init();
-        let redirects = redditHelper.getRedirects();
-        const oldHtml = latencyTedditLabel.innerHTML;
-        latencyTedditLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyTedditLabel, redirects.teddit.normal).then(r => {
-            browser.storage.local.set({ tedditLatency: r });
-            latencyTedditLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('reddit', 'teddit', 'normal', document);
-            latencyTedditElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
\ No newline at end of file
+utils.latency('reddit', 'libreddit', document, location, true)
+utils.latency('reddit', 'teddit', document, location, true)
\ No newline at end of file
diff --git a/src/pages/options/search/search.js b/src/pages/options/search/search.js
index 47f27c0a..fb928055 100644
--- a/src/pages/options/search/search.js
+++ b/src/pages/options/search/search.js
@@ -1,5 +1,5 @@
 import searchHelper from "../../../assets/javascripts/helpers/search.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let searxDiv = document.getElementById("searx");
 let searxngDiv = document.getElementById("searxng");
@@ -127,69 +127,16 @@ function changeProtocolSettings() {
   }
 }
 
-commonHelper.processDefaultCustomInstances('search', 'searx', 'normal', document);
-commonHelper.processDefaultCustomInstances('search', 'searx', 'tor', document);
-commonHelper.processDefaultCustomInstances('search', 'searx', 'i2p', document);
-commonHelper.processDefaultCustomInstances('search', 'searxng', 'normal', document);
-commonHelper.processDefaultCustomInstances('search', 'searxng', 'tor', document);
-commonHelper.processDefaultCustomInstances('search', 'searxng', 'i2p', document);
-commonHelper.processDefaultCustomInstances('search', 'whoogle', 'normal', document);
-commonHelper.processDefaultCustomInstances('search', 'whoogle', 'tor', document);
-commonHelper.processDefaultCustomInstances('search', 'whoogle', 'i2p', document);
-
-let latencySearxElement = document.getElementById("latency-searx");
-let latencySearxLabel = document.getElementById("latency-searx-label");
-latencySearxElement.addEventListener("click",
-  async () => {
-    let reloadWindow = () => location.reload();
-    latencySearxElement.addEventListener("click", reloadWindow);
-    await searchHelper.init();
-    let redirects = searchHelper.getRedirects();
-    const oldHtml = latencySearxLabel.innerHTML;
-    latencySearxLabel.innerHTML = '...';
-    commonHelper.testLatency(latencySearxLabel, redirects.searx.normal).then(r => {
-      browser.storage.local.set({ searxLatency: r });
-      latencySearxLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances('search', 'searx', 'normal', document);
-      latencySearxElement.removeEventListener("click", reloadWindow);
-    });
-  }
-);
-
-let latencySearxngElement = document.getElementById("latency-searxng");
-let latencySearxngLabel = document.getElementById("latency-searxng-label");
-latencySearxngElement.addEventListener("click",
-  async () => {
-    let reloadWindow = () => location.reload();
-    latencySearxngElement.addEventListener("click", reloadWindow);
-    await searchHelper.init();
-    let redirects = searchHelper.getRedirects();
-    const oldHtml = latencySearxngLabel.innerHTML;
-    latencySearxngLabel.innerHTML = '...';
-    commonHelper.testLatency(latencySearxngLabel, redirects.searxng.normal).then(r => {
-      browser.storage.local.set({ searxngLatency: r });
-      latencySearxngLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances('search', 'searxng', 'normal', document);
-      latencySearxngElement.removeEventListener("click", reloadWindow);
-    });
-  }
-);
-
-let latencyWhoogleElement = document.getElementById("latency-whoogle");
-let latencyWhoogleLabel = document.getElementById("latency-whoogle-label");
-latencyWhoogleElement.addEventListener("click",
-  async () => {
-    let reloadWindow = () => location.reload();
-    latencyWhoogleElement.addEventListener("click", reloadWindow);
-    await searchHelper.init();
-    let redirects = searchHelper.getRedirects();
-    const oldHtml = latencyWhoogleLabel.innerHTML;
-    latencyWhoogleLabel.innerHTML = '...';
-    commonHelper.testLatency(latencyWhoogleLabel, redirects.whoogle.normal).then(r => {
-      browser.storage.local.set({ whoogleLatency: r });
-      latencyWhoogleLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances('search', 'whoogle', 'normal', document);
-      latencyWhoogleElement.removeEventListener("click", reloadWindow);
-    });
-  }
-);
\ No newline at end of file
+utils.processDefaultCustomInstances('search', 'searx', 'normal', document);
+utils.processDefaultCustomInstances('search', 'searx', 'tor', document);
+utils.processDefaultCustomInstances('search', 'searx', 'i2p', document);
+utils.processDefaultCustomInstances('search', 'searxng', 'normal', document);
+utils.processDefaultCustomInstances('search', 'searxng', 'tor', document);
+utils.processDefaultCustomInstances('search', 'searxng', 'i2p', document);
+utils.processDefaultCustomInstances('search', 'whoogle', 'normal', document);
+utils.processDefaultCustomInstances('search', 'whoogle', 'tor', document);
+utils.processDefaultCustomInstances('search', 'whoogle', 'i2p', document);
+
+utils.latency('search', 'searx', document, location, true)
+utils.latency('search', 'searxng', document, location, true)
+utils.latency('search', 'whoogle', document, location, true)
diff --git a/src/pages/options/sendTargets/sendTargets.js b/src/pages/options/sendTargets/sendTargets.js
index 057ae864..0cb1da09 100644
--- a/src/pages/options/sendTargets/sendTargets.js
+++ b/src/pages/options/sendTargets/sendTargets.js
@@ -1,5 +1,5 @@
 import sendTargetsHelper from "../../../assets/javascripts/helpers/sendTargets.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disable = document.getElementById("disable-sendTargets");
 let protocol = document.getElementById("protocol")
@@ -37,24 +37,7 @@ function changeProtocolSettings() {
     }
 }
 
-commonHelper.processDefaultCustomInstances('sendTargets', 'send', 'normal', document);
-commonHelper.processDefaultCustomInstances('sendTargets', 'send', 'tor', document);
+utils.processDefaultCustomInstances('sendTargets', 'send', 'normal', document);
+utils.processDefaultCustomInstances('sendTargets', 'send', 'tor', document);
 
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await sendTargetsHelper.init();
-        let redirects = sendTargetsHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.send.normal).then(r => {
-            browser.storage.local.set({ sendLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('sendTargets', 'send', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow)
-        });
-    }
-);
\ No newline at end of file
+utils.latency('sendTargets', 'send', document, location)
\ No newline at end of file
diff --git a/src/pages/options/tiktok/tiktok.js b/src/pages/options/tiktok/tiktok.js
index 8055fc95..5a57b46c 100644
--- a/src/pages/options/tiktok/tiktok.js
+++ b/src/pages/options/tiktok/tiktok.js
@@ -1,5 +1,5 @@
 import tiktokHelper from "../../../assets/javascripts/helpers/tiktok.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disable = document.getElementById("disable-tiktok");
 let protocol = document.getElementById("protocol")
@@ -49,24 +49,7 @@ function changeProtocolSettings() {
     }
 }
 
-commonHelper.processDefaultCustomInstances('tiktok', 'proxiTok', 'normal', document);
-commonHelper.processDefaultCustomInstances('tiktok', 'proxiTok', 'tor', document);
+utils.processDefaultCustomInstances('tiktok', 'proxiTok', 'normal', document);
+utils.processDefaultCustomInstances('tiktok', 'proxiTok', 'tor', document);
 
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await tiktokHelper.init();
-        let redirects = tiktokHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.proxiTok.normal).then(r => {
-            browser.storage.local.set({ proxiTokLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('tiktok', 'proxiTok', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow)
-        });
-    }
-);
\ No newline at end of file
+utils.latency('tiktok', 'proxiTok', document, location)
\ No newline at end of file
diff --git a/src/pages/options/translate/translate.js b/src/pages/options/translate/translate.js
index 55a2d74f..998ebc32 100644
--- a/src/pages/options/translate/translate.js
+++ b/src/pages/options/translate/translate.js
@@ -1,5 +1,5 @@
 import translateHelper from "../../../assets/javascripts/helpers/translate/translate.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disable = document.getElementById("disable-simplyTranslate");
 let simplyTranslateDiv = document.getElementById("simplyTranslate");
@@ -66,45 +66,10 @@ document.addEventListener("change", () => {
 })
 
 
-commonHelper.processDefaultCustomInstances('translate', 'simplyTranslate', 'normal', document)
-commonHelper.processDefaultCustomInstances('translate', 'simplyTranslate', 'tor', document);
-commonHelper.processDefaultCustomInstances('translate', 'lingva', 'normal', document);
-commonHelper.processDefaultCustomInstances('translate', 'lingva', 'tor', document);
+utils.processDefaultCustomInstances('translate', 'simplyTranslate', 'normal', document)
+utils.processDefaultCustomInstances('translate', 'simplyTranslate', 'tor', document);
+utils.processDefaultCustomInstances('translate', 'lingva', 'normal', document);
+utils.processDefaultCustomInstances('translate', 'lingva', 'tor', document);
 
-let latencySimplyTranslateElement = document.getElementById("latency-simplyTranslate");
-let latencySimplyTranslateLabel = document.getElementById("latency-simplyTranslate-label");
-latencySimplyTranslateElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencySimplyTranslateElement.addEventListener("click", reloadWindow);
-        await translateHelper.init();
-        let redirects = translateHelper.getRedirects();
-        const oldHtml = latencySimplyTranslateLabel.innerHTML;
-        latencySimplyTranslateLabel.innerHTML = '...';
-        commonHelper.testLatency(latencySimplyTranslateLabel, redirects.simplyTranslate.normal).then(r => {
-            browser.storage.local.set({ simplyTranslateLatency: r });
-            latencySimplyTranslateLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('translate', 'simplyTranslate', 'normal', document)
-            latencySimplyTranslateElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
-
-let latencyLingvaElement = document.getElementById("latency-lingva");
-let latencyLingvaLabel = document.getElementById("latency-lingva-label");
-latencyLingvaElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyLingvaElement.addEventListener("click", reloadWindow);
-        await translateHelper.init();
-        let redirects = translateHelper.getRedirects();
-        const oldHtml = latencyLingvaLabel.innerHTML;
-        latencyLingvaLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLingvaLabel, redirects.lingva.normal).then(r => {
-            browser.storage.local.set({ lingvaLatency: r });
-            latencyLingvaLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('translate', 'lingva', 'normal', document);
-            latencyLingvaElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
\ No newline at end of file
+utils.latency('translate', 'simplyTranslate', document, location, true)
+utils.latency('translate', 'lingva', document, location, true)
\ No newline at end of file
diff --git a/src/pages/options/twitter/twitter.html b/src/pages/options/twitter/twitter.html
index 2bd204aa..95e0a0bf 100644
--- a/src/pages/options/twitter/twitter.html
+++ b/src/pages/options/twitter/twitter.html
@@ -117,27 +117,6 @@
                 </form>
                 <div class="checklist custom-checklist"></div>
       </div>
-      <div class="i2p">
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
-                </div>
-                <div class="checklist"></div>
-                <hr>
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
-                </div>
-                <form class="custom-instance-form">
-                  <div class="some-block option-block">
-                    <input class="custom-instance" placeholder="https://nitter.i2p" type="url">
-                    <button class="add add-instance" type="submit">
-                      <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
-                        <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
-                      </svg>
-                    </button>
-                  </div>
-                </form>
-                <div class="checklist custom-checklist"></div>
-      </div>
     </div>
   </section>
   <script type="module" src="../init.js"></script>
diff --git a/src/pages/options/twitter/twitter.js b/src/pages/options/twitter/twitter.js
index c23007f9..72c3d926 100644
--- a/src/pages/options/twitter/twitter.js
+++ b/src/pages/options/twitter/twitter.js
@@ -1,5 +1,5 @@
 import twitterHelper from "../../../assets/javascripts/helpers/twitter.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disable = document.getElementById("disable-nitter");
 let protocol = document.getElementById("protocol");
@@ -47,24 +47,7 @@ function changeProtocolSettings() {
     }
 }
 
-commonHelper.processDefaultCustomInstances('twitter', 'nitter', 'normal', document);
-commonHelper.processDefaultCustomInstances('twitter', 'nitter', 'tor', document)
+utils.processDefaultCustomInstances('twitter', 'nitter', 'normal', document);
+utils.processDefaultCustomInstances('twitter', 'nitter', 'tor', document)
 
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await twitterHelper.init();
-        let redirects = twitterHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.nitter.normal).then(r => {
-            browser.storage.local.set({ nitterLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('twitter', 'nitter', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow)
-        });
-    }
-);
\ No newline at end of file
+utils.latency('twitter', 'nitter', document, location)
\ No newline at end of file
diff --git a/src/pages/options/twitter/twitter.pug b/src/pages/options/twitter/twitter.pug
index af7b7f19..517a2727 100644
--- a/src/pages/options/twitter/twitter.pug
+++ b/src/pages/options/twitter/twitter.pug
@@ -28,9 +28,6 @@ body.option(dir="auto")
             .tor
                 include ../../widgets/instances.pug
                 +instances('https://nitter.onion')
-            .i2p
-                include ../../widgets/instances.pug
-                +instances('https://nitter.i2p')
 
 
     script(type="module" src="../init.js")
diff --git a/src/pages/options/wikipedia/wikipedia.js b/src/pages/options/wikipedia/wikipedia.js
index 8d9af92a..c421c18a 100644
--- a/src/pages/options/wikipedia/wikipedia.js
+++ b/src/pages/options/wikipedia/wikipedia.js
@@ -1,5 +1,5 @@
 import wikipediaHelper from "../../../assets/javascripts/helpers/wikipedia.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disableWikipediaElement = document.getElementById("disable-wikipedia");
 let protocolElement = document.getElementById("protocol");
@@ -44,27 +44,10 @@ function changeProtocolSettings(protocol) {
         i2pDiv.style.display = 'block';
     }
 }
-commonHelper.processDefaultCustomInstances('wikipedia' ,'wikiless', 'normal', document);
-commonHelper.processDefaultCustomInstances('wikipedia' ,'wikiless', 'tor',  document);
-commonHelper.processDefaultCustomInstances('wikipedia' ,'wikiless', 'i2p',  document);
+utils.processDefaultCustomInstances('wikipedia', 'wikiless', 'normal', document);
+utils.processDefaultCustomInstances('wikipedia', 'wikiless', 'tor', document);
+utils.processDefaultCustomInstances('wikipedia', 'wikiless', 'i2p', document);
 
 window.onblur = wikipediaHelper.initWikilessCookies;
 
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await wikipediaHelper.init();
-        let redirects = wikipediaHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.wikiless.normal).then(r => {
-            browser.storage.local.set({ wikilessLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('wikipedia' ,'wikiless', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow)
-        });
-    }
-);
\ No newline at end of file
+utils.latency('wikipedia', 'wikiless', document, location)
\ No newline at end of file
diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html
index 6dfb9f7f..20d13bd3 100644
--- a/src/pages/options/youtube/youtube.html
+++ b/src/pages/options/youtube/youtube.html
@@ -256,7 +256,4 @@
   </section>
   <script type="module" src="../init.js"></script>
   <script type="module" src="./youtube.js"></script>
-  <script type="module" src="./invidious.js"></script>
-  <script type="module" src="./piped.js"></script>
-  <script type="module" src="./pipedMaterial.js"></script>
 </body>
\ No newline at end of file
diff --git a/src/pages/options/youtube/youtube.js b/src/pages/options/youtube/youtube.js
index ce42abdc..4f987849 100644
--- a/src/pages/options/youtube/youtube.js
+++ b/src/pages/options/youtube/youtube.js
@@ -1,5 +1,5 @@
 import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disableYoutube = document.getElementById("disable-invidious");
 let youtubeFrontend = document.getElementById("youtube-frontend");
@@ -149,67 +149,13 @@ invidiousForm.addEventListener('submit', async event => {
 //     youtubeHelper.applyPipedLocalStorage(url);
 // });
 
-commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document);
-commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'tor', document);
-commonHelper.processDefaultCustomInstances('youtube', 'pipedMaterial', 'normal', document);
-commonHelper.processDefaultCustomInstances('youtube', 'pipedMaterial', 'tor', document);
-commonHelper.processDefaultCustomInstances('youtube', 'piped', 'normal', document);
-commonHelper.processDefaultCustomInstances('youtube', 'piped', 'tor', document);
-
-
-let latencyInvidiousElement = document.getElementById("latency-invidious");
-let latencyInvidiousLabel = document.getElementById("latency-invidious-label");
-latencyInvidiousElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyInvidiousElement.addEventListener("click", reloadWindow);
-        await youtubeHelper.init();
-        let redirects = youtubeHelper.getRedirects();
-        const oldHtml = latencyInvidiousLabel.innerHTML;
-        latencyInvidiousLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyInvidiousLabel, redirects.invidious.normal).then(r => {
-            browser.storage.local.set({ invidiousLatency: r });
-            latencyInvidiousLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document);
-            latencyInvidiousElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
+utils.processDefaultCustomInstances('youtube', 'invidious', 'normal', document);
+utils.processDefaultCustomInstances('youtube', 'invidious', 'tor', document);
+utils.processDefaultCustomInstances('youtube', 'pipedMaterial', 'normal', document);
+utils.processDefaultCustomInstances('youtube', 'pipedMaterial', 'tor', document);
+utils.processDefaultCustomInstances('youtube', 'piped', 'normal', document);
+utils.processDefaultCustomInstances('youtube', 'piped', 'tor', document);
 
-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('youtube', 'pipedMaterial', 'normal', document);
-            latencyPipedMaterialElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
-
-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('youtube', 'piped', 'normal', document);
-            latencyPipedElement.removeEventListener("click", reloadWindow);
-        });
-    }
-);
+utils.latency('youtube', 'invidious', document, location, true)
+utils.latency('youtube', 'piped', document, location, true)
+utils.latency('youtube', 'pipedMaterial', document, location, true)
diff --git a/src/pages/options/youtube/youtube.pug b/src/pages/options/youtube/youtube.pug
index 45c7f173..39235b0c 100644
--- a/src/pages/options/youtube/youtube.pug
+++ b/src/pages/options/youtube/youtube.pug
@@ -78,6 +78,3 @@ body.option(dir="auto")
 
     script(type="module" src="../init.js")
     script(type="module" src="./youtube.js")
-    script(type="module" src="./invidious.js")
-    script(type="module" src="./piped.js")
-    script(type="module" src="./pipedMaterial.js")
diff --git a/src/pages/options/youtubeMusic/youtubeMusic.js b/src/pages/options/youtubeMusic/youtubeMusic.js
index 518c651d..167630eb 100644
--- a/src/pages/options/youtubeMusic/youtubeMusic.js
+++ b/src/pages/options/youtubeMusic/youtubeMusic.js
@@ -1,5 +1,5 @@
 import youtubeMusicHelper from "../../../assets/javascripts/helpers/youtubeMusic.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
+import utils from "../../../assets/javascripts/helpers/utils.js";
 
 let disableYoutubeMusicElement = document.getElementById("disable-beatbump");
 
@@ -18,23 +18,6 @@ document.addEventListener("change", async () => {
     })
 })
 
-commonHelper.processDefaultCustomInstances('youtubeMusic', 'beatbump', 'normal', document);
+utils.processDefaultCustomInstances('youtubeMusic', 'beatbump', 'normal', document);
 
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await youtubeMusicHelper.init();
-        let redirects = youtubeMusicHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.beatbump.normal).then(r => {
-            browser.storage.local.set({ beatbumpLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('youtubeMusic', 'beatbump', 'normal', document);
-            latencyElement.removeEventListener("click", reloadWindow)
-        });
-    }
-);
\ No newline at end of file
+utils.latency('youtubeMusic', 'beatbump', document, location)
\ No newline at end of file