about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/assets/javascripts/general.js6
-rw-r--r--src/assets/javascripts/imdb.js7
-rw-r--r--src/assets/javascripts/imgur.js9
-rw-r--r--src/assets/javascripts/instagram.js7
-rw-r--r--src/assets/javascripts/lbry.js7
-rw-r--r--src/assets/javascripts/medium.js9
-rw-r--r--src/assets/javascripts/peertube.js7
-rw-r--r--src/assets/javascripts/quora.js9
-rw-r--r--src/assets/javascripts/reddit.js7
-rw-r--r--src/assets/javascripts/reuters.js4
-rw-r--r--src/assets/javascripts/search.js7
-rw-r--r--src/assets/javascripts/sendTargets.js7
-rw-r--r--src/assets/javascripts/tiktok.js51
-rw-r--r--src/assets/javascripts/translate/translate.js8
-rw-r--r--src/assets/javascripts/twitter.js7
-rw-r--r--src/assets/javascripts/wikipedia.js7
-rw-r--r--src/assets/javascripts/youtube/youtube.js11
-rw-r--r--src/assets/javascripts/youtubeMusic.js4
-rw-r--r--src/pages/background/background.js2
-rw-r--r--src/pages/options/index.html2
-rw-r--r--src/pages/options/widgets/general.pug2
-rw-r--r--src/pages/popup/popup.html270
-rw-r--r--src/pages/popup/popup.js320
-rw-r--r--src/pages/popup/popup.pug223
24 files changed, 649 insertions, 344 deletions
diff --git a/src/assets/javascripts/general.js b/src/assets/javascripts/general.js
index 4e8b7a7d..f778d876 100644
--- a/src/assets/javascripts/general.js
+++ b/src/assets/javascripts/general.js
@@ -35,11 +35,9 @@ async function initDefaults() {
                 "youtube",
                 "twitter",
                 "instagram",
-                "tikTok",
+                "tiktok",
                 "imgur",
                 "reddit",
-                "search",
-                "medium",
                 "quora",
                 "translate",
                 "maps",
@@ -55,7 +53,7 @@ const allPopupFrontends = [
     "youtubeMusic",
     "twitter",
     "instagram",
-    "tikTok",
+    "tiktok",
     "imgur",
     "reddit",
     "search",
diff --git a/src/assets/javascripts/imdb.js b/src/assets/javascripts/imdb.js
index a388660b..0061b7e3 100644
--- a/src/assets/javascripts/imdb.js
+++ b/src/assets/javascripts/imdb.js
@@ -65,8 +65,8 @@ function init() {
 init();
 browser.storage.onChanged.addListener(init)
 
-function redirect(url, type, initiator) {
-    if (disableImdb) return;
+function redirect(url, type, initiator, disableOverride) {
+    if (disableImdb && !disableOverride) return;
     if (url.pathname == "/") return;
     if (type != "main_frame") return;
     const all = [
@@ -101,9 +101,10 @@ function reverse(url) {
     })
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
     return new Promise(async resolve => {
         await init();
+        if (disableImdb && !disableOverride) { resolve(); return; }
         let protocolHost = utils.protocolHost(url);
         const all = [
             ...imdbRedirects.libremdb.tor,
diff --git a/src/assets/javascripts/imgur.js b/src/assets/javascripts/imgur.js
index 90dda136..8cf54265 100644
--- a/src/assets/javascripts/imgur.js
+++ b/src/assets/javascripts/imgur.js
@@ -103,9 +103,9 @@ function all() {
     ];
 }
 
-function redirect(url, type, initiator) {
-    if (disableImgur) return;
-    if (url.pathname == "/") return;
+function redirect(url, type, initiator, disableOverride) {
+    if (disableImgur && !disableOverride) return;
+    if (url.pathname == "/" && !disableOverride) return;
     if (!["main_frame", "sub_frame", "xmlhttprequest", "other", "image", "media",].includes(type)) return;
     if (initiator && (all().includes(initiator.origin) || targets.test(initiator.host))) return;
     if (!targets.test(url.href)) return;
@@ -130,9 +130,10 @@ function reverse(url) {
     })
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
     return new Promise(async resolve => {
         await init();
+        if (disableImgur && !disableOverride) { resolve(); return; }
         let protocolHost = utils.protocolHost(url);
         if (!all().includes(protocolHost)) { resolve(); return; }
         let instancesList;
diff --git a/src/assets/javascripts/instagram.js b/src/assets/javascripts/instagram.js
index e1542a18..7fa69200 100644
--- a/src/assets/javascripts/instagram.js
+++ b/src/assets/javascripts/instagram.js
@@ -73,8 +73,8 @@ function all() {
   ]
 }
 
-function redirect(url, type, initiator) {
-  if (disableInstagram) return;
+function redirect(url, type, initiator, disableOverride) {
+  if (disableInstagram && !disableOverride) return;
   if (initiator && all().includes(initiator.origin)) return 'BYPASSTAB';
   if (!targets.includes(url.host)) return;
   if (!["main_frame", "sub_frame", "xmlhttprequest", "other", "image", "media"].includes(type)) return;
@@ -109,9 +109,10 @@ function reverse(url) {
   })
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
   return new Promise(async resolve => {
     await init();
+    if (disableInstagram && !disableOverride) { resolve(); return; }
     let protocolHost = utils.protocolHost(url);
     if (!all().includes(protocolHost)) { resolve(); return; }
 
diff --git a/src/assets/javascripts/lbry.js b/src/assets/javascripts/lbry.js
index 281ab2e5..77a8e4ec 100644
--- a/src/assets/javascripts/lbry.js
+++ b/src/assets/javascripts/lbry.js
@@ -85,9 +85,10 @@ function all() {
     ];
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
     return new Promise(async resolve => {
         await init();
+        if (disableLbryTargets && !disableOverride) { resolve(); return; }
         const protocolHost = utils.protocolHost(url);
         if (!all().includes(protocolHost)) { resolve(); return; }
 
@@ -104,8 +105,8 @@ function switchInstance(url) {
     })
 }
 
-function redirect(url, type, initiator) {
-    if (disableLbryTargets) return;
+function redirect(url, type, initiator, disableOverride) {
+    if (disableLbryTargets && !disableOverride) return;
     if (initiator && (all().includes(initiator.origin) || targets.includes(initiator.host))) return;
     if (!targets.includes(url.host)) return;
     if (type != "main_frame") return;
diff --git a/src/assets/javascripts/medium.js b/src/assets/javascripts/medium.js
index 59c700ca..5d688b23 100644
--- a/src/assets/javascripts/medium.js
+++ b/src/assets/javascripts/medium.js
@@ -87,9 +87,9 @@ function init() {
 init();
 browser.storage.onChanged.addListener(init)
 
-function redirect(url, type, initiator) {
-  if (disableMedium) return;
-  if (url.pathname == "/") return;
+function redirect(url, type, initiator, disableOverride) {
+  if (disableMedium && !disableOverride) return;
+  if (url.pathname == "/" && !disableOverride) return;
   if (type != "main_frame" && "sub_frame" && "xmlhttprequest" && "other") return;
   if (initiator && (
     [
@@ -111,9 +111,10 @@ function redirect(url, type, initiator) {
   return `${randomInstance}${url.pathname}${url.search}`;
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
   return new Promise(async resolve => {
     await init();
+    if (disableMedium && !disableOverride) { resolve(); return; }
     let protocolHost = utils.protocolHost(url);
     const all = [
       ...mediumRedirects.scribe.tor,
diff --git a/src/assets/javascripts/peertube.js b/src/assets/javascripts/peertube.js
index 900048f7..8b7414e8 100644
--- a/src/assets/javascripts/peertube.js
+++ b/src/assets/javascripts/peertube.js
@@ -82,8 +82,8 @@ function all() {
     ];
 }
 
-function redirect(url, type, initiator) {
-    if (disablePeertubeTargets) return;
+function redirect(url, type, initiator, disableOverride) {
+    if (disablePeertubeTargets && !disableOverride) return;
     if (initiator && (all().includes(initiator.origin) || peerTubeTargets.includes(initiator.host))) return;
     let protocolHost = utils.protocolHost(url);
     if (!peerTubeTargets.includes(protocolHost)) return;
@@ -99,9 +99,10 @@ function redirect(url, type, initiator) {
     return `${randomInstance}/${url.host}${url.pathname}${url.search}`;
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
     return new Promise(async resolve => {
         await init();
+        if (disablePeertubeTargets && !disableOverride) { resolve(); return; }
         const protocolHost = utils.protocolHost(url);
         if (!all().includes(protocolHost)) { resolve(); return; }
 
diff --git a/src/assets/javascripts/quora.js b/src/assets/javascripts/quora.js
index f83e35e6..5f33f08d 100644
--- a/src/assets/javascripts/quora.js
+++ b/src/assets/javascripts/quora.js
@@ -65,9 +65,9 @@ function init() {
 init();
 browser.storage.onChanged.addListener(init)
 
-function redirect(url, type, initiator) {
-    if (disableQuora) return;
-    if (url.pathname == "/") return;
+function redirect(url, type, initiator, disableOverride) {
+    if (disableQuora && !disableOverride) return;
+    if (url.pathname == "/" && !disableOverride) return;
     if (type != "main_frame") return;
     const all = [
         ...quoraRedirects.quetre.normal,
@@ -101,9 +101,10 @@ function reverse(url) {
     })
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
     return new Promise(async resolve => {
         await init();
+        if (disableQuora && !disableOverride) { resolve(); return; }
         let protocolHost = utils.protocolHost(url);
         const all = [
             ...quoraRedirects.quetre.tor,
diff --git a/src/assets/javascripts/reddit.js b/src/assets/javascripts/reddit.js
index dceaed36..e1f910c3 100644
--- a/src/assets/javascripts/reddit.js
+++ b/src/assets/javascripts/reddit.js
@@ -222,8 +222,8 @@ function all() {
 // redd.it/t5379n
 // https://v.redd.it/z08avb339n801/DASH_1_2_M
 // https://i.redd.it/bfkhs659tzk81.jpg
-function redirect(url, type, initiator) {
-  if (disableReddit) return;
+function redirect(url, type, initiator, disableOverride) {
+  if (disableReddit && !disableOverride) return;
   if (!targets.some(rx => rx.test(url.href))) return;
   if (initiator && all().includes(initiator.origin)) return 'BYPASSTAB';
   if (!["main_frame", "xmlhttprequest", "other", "image", "media"].includes(type)) return;
@@ -287,9 +287,10 @@ function redirect(url, type, initiator) {
   return `${randomInstance}${url.pathname}${url.search}`;
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
   return new Promise(async resolve => {
     await init();
+    if (disableReddit && !disableOverride) { resolve(); return; }
     const protocolHost = utils.protocolHost(url);
     if (!all().includes(protocolHost)) { resolve(); return; }
     let instancesList;
diff --git a/src/assets/javascripts/reuters.js b/src/assets/javascripts/reuters.js
index 1af81495..5f215518 100644
--- a/src/assets/javascripts/reuters.js
+++ b/src/assets/javascripts/reuters.js
@@ -53,8 +53,8 @@ function init() {
 init();
 browser.storage.onChanged.addListener(init)
 
-function redirect(url, type, initiator) {
-    if (disableReuters) return;
+function redirect(url, type, initiator, disableOverride) {
+    if (disableReuters && !disableOverride) return;
     if (type != "main_frame") return;
     const all = [
         ...reutersRedirects.neuters.normal,
diff --git a/src/assets/javascripts/search.js b/src/assets/javascripts/search.js
index 2b51f868..5a91ff89 100644
--- a/src/assets/javascripts/search.js
+++ b/src/assets/javascripts/search.js
@@ -273,8 +273,8 @@ function pasteSearxngCookies() {
 }
 
 
-function redirect(url) {
-  if (disableSearch) return;
+function redirect(url, disableOverride) {
+  if (disableSearch && !disableOverride) return;
   if (!targets.some(rx => rx.test(url.href))) return;
   if (url.searchParams.has('tbm')) return;
   if (url.hostname.includes('google') && !url.searchParams.has('q') && url.pathname != '/') return;
@@ -327,9 +327,10 @@ function redirect(url) {
   return `${randomInstance}${path}${searchQuery}`;
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
   return new Promise(async resolve => {
     await init();
+    if (disableSearch && !disableOverride) { resolve(); return; }
     let protocolHost = utils.protocolHost(url);
     if (![
       ...searchRedirects.searx.normal,
diff --git a/src/assets/javascripts/sendTargets.js b/src/assets/javascripts/sendTargets.js
index dcc17b21..f507e552 100644
--- a/src/assets/javascripts/sendTargets.js
+++ b/src/assets/javascripts/sendTargets.js
@@ -77,9 +77,10 @@ function all() {
     ];
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
     return new Promise(async resolve => {
         await init();
+        if (disableSendTarget && !disableOverride) { resolve(); return; }
         const protocolHost = utils.protocolHost(url);
         if (!all().includes(protocolHost)) { resolve(); return; }
         if (url.pathname != '/') { resolve(); return; }
@@ -97,8 +98,8 @@ function switchInstance(url) {
     })
 }
 
-function redirect(url, type, initiator) {
-    if (disableSendTarget) return;
+function redirect(url, type, initiator, disableOverride) {
+    if (disableSendTarget && !disableOverride) return;
     if (type != "main_frame") return;
     if (initiator && (all().includes(initiator.origin) || targets.includes(initiator.host))) return;
     if (!targets.some(rx => rx.test(url.href))) return;
diff --git a/src/assets/javascripts/tiktok.js b/src/assets/javascripts/tiktok.js
index f8436a12..75e710d0 100644
--- a/src/assets/javascripts/tiktok.js
+++ b/src/assets/javascripts/tiktok.js
@@ -102,8 +102,8 @@ browser.storage.onChanged.addListener(init)
 
 // https://www.tiktok.com/@keysikaspol/video/7061265241887345946
 // https://www.tiktok.com/@keysikaspol
-function redirect(url, type, initiator) {
-    if (disableTiktok) return;
+function redirect(url, type, initiator, disableOverride) {
+    if (disableTiktok && !disableOverride) return;
     if (type != "main_frame") return;
     const all = [
         ...tiktokRedirects.proxiTok.normal,
@@ -137,31 +137,32 @@ function reverse(url) {
     })
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
     return new Promise(async resolve => {
-      await init();
-      let protocolHost = utils.protocolHost(url);
-      const all = [
-        ...tiktokRedirects.proxiTok.tor,
-        ...tiktokRedirects.proxiTok.normal,
-  
-        ...proxiTokNormalCustomRedirects,
-        ...proxiTokTorCustomRedirects,
-      ];
-      if (!all.includes(protocolHost)) { resolve(); return; }
-
-      let instancesList;
-      if (tiktokProtocol == 'normal') instancesList = [...proxiTokNormalCustomRedirects, ...proxiTokNormalRedirectsChecks];
-      else if (tiktokProtocol == 'tor') instancesList = [...proxiTokTorCustomRedirects, ...proxiTokTorRedirectsChecks];
-  
-      const i = instancesList.indexOf(protocolHost);
-      if (i > -1) instancesList.splice(i, 1);
-      if (instancesList.length === 0) { resolve(); return; }
-  
-      const randomInstance = utils.getRandomInstance(instancesList);
-      resolve(`${randomInstance}${url.pathname}${url.search}`);
+        await init();
+        if (disableTiktok && !disableOverride) { resolve(); return; }
+        let protocolHost = utils.protocolHost(url);
+        const all = [
+            ...tiktokRedirects.proxiTok.tor,
+            ...tiktokRedirects.proxiTok.normal,
+
+            ...proxiTokNormalCustomRedirects,
+            ...proxiTokTorCustomRedirects,
+        ];
+        if (!all.includes(protocolHost)) { resolve(); return; }
+
+        let instancesList;
+        if (tiktokProtocol == 'normal') instancesList = [...proxiTokNormalCustomRedirects, ...proxiTokNormalRedirectsChecks];
+        else if (tiktokProtocol == 'tor') instancesList = [...proxiTokTorCustomRedirects, ...proxiTokTorRedirectsChecks];
+
+        const i = instancesList.indexOf(protocolHost);
+        if (i > -1) instancesList.splice(i, 1);
+        if (instancesList.length === 0) { resolve(); return; }
+
+        const randomInstance = utils.getRandomInstance(instancesList);
+        resolve(`${randomInstance}${url.pathname}${url.search}`);
     })
-  }
+}
 
 function initDefaults() {
     return new Promise(async resolve => {
diff --git a/src/assets/javascripts/translate/translate.js b/src/assets/javascripts/translate/translate.js
index 79fab753..62cd8334 100644
--- a/src/assets/javascripts/translate/translate.js
+++ b/src/assets/javascripts/translate/translate.js
@@ -179,8 +179,8 @@ function pasteSimplyTranslateCookies() {
   )
 }
 
-function redirect(url) {
-  if (translateDisable) return;
+function redirect(url, disableOverride) {
+  if (translateDisable && !disableOverride) return;
   if (!targets.some(rx => rx.test(url.href))) return;
 
   if (translateFrontend == 'simplyTranslate') {
@@ -213,10 +213,10 @@ function redirect(url) {
   }
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
   return new Promise(async resolve => {
     await init();
-    if (translateDisable) { resolve(); return; }
+    if (translateDisable && !disableOverride) { resolve(); return; }
     const protocolHost = utils.protocolHost(url);
     if (![
       ...translateRedirects.simplyTranslate.normal,
diff --git a/src/assets/javascripts/twitter.js b/src/assets/javascripts/twitter.js
index 28689aa5..bd674aba 100644
--- a/src/assets/javascripts/twitter.js
+++ b/src/assets/javascripts/twitter.js
@@ -82,8 +82,8 @@ function all() {
   ];
 }
 
-function redirect(url, type, initiator) {
-  if (disableTwitter) return;
+function redirect(url, type, initiator, disableOverride) {
+  if (disableTwitter && !disableOverride) return;
   if (!targets.some(rx => rx.test(url.href))) return;
   if (url.pathname.split("/").includes("home")) return;
   if (initiator && all().includes(initiator.origin)) return 'BYPASSTAB';
@@ -119,9 +119,10 @@ function reverse(url) {
   })
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
   return new Promise(async resolve => {
     await init();
+    if (disableTwitter && !disableOverride) { resolve(); return; }
     const protocolHost = utils.protocolHost(url);
     if (!all().includes(protocolHost)) { resolve(); return; }
     let instancesList;
diff --git a/src/assets/javascripts/wikipedia.js b/src/assets/javascripts/wikipedia.js
index d211656b..629219b8 100644
--- a/src/assets/javascripts/wikipedia.js
+++ b/src/assets/javascripts/wikipedia.js
@@ -110,8 +110,8 @@ function pasteWikilessCookies() {
   })
 }
 
-function redirect(url) {
-  if (disableWikipedia) return;
+function redirect(url, disableOverride) {
+  if (disableWikipedia && !disableOverride) return;
   if (!targets.test(url.href)) return;
 
   let GETArguments = [];
@@ -146,9 +146,10 @@ function redirect(url) {
   return link;
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
   return new Promise(async resolve => {
     await init();
+    if (disableWikipedia && !disableOverride) { resolve(); return; }
     const protocolHost = utils.protocolHost(url);
     const wikipediaList = [
       ...wikipediaRedirects.wikiless.normal,
diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js
index a1916032..965b94bf 100644
--- a/src/assets/javascripts/youtube/youtube.js
+++ b/src/assets/javascripts/youtube/youtube.js
@@ -149,8 +149,8 @@ function all() {
   ];
 }
 
-function redirect(url, details, initiator) {
-  if (disableYoutube) return;
+function redirect(url, type, initiator, disableOverride) {
+  if (disableYoutube && !disableOverride) return;
   if (!targets.some(rx => rx.test(url.href))) return;
   if (initiator && all().includes(initiator.origin)) return 'BYPASSTAB';
 
@@ -165,8 +165,8 @@ function redirect(url, details, initiator) {
   const isFrontendPiped = youtubeEmbedFrontend == 'piped';
   const isFrontendPipedMaterial = youtubeEmbedFrontend == 'pipedMaterial';
 
-  const main_frame = details.type === "main_frame";
-  const sub_frame = details.type === "sub_frame";
+  const main_frame = type === "main_frame";
+  const sub_frame = type === "sub_frame";
 
   if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) return; // Don't redirect YouTube Player API.
   if (onlyEmbeddedVideo == 'onlyEmbedded' && main_frame) return;
@@ -212,9 +212,10 @@ function reverse(url) {
   })
 }
 
-function switchInstance(url) {
+function switchInstance(url, disableOverride) {
   return new Promise(async resolve => {
     await init();
+    if (disableYoutube && !disableOverride) { resolve(); return; }
     const protocolHost = utils.protocolHost(url);
     if (!all().includes(protocolHost)) { resolve(); return; }
 
diff --git a/src/assets/javascripts/youtubeMusic.js b/src/assets/javascripts/youtubeMusic.js
index 8d007e39..68e839ad 100644
--- a/src/assets/javascripts/youtubeMusic.js
+++ b/src/assets/javascripts/youtubeMusic.js
@@ -66,8 +66,8 @@ https://beatbump.ml/release?id=MPREb_QygdC0wEoLe
 
 https://music.youtube.com/watch?v=R6gSMSYKhKU&list=OLAK5uy_n-9HVh3cryV2gREZM9Sc0JwEKYjjfi0dU
 */
-function redirect(url) {
-    if (disableYoutubeMusic) return;
+function redirect(url, disableOverride) {
+    if (disableYoutubeMusic && !disableOverride) return;
     if (!targets.some(rx => rx.test(url.href))) return;
 
     let instancesList = [...beatbumpNormalRedirectsChecks, ...beatbumpNormalCustomRedirects];
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 8f2bf2ba..832d6533 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -99,7 +99,7 @@ browser.webRequest.onBeforeRequest.addListener(
     catch { return null; }
 
     let newUrl = youtubeMusicHelper.redirect(url, details.type)
-    if (!newUrl) newUrl = youtubeHelper.redirect(url, details, initiator)
+    if (!newUrl) newUrl = youtubeHelper.redirect(url, details.type, initiator)
     if (!newUrl) newUrl = twitterHelper.redirect(url, details.type, initiator);
     if (!newUrl) newUrl = instagramHelper.redirect(url, details.type, initiator);
     if (!newUrl) newUrl = mapsHelper.redirect(url, initiator);
diff --git a/src/pages/options/index.html b/src/pages/options/index.html
index 2463c361..f438ad02 100644
--- a/src/pages/options/index.html
+++ b/src/pages/options/index.html
@@ -150,7 +150,7 @@
             <div> <img src="../../../assets/images/tiktok-icon.png">
               <x data-localise="__MSG_tiktok__">TikTok</x>
             </div>
-            <input id="tikTok" type="checkbox">
+            <input id="tiktok" type="checkbox">
           </div>
           <div> 
             <div> <img src="../../../assets/images/imgur-icon.png">
diff --git a/src/pages/options/widgets/general.pug b/src/pages/options/widgets/general.pug
index fe144a57..920d2b54 100644
--- a/src/pages/options/widgets/general.pug
+++ b/src/pages/options/widgets/general.pug
@@ -100,7 +100,7 @@ section#general_page.option-block
             div 
                 img(src="../../../assets/images/tiktok-icon.png")
                 x(data-localise="__MSG_tiktok__") TikTok
-            input#tikTok(type="checkbox")
+            input#tiktok(type="checkbox")
 
         div 
             div 
diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html
index 91fd113b..2b6c5658 100644
--- a/src/pages/popup/popup.html
+++ b/src/pages/popup/popup.html
@@ -7,94 +7,188 @@
     <link href="./style.css" rel="stylesheet">
   </head>
   <body dir="auto">
-    <div class="some-block" id="youtube"><a class="title" href="https://youtube.com"><img src="../../assets/images/youtube-icon.png">
-        <h4 data-localise="__MSG_youtube__">YouTube</h4></a>
-      <input id="disable-youtube" type="checkbox">
-    </div>
-    <div class="some-block" id="youtubeMusic"><a class="title" href="https://music.youtube.com"><img src="../../assets/images/youtube-music-icon.png">
-        <h4 data-localise="__MSG_ytmusic__">YT Music</h4></a>
-      <input id="disable-youtubeMusic" type="checkbox">
-    </div>
-    <div class="some-block" id="twitter"><a class="title" href="https://twitter.com"><img src="../../assets/images/twitter-icon.png">
-        <h4 data-localise="__MSG_twitter__">Twitter</h4></a>
-      <input id="disable-nitter" type="checkbox">
-    </div>
-    <div class="some-block" id="instagram"><a class="title" href="https://instagram.com"><img src="../../assets/images/instagram-icon.png">
-        <h4 data-localise="__MSG_instagram__">Instagram</h4></a>
-      <input id="disable-bibliogram" type="checkbox">
-    </div>
-    <div class="some-block" id="tikTok"><a class="title" href="https://tiktok.com"><img src="../../assets/images/tiktok-icon.png">
-        <h4 data-localise="__MSG_tiktok__">TikTok</h4></a>
-      <input id="disable-tiktok" type="checkbox">
-    </div>
-    <div class="some-block" id="imgur"><a class="title" href="https://imgur.com"><img src="../../assets/images/imgur-icon.png">
-        <h4 data-localise="__MSG_imgur__">Imgur</h4></a>
-      <input id="disable-imgur" type="checkbox">
-    </div>
-    <div class="some-block" id="reddit"><a class="title" href="https://reddit.com"><img src="../../assets/images/reddit-icon.png">
-        <h4 data-localise="__MSG_reddit__">Reddit</h4></a>
-      <input id="disable-reddit" type="checkbox">
-    </div>
-    <div class="some-block" id="wikipedia"><a class="title" href="https://wikipedia.com"><img src="../../assets/images/wikipedia-icon.svg">
-        <h4 data-localise="__MSG_wikipedia__">Wikipedia</h4></a>
-      <input id="disable-wikipedia" type="checkbox">
-    </div>
-    <div class="some-block" id="medium"><a class="title" href="https://medium.com">
-        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
-          <circle cx="500" cy="500" r="500"></circle>
-          <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
-          <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
-        </svg>
-        <h4 data-localise="__MSG_medium__">Medium</h4></a>
-      <input id="disable-medium" type="checkbox">
-    </div>
-    <div class="some-block" id="quora"><a class="title" href="https://quora.com"><img src="../../assets/images/quora.png">
-        <h4 data-localise="__MSG_quora__">Quora</h4></a>
-      <input id="disable-quora" type="checkbox">
-    </div>
-    <div class="some-block" id="imdb"><a class="title" href="https://imdb.com"><img src="../../assets/images/imdb.svg">
-        <h4 data-localise="__MSG_imdb__">IMDb</h4></a>
-      <input id="disable-imdb" type="checkbox">
-    </div>
-    <div class="some-block" id="reuters"><a class="title" href="https://reuters.com"><img src="../../assets/images/reuters.svg">
-        <h4 data-localise="__MSG_reuters__">Reuters</h4></a>
-      <input id="disable-reuters" type="checkbox">
-    </div>
-    <div class="some-block" id="peertube"><a class="title" href="https://search.joinpeertube.org"><img src="../../assets/images/peertube-icon.svg">
-        <h4 data-localise="__MSG_peertube__">PeerTube</h4></a>
-      <input id="disable-peertube" type="checkbox">
-    </div>
-    <div class="some-block" id="lbry"><a class="title" href="https://odysee.com/"><img src="../../assets/images/lbry-icon.png">
-        <h4 data-localise="__MSG_lbry__">LBRY</h4></a>
-      <input id="disable-lbry" type="checkbox">
-    </div>
-    <div class="some-block" id="search"><a class="title" href="https://search.libredirect.invalid">
-        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
-          <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
-        </svg>
-        <h4 data-localise="__MSG_search__">Search</h4></a>
-      <input id="disable-search" type="checkbox">
-    </div>
-    <div class="some-block" id="translate"><a class="title" href="https://translate.google.com">
-        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-          <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
-        </svg>
-        <h4 data-localise="__MSG_translate__">Translate</h4></a>
-      <input id="disable-simplyTranslate" type="checkbox">
-    </div>
-    <div class="some-block" id="maps"><a class="title" href="https://www.openstreetmap.org">
-        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-          <path d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"></path>
-        </svg>
-        <h4 data-localise="__MSG_maps__">Maps</h4></a>
-      <input id="disable-osm" type="checkbox">
-    </div>
-    <div class="some-block" id="sendTargets"><a class="title" href="https://send.libredirect.invalid">
-        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-          <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
-        </svg>
-        <h4 data-localise="__MSG_sendFiles__">Send Files</h4></a>
-      <input id="disable-sendTargets" type="checkbox">
+    <div class="current_site">
+      <div class="youtube some-block"><a class="title" href="https://youtube.com"><img src="../../assets/images/youtube-icon.png"/>
+          <h4 data-localise="__MSG_youtube__">YouTube</h4></a>
+        <input class="disable-youtube" type="checkbox"/>
+      </div>
+      <div class="youtubeMusic some-block"><a class="title" href="https://music.youtube.com"><img src="../../assets/images/youtube-music-icon.png"/>
+          <h4 data-localise="__MSG_ytmusic__">YT Music</h4></a>
+        <input class="disable-youtubeMusic" type="checkbox"/>
+      </div>
+      <div class="twitter some-block"><a class="title" href="https://twitter.com"><img src="../../assets/images/twitter-icon.png"/>
+          <h4 data-localise="__MSG_twitter__">Twitter</h4></a>
+        <input class="disable-nitter" type="checkbox"/>
+      </div>
+      <div class="instagram some-block"><a class="title" href="https://instagram.com"><img src="../../assets/images/instagram-icon.png"/>
+          <h4 data-localise="__MSG_instagram__">Instagram</h4></a>
+        <input class="disable-bibliogram" type="checkbox"/>
+      </div>
+      <div class="tiktok some-block"><a class="title" href="https://tiktok.com"><img src="../../assets/images/tiktok-icon.png"/>
+          <h4 data-localise="__MSG_tiktok__">TikTok</h4></a>
+        <input class="disable-tiktok" type="checkbox"/>
+      </div>
+      <div class="imgur some-block"><a class="title" href="https://imgur.com"><img src="../../assets/images/imgur-icon.png"/>
+          <h4 data-localise="__MSG_imgur__">Imgur</h4></a>
+        <input class="disable-imgur" type="checkbox"/>
+      </div>
+      <div class="reddit some-block"><a class="title" href="https://reddit.com"><img src="../../assets/images/reddit-icon.png"/>
+          <h4 data-localise="__MSG_reddit__">Reddit</h4></a>
+        <input class="disable-reddit" type="checkbox"/>
+      </div>
+      <div class="wikipedia some-block"><a class="title" href="https://wikipedia.com"><img src="../../assets/images/wikipedia-icon.svg"/>
+          <h4 data-localise="__MSG_wikipedia__">Wikipedia</h4></a>
+        <input class="disable-wikipedia" type="checkbox"/>
+      </div>
+      <div class="medium some-block"><a class="title" href="https://medium.com">
+          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
+            <circle cx="500" cy="500" r="500"></circle>
+            <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
+            <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
+          </svg>
+          <h4 data-localise="__MSG_medium__">Medium</h4></a>
+        <input class="disable-medium" type="checkbox"/>
+      </div>
+      <div class="quora some-block"><a class="title" href="https://quora.com"><img src="../../assets/images/quora.png"/>
+          <h4 data-localise="__MSG_quora__">Quora</h4></a>
+        <input class="disable-quora" type="checkbox"/>
+      </div>
+      <div class="imdb some-block"><a class="title" href="https://imdb.com"><img src="../../assets/images/imdb.svg"/>
+          <h4 data-localise="__MSG_imdb__">IMDb</h4></a>
+        <input class="disable-imdb" type="checkbox"/>
+      </div>
+      <div class="reuters some-block"><a class="title" href="https://reuters.com"><img src="../../assets/images/reuters.svg"/>
+          <h4 data-localise="__MSG_reuters__">Reuters</h4></a>
+        <input class="disable-reuters" type="checkbox"/>
+      </div>
+      <div class="peertube some-block"><a class="title" href="https://search.joinpeertube.org"><img src="../../assets/images/peertube-icon.svg"/>
+          <h4 data-localise="__MSG_peertube__">PeerTube</h4></a>
+        <input class="disable-peertube" type="checkbox"/>
+      </div>
+      <div class="lbry some-block"><a class="title" href="https://odysee.com/"><img src="../../assets/images/lbry-icon.png"/>
+          <h4 data-localise="__MSG_lbry__">LBRY</h4></a>
+        <input class="disable-lbry" type="checkbox"/>
+      </div>
+      <div class="search some-block"><a class="title" href="https://search.libredirect.invalid">
+          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
+            <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
+          </svg>
+          <h4 data-localise="__MSG_search__">Search</h4></a>
+        <input class="disable-search" type="checkbox"/>
+      </div>
+      <div class="translate some-block"><a class="title" href="https://translate.google.com">
+          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+            <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
+          </svg>
+          <h4 data-localise="__MSG_translate__">Translate</h4></a>
+        <input class="disable-translate" type="checkbox"/>
+      </div>
+      <div class="maps some-block"><a class="title" href="https://www.openstreetmap.org">
+          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+            <path d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"></path>
+          </svg>
+          <h4 data-localise="__MSG_maps__">Maps</h4></a>
+        <input class="disable-osm" type="checkbox"/>
+      </div>
+      <div class="sendTargets some-block"><a class="title" href="https://send.libredirect.invalid">
+          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+            <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
+          </svg>
+          <h4 data-localise="__MSG_sendFiles__">Send Files</h4></a>
+        <input class="disable-sendTargets" type="checkbox"/>
+      </div>
+      <hr>
+    </div>
+    <div class="all_sites">
+      <div class="youtube some-block"><a class="title" href="https://youtube.com"><img src="../../assets/images/youtube-icon.png"/>
+          <h4 data-localise="__MSG_youtube__">YouTube</h4></a>
+        <input class="disable-youtube" type="checkbox"/>
+      </div>
+      <div class="youtubeMusic some-block"><a class="title" href="https://music.youtube.com"><img src="../../assets/images/youtube-music-icon.png"/>
+          <h4 data-localise="__MSG_ytmusic__">YT Music</h4></a>
+        <input class="disable-youtubeMusic" type="checkbox"/>
+      </div>
+      <div class="twitter some-block"><a class="title" href="https://twitter.com"><img src="../../assets/images/twitter-icon.png"/>
+          <h4 data-localise="__MSG_twitter__">Twitter</h4></a>
+        <input class="disable-nitter" type="checkbox"/>
+      </div>
+      <div class="instagram some-block"><a class="title" href="https://instagram.com"><img src="../../assets/images/instagram-icon.png"/>
+          <h4 data-localise="__MSG_instagram__">Instagram</h4></a>
+        <input class="disable-bibliogram" type="checkbox"/>
+      </div>
+      <div class="tiktok some-block"><a class="title" href="https://tiktok.com"><img src="../../assets/images/tiktok-icon.png"/>
+          <h4 data-localise="__MSG_tiktok__">TikTok</h4></a>
+        <input class="disable-tiktok" type="checkbox"/>
+      </div>
+      <div class="imgur some-block"><a class="title" href="https://imgur.com"><img src="../../assets/images/imgur-icon.png"/>
+          <h4 data-localise="__MSG_imgur__">Imgur</h4></a>
+        <input class="disable-imgur" type="checkbox"/>
+      </div>
+      <div class="reddit some-block"><a class="title" href="https://reddit.com"><img src="../../assets/images/reddit-icon.png"/>
+          <h4 data-localise="__MSG_reddit__">Reddit</h4></a>
+        <input class="disable-reddit" type="checkbox"/>
+      </div>
+      <div class="wikipedia some-block"><a class="title" href="https://wikipedia.com"><img src="../../assets/images/wikipedia-icon.svg"/>
+          <h4 data-localise="__MSG_wikipedia__">Wikipedia</h4></a>
+        <input class="disable-wikipedia" type="checkbox"/>
+      </div>
+      <div class="medium some-block"><a class="title" href="https://medium.com">
+          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
+            <circle cx="500" cy="500" r="500"></circle>
+            <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
+            <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
+          </svg>
+          <h4 data-localise="__MSG_medium__">Medium</h4></a>
+        <input class="disable-medium" type="checkbox"/>
+      </div>
+      <div class="quora some-block"><a class="title" href="https://quora.com"><img src="../../assets/images/quora.png"/>
+          <h4 data-localise="__MSG_quora__">Quora</h4></a>
+        <input class="disable-quora" type="checkbox"/>
+      </div>
+      <div class="imdb some-block"><a class="title" href="https://imdb.com"><img src="../../assets/images/imdb.svg"/>
+          <h4 data-localise="__MSG_imdb__">IMDb</h4></a>
+        <input class="disable-imdb" type="checkbox"/>
+      </div>
+      <div class="reuters some-block"><a class="title" href="https://reuters.com"><img src="../../assets/images/reuters.svg"/>
+          <h4 data-localise="__MSG_reuters__">Reuters</h4></a>
+        <input class="disable-reuters" type="checkbox"/>
+      </div>
+      <div class="peertube some-block"><a class="title" href="https://search.joinpeertube.org"><img src="../../assets/images/peertube-icon.svg"/>
+          <h4 data-localise="__MSG_peertube__">PeerTube</h4></a>
+        <input class="disable-peertube" type="checkbox"/>
+      </div>
+      <div class="lbry some-block"><a class="title" href="https://odysee.com/"><img src="../../assets/images/lbry-icon.png"/>
+          <h4 data-localise="__MSG_lbry__">LBRY</h4></a>
+        <input class="disable-lbry" type="checkbox"/>
+      </div>
+      <div class="search some-block"><a class="title" href="https://search.libredirect.invalid">
+          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
+            <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
+          </svg>
+          <h4 data-localise="__MSG_search__">Search</h4></a>
+        <input class="disable-search" type="checkbox"/>
+      </div>
+      <div class="translate some-block"><a class="title" href="https://translate.google.com">
+          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+            <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
+          </svg>
+          <h4 data-localise="__MSG_translate__">Translate</h4></a>
+        <input class="disable-translate" type="checkbox"/>
+      </div>
+      <div class="maps some-block"><a class="title" href="https://www.openstreetmap.org">
+          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+            <path d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"></path>
+          </svg>
+          <h4 data-localise="__MSG_maps__">Maps</h4></a>
+        <input class="disable-osm" type="checkbox"/>
+      </div>
+      <div class="sendTargets some-block"><a class="title" href="https://send.libredirect.invalid">
+          <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+            <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
+          </svg>
+          <h4 data-localise="__MSG_sendFiles__">Send Files</h4></a>
+        <input class="disable-sendTargets" type="checkbox"/>
+      </div>
     </div>
     <hr>
     <div class="some-block" id="change_instance_div"><a class="title button" id="change_instance">
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index 27e9d535..a54c69ac 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -4,6 +4,26 @@ window.browser = window.browser || window.chrome;
 import utils from "../../assets/javascripts/utils.js";
 import generalHelper from "../../assets/javascripts/general.js";
 
+import youtubeHelper from "../../assets/javascripts/youtube/youtube.js";
+import youtubeMusicHelper from "../../assets/javascripts/youtubeMusic.js";
+import twitterHelper from "../../assets/javascripts/twitter.js";
+import instagramHelper from "../../assets/javascripts/instagram.js";
+import redditHelper from "../../assets/javascripts/reddit.js";
+import searchHelper from "../../assets/javascripts/search.js";
+import translateHelper from "../../assets/javascripts/translate/translate.js";
+import mapsHelper from "../../assets/javascripts/maps.js";
+import wikipediaHelper from "../../assets/javascripts/wikipedia.js";
+import mediumHelper from "../../assets/javascripts/medium.js";
+import quoraHelper from "../../assets/javascripts/quora.js";
+import libremdbHelper from "../../assets/javascripts/imdb.js";
+import reutersHelper from "../../assets/javascripts/reuters.js";
+import imgurHelper from "../../assets/javascripts/imgur.js";
+import tiktokHelper from "../../assets/javascripts/tiktok.js";
+import sendTargetsHelper from "../../assets/javascripts/sendTargets.js";
+import peertubeHelper from "../../assets/javascripts/peertube.js";
+import lbryHelper from "../../assets/javascripts/lbry.js";
+
+
 utils.unify(true).then(r => {
   if (!r) document.getElementById('unify_div').style.display = 'none';
   else {
@@ -34,24 +54,62 @@ utils.copyRaw(true).then(r => {
 
 document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage());
 
-let disableTwitterElement = document.getElementById("disable-nitter");
-let disableYoutubeElement = document.getElementById("disable-youtube");
-let disableYoutubeMusicElement = document.getElementById("disable-youtubeMusic");
-let disableInstagramElement = document.getElementById("disable-bibliogram");
-let disableMapsElement = document.getElementById("disable-osm");
-let disableRedditElement = document.getElementById("disable-reddit");
-let disableSearchElement = document.getElementById("disable-search");
-let disableElement = document.getElementById("disable-simplyTranslate");
-let disableWikipediaElement = document.getElementById("disable-wikipedia");
-let disableMediumElement = document.getElementById("disable-medium");
-let disableQuoraElement = document.getElementById("disable-quora");
-let disableImdbElement = document.getElementById("disable-imdb");
-let disableReutersElement = document.getElementById("disable-reuters");
-let disablePeertubeElement = document.getElementById("disable-peertube");
-let disableLbryElement = document.getElementById("disable-lbry");
-let disableSendTargetsElement = document.getElementById("disable-sendTargets");
-let disableImgurElement = document.getElementById("disable-imgur");
-let disableTiktokElement = document.getElementById("disable-tiktok");
+const allSites = document.getElementsByClassName('all_sites')[0];
+const currSite = document.getElementsByClassName('current_site')[0];
+
+const disableTwitterCurrentSite = currSite.getElementsByClassName("disable-nitter")[0];
+const disableTwitterAllSites = allSites.getElementsByClassName("disable-nitter")[0];
+
+const disableYoutubeCurrentSite = currSite.getElementsByClassName("disable-youtube")[0];
+const disableYoutubeAllSites = allSites.getElementsByClassName("disable-youtube")[0];
+
+const disableYoutubeMusicCurrentSite = currSite.getElementsByClassName("disable-youtubeMusic")[0];
+const disableYoutubeMusicAllSites = allSites.getElementsByClassName("disable-youtubeMusic")[0];
+
+const disableInstagramCurrentSite = currSite.getElementsByClassName("disable-bibliogram")[0];
+const disableInstagramAllSites = allSites.getElementsByClassName("disable-bibliogram")[0];
+
+const disableMapsCurrentSite = currSite.getElementsByClassName("disable-osm")[0];
+const disableMapsAllSites = allSites.getElementsByClassName("disable-osm")[0];
+
+const disableRedditCurrentSite = currSite.getElementsByClassName("disable-reddit")[0];
+const disableRedditAllSites = allSites.getElementsByClassName("disable-reddit")[0];
+
+const disableSearchCurrentSite = currSite.getElementsByClassName("disable-search")[0];
+const disableSearchAllSites = allSites.getElementsByClassName("disable-search")[0];
+
+const disableTranslateCurrentSite = currSite.getElementsByClassName("disable-translate")[0];
+const disableTranslateAllSites = allSites.getElementsByClassName("disable-translate")[0];
+
+const disableWikipediaCurrentSite = currSite.getElementsByClassName("disable-wikipedia")[0];
+const disableWikipediaAllSites = allSites.getElementsByClassName("disable-wikipedia")[0];
+
+const disableMediumCurrentSite = currSite.getElementsByClassName("disable-medium")[0];
+const disableMediumAllSites = allSites.getElementsByClassName("disable-medium")[0];
+
+const disableQuoraCurrentSite = currSite.getElementsByClassName("disable-quora")[0];
+const disableQuoraAllSites = allSites.getElementsByClassName("disable-quora")[0];
+
+const disableImdbCurrentSite = currSite.getElementsByClassName("disable-imdb")[0];
+const disableImdbAllSites = allSites.getElementsByClassName("disable-imdb")[0];
+
+const disableReutersCurrentSite = currSite.getElementsByClassName("disable-reuters")[0];
+const disableReutersAllSites = allSites.getElementsByClassName("disable-reuters")[0];
+
+const disablePeertubeTargetsCurrentSite = currSite.getElementsByClassName("disable-peertube")[0];
+const disablePeertubeTargetsAllSites = allSites.getElementsByClassName("disable-peertube")[0];
+
+const disableLbryTargetsCurrentSite = currSite.getElementsByClassName("disable-lbry")[0];
+const disableLbryTargetsAllSites = allSites.getElementsByClassName("disable-lbry")[0];
+
+const disableSendTargetsCurrentSite = currSite.getElementsByClassName("disable-sendTargets")[0];
+const disableSendTargetsAllSites = allSites.getElementsByClassName("disable-sendTargets")[0];
+
+const disableImgurCurrentSite = currSite.getElementsByClassName("disable-imgur")[0];
+const disableImgurAllSites = allSites.getElementsByClassName("disable-imgur")[0];
+
+const disableTiktokCurrentSite = currSite.getElementsByClassName("disable-tiktok")[0];
+const disableTiktokAllSites = allSites.getElementsByClassName("disable-tiktok")[0];
 
 browser.storage.local.get(
   [
@@ -73,58 +131,194 @@ browser.storage.local.get(
     "disablePeertubeTargets",
     "disableLbryTargets",
     "disableSendTarget",
-
     'popupFrontends',
   ],
   r => {
-    disableTwitterElement.checked = !r.disableTwitter;
-    disableYoutubeElement.checked = !r.disableYoutube;
-    disableYoutubeMusicElement.checked = !r.disableYoutubeMusic;
-    disableInstagramElement.checked = !r.disableInstagram;
-    disableMapsElement.checked = !r.disableMaps;
-    disableRedditElement.checked = !r.disableReddit;
-    disableSearchElement.checked = !r.disableSearch;
-    disableElement.checked = !r.translateDisable;
-    disableWikipediaElement.checked = !r.disableWikipedia;
-    disableImgurElement.checked = !r.disableImgur;
-    disableTiktokElement.checked = !r.disableTiktok;
-    disableMediumElement.checked = !r.disableMedium;
-    disableQuoraElement.checked = !r.disableQuora;
-    disableImdbElement.checked = !r.disableImdb;
-    disableReutersElement.checked = !r.disableReuters;
-    disablePeertubeElement.checked = !r.disablePeertubeTargets;
-    disableLbryElement.checked = !r.disableLbryTargets;
-    disableSendTargetsElement.checked = !r.disableSendTarget;
-
-    for (const frontend of generalHelper.allPopupFrontends)
-      if (!r.popupFrontends.includes(frontend))
-        document.getElementById(frontend).classList.add("hide")
-      else
-        document.getElementById(frontend).classList.remove("hide")
+    disableTwitterCurrentSite.checked = !r.disableTwitter; disableTwitterAllSites.checked = !r.disableTwitter;
+    disableYoutubeCurrentSite.checked = !r.disableYoutube; disableYoutubeAllSites.checked = !r.disableYoutube;
+    disableYoutubeMusicCurrentSite.checked = !r.disableYoutubeMusic; disableYoutubeMusicAllSites.checked = !r.disableYoutubeMusic;
+    disableInstagramCurrentSite.checked = !r.disableInstagram; disableInstagramAllSites.checked = !r.disableInstagram;
+    disableMapsCurrentSite.checked = !r.disableMaps; disableMapsAllSites.checked = !r.disableMaps;
+    disableRedditCurrentSite.checked = !r.disableReddit; disableRedditAllSites.checked = !r.disableReddit;
+    disableSearchCurrentSite.checked = !r.disableSearch; disableSearchAllSites.checked = !r.disableSearch;
+    disableTranslateCurrentSite.checked = !r.translateDisable; disableTranslateAllSites.checked = !r.translateDisable;
+    disableWikipediaCurrentSite.checked = !r.disableWikipedia; disableWikipediaAllSites.checked = !r.disableWikipedia;
+    disableImgurCurrentSite.checked = !r.disableImgur; disableImgurAllSites.checked = !r.disableImgur;
+    disableTiktokCurrentSite.checked = !r.disableTiktok; disableTiktokAllSites.checked = !r.disableTiktok;
+    disableMediumCurrentSite.checked = !r.disableMedium; disableMediumAllSites.checked = !r.disableMedium;
+    disableQuoraCurrentSite.checked = !r.disableQuora; disableQuoraAllSites.checked = !r.disableQuora;
+    disableImdbCurrentSite.checked = !r.disableImdb; disableImdbAllSites.checked = !r.disableImdb;
+    disableReutersCurrentSite.checked = !r.disableReuters; disableReutersAllSites.checked = !r.disableReuters;
+    disablePeertubeTargetsCurrentSite.checked = !r.disablePeertubeTargets; disablePeertubeTargetsAllSites.checked = !r.disablePeertubeTargets;
+    disableLbryTargetsCurrentSite.checked = !r.disableLbryTargets; disableLbryTargetsAllSites.checked = !r.disableLbryTargets;
+    disableSendTargetsCurrentSite.checked = !r.disableSendTarget; disableSendTargetsAllSites.checked = !r.disableSendTarget;
+
+    browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+      for (const frontend of generalHelper.allPopupFrontends) {
+        if (!r.popupFrontends.includes(frontend))
+          allSites.getElementsByClassName(frontend)[0].classList.add("hide")
+        else
+          allSites.getElementsByClassName(frontend)[0].classList.remove("hide")
+        currSite.getElementsByClassName(frontend)[0].classList.add("hide")
+      }
+
+      let url;
+      try { url = new URL(tabs[0].url); }
+      catch { return; }
+
+      if (youtubeHelper.redirect(url, 'main_frame', false, true) || await youtubeHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('youtube')[0].classList.remove("hide");
+        allSites.getElementsByClassName('youtube')[0].classList.add("hide");
+      }
+      else if (twitterHelper.redirect(url, 'main_frame', false, true) || await twitterHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('twitter')[0].classList.remove("hide");
+        allSites.getElementsByClassName('twitter')[0].classList.add("hide");
+      }
+      else if (instagramHelper.redirect(url, 'main_frame', false, true) || await instagramHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('instagram')[0].classList.remove("hide");
+        allSites.getElementsByClassName('instagram')[0].classList.add("hide");
+      }
+      else if (mapsHelper.redirect(url, false)) {
+        currSite.getElementsByClassName('maps')[0].classList.remove("hide");
+        allSites.getElementsByClassName('maps')[0].classList.add("hide");
+      }
+      else if (redditHelper.redirect(url, 'main_frame', false, true) || await redditHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('reddit')[0].classList.remove("hide");
+        allSites.getElementsByClassName('reddit')[0].classList.add("hide");
+      }
+      else if (mediumHelper.redirect(url, 'main_frame', false, true) || await mediumHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('medium')[0].classList.remove("hide");
+        allSites.getElementsByClassName('medium')[0].classList.add("hide");
+      }
+      else if (quoraHelper.redirect(url, 'main_frame', false, true) || await quoraHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('quora')[0].classList.remove("hide");
+        allSites.getElementsByClassName('quora')[0].classList.add("hide");
+      }
+      else if (libremdbHelper.redirect(url, 'main_frame', false, true) || await libremdbHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('imdb')[0].classList.remove("hide");
+        allSites.getElementsByClassName('imdb')[0].classList.add("hide");
+      }
+      else if (reutersHelper.redirect(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('reuters')[0].classList.remove("hide");
+        allSites.getElementsByClassName('reuters')[0].classList.add("hide");
+      }
+      else if (imgurHelper.redirect(url, 'main_frame', false, true) || await imgurHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('imgur')[0].classList.remove("hide");
+        allSites.getElementsByClassName('imgur')[0].classList.add("hide");
+      }
+      else if (tiktokHelper.redirect(url, 'main_frame', false, true) || await tiktokHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('tiktok')[0].classList.remove("hide");
+        allSites.getElementsByClassName('tiktok')[0].classList.add("hide");
+      }
+      else if (sendTargetsHelper.redirect(url, 'main_frame', false, true) || await sendTargetsHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('sendTargets')[0].classList.remove("hide");
+        allSites.getElementsByClassName('sendTargets')[0].classList.add("hide");
+      }
+      else if (peertubeHelper.redirect(url, 'main_frame', false, true) || await peertubeHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('peertube')[0].classList.remove("hide");
+        allSites.getElementsByClassName('peertube')[0].classList.add("hide");
+      }
+      else if (lbryHelper.redirect(url, 'main_frame', false, true) || await lbryHelper.switchInstance(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('lbry')[0].classList.remove("hide");
+        allSites.getElementsByClassName('lbry')[0].classList.add("hide");
+      }
+      else if (translateHelper.redirect(url, true) || await translateHelper.switchInstance(url, true)) {
+        currSite.getElementsByClassName('translate')[0].classList.remove("hide");
+        allSites.getElementsByClassName('translate')[0].classList.add("hide");
+      }
+      else if (searchHelper.redirect(url, true) || await searchHelper.switchInstance(url, true)) {
+        currSite.getElementsByClassName('search')[0].classList.remove("hide");
+        allSites.getElementsByClassName('search')[0].classList.add("hide");
+      }
+      else if (wikipediaHelper.redirect(url, true) || await wikipediaHelper.switchInstance(url, true)) {
+        currSite.getElementsByClassName('wikipedia')[0].classList.remove("hide");
+        allSites.getElementsByClassName('wikipedia')[0].classList.add("hide");
+      }
+      else if (youtubeMusicHelper.redirect(url, 'main_frame', false, true)) {
+        currSite.getElementsByClassName('youtubeMusic')[0].classList.remove("hide");
+        allSites.getElementsByClassName('youtubeMusic')[0].classList.add("hide");
+      }
+    })
   }
 )
 
 document.addEventListener("change", () => {
-  browser.storage.local.set({
-    disableTwitter: !disableTwitterElement.checked,
-    disableYoutube: !disableYoutubeElement.checked,
-    disableYoutubeMusic: !disableYoutubeMusicElement.checked,
-    disableInstagram: !disableInstagramElement.checked,
-    disableMaps: !disableMapsElement.checked,
-    disableReddit: !disableRedditElement.checked,
-    disableSearch: !disableSearchElement.checked,
-    translateDisable: !disableElement.checked,
-    disableWikipedia: !disableWikipediaElement.checked,
-    disableImgur: !disableImgurElement.checked,
-    disableTiktok: !disableTiktokElement.checked,
-    disableMedium: !disableMediumElement.checked,
-    disableQuora: !disableQuoraElement.checked,
-    disableImdb: !disableImdbElement.checked,
-    disableReuters: !disableReutersElement.checked,
-    disablePeertubeTargets: !disablePeertubeElement.checked,
-    disableLbryTargets: !disableLbryElement.checked,
-    disableSendTarget: !disableSendTargetsElement.checked,
-  });
+  browser.storage.local.get(
+    [
+      "disableTwitter",
+      "disableYoutube",
+      "disableYoutubeMusic",
+      "disableInstagram",
+      "disableMaps",
+      "disableReddit",
+      "disableSearch",
+      "translateDisable",
+      "disableWikipedia",
+      "disableImgur",
+      "disableTiktok",
+      "disableMedium",
+      "disableQuora",
+      "disableImdb",
+      "disableReuters",
+      "disablePeertubeTargets",
+      "disableLbryTargets",
+      "disableSendTarget",
+    ],
+    r => {
+      if (!r.disableTwitter != disableTwitterCurrentSite.checked) browser.storage.local.set({ disableTwitter: !disableTwitterCurrentSite.checked })
+      else if (!r.disableTwitter != disableTwitterAllSites.checked) browser.storage.local.set({ disableTwitter: !disableTwitterAllSites.checked })
+
+      if (!r.disableYoutube != disableYoutubeCurrentSite.checked) browser.storage.local.set({ disableYoutube: !disableYoutubeCurrentSite.checked })
+      else if (!r.disableYoutube != disableYoutubeAllSites.checked) browser.storage.local.set({ disableYoutube: !disableYoutubeAllSites.checked })
+
+      if (!r.disableYoutubeMusic != disableYoutubeMusicCurrentSite.checked) browser.storage.local.set({ disableYoutubeMusic: !disableYoutubeMusicCurrentSite.checked })
+      else if (!r.disableYoutubeMusic != disableYoutubeMusicAllSites.checked) browser.storage.local.set({ disableYoutubeMusic: !disableYoutubeMusicAllSites.checked })
+
+      if (!r.disableInstagram != disableInstagramCurrentSite.checked) browser.storage.local.set({ disableInstagram: !disableInstagramCurrentSite.checked })
+      else if (!r.disableInstagram != disableInstagramAllSites.checked) browser.storage.local.set({ disableInstagram: !disableInstagramAllSites.checked })
+
+      if (!r.disableMaps != disableMapsCurrentSite.checked) browser.storage.local.set({ disableMaps: !disableMapsCurrentSite.checked })
+      else if (!r.disableMaps != disableMapsAllSites.checked) browser.storage.local.set({ disableMaps: !disableMapsAllSites.checked })
+
+      if (!r.disableReddit != disableRedditCurrentSite.checked) browser.storage.local.set({ disableReddit: !disableRedditCurrentSite.checked })
+      else if (!r.disableReddit != disableRedditAllSites.checked) browser.storage.local.set({ disableReddit: !disableRedditAllSites.checked })
+
+      if (!r.disableSearch != disableSearchCurrentSite.checked) browser.storage.local.set({ disableSearch: !disableSearchCurrentSite.checked })
+      else if (!r.disableSearch != disableSearchAllSites.checked) browser.storage.local.set({ disableSearch: !disableSearchAllSites.checked })
+
+      if (!r.translateDisable != disableTranslateCurrentSite.checked) browser.storage.local.set({ translateDisable: !disableTranslateCurrentSite.checked })
+      else if (!r.translateDisable != disableTranslateAllSites.checked) browser.storage.local.set({ translateDisable: !disableTranslateAllSites.checked })
+
+      if (!r.disableWikipedia != disableWikipediaCurrentSite.checked) browser.storage.local.set({ disableWikipedia: !disableWikipediaCurrentSite.checked })
+      else if (!r.disableWikipedia != disableWikipediaAllSites.checked) browser.storage.local.set({ disableWikipedia: !disableWikipediaAllSites.checked })
+
+      if (!r.disableImgur != disableImgurCurrentSite.checked) browser.storage.local.set({ disableImgur: !disableImgurCurrentSite.checked })
+      else if (!r.disableImgur != disableImgurAllSites.checked) browser.storage.local.set({ disableImgur: !disableImgurAllSites.checked })
+
+      if (!r.disableTiktok != disableTiktokCurrentSite.checked) browser.storage.local.set({ disableTiktok: !disableTiktokCurrentSite.checked })
+      else if (!r.disableTiktok != disableTiktokAllSites.checked) browser.storage.local.set({ disableTiktok: !disableTiktokAllSites.checked })
+
+      if (!r.disableMedium != disableMediumCurrentSite.checked) browser.storage.local.set({ disableMedium: !disableMediumCurrentSite.checked })
+      else if (!r.disableMedium != disableMediumAllSites.checked) browser.storage.local.set({ disableMedium: !disableMediumAllSites.checked })
+
+      if (!r.disableQuora != disableQuoraCurrentSite.checked) browser.storage.local.set({ disableQuora: !disableQuoraCurrentSite.checked })
+      else if (!r.disableQuora != disableQuoraAllSites.checked) browser.storage.local.set({ disableQuora: !disableQuoraAllSites.checked })
+
+      if (!r.disableImdb != disableImdbCurrentSite.checked) browser.storage.local.set({ disableImdb: !disableImdbCurrentSite.checked })
+      else if (!r.disableImdb != disableImdbAllSites.checked) browser.storage.local.set({ disableImdb: !disableImdbAllSites.checked })
+
+      if (!r.disableReuters != disableReutersCurrentSite.checked) browser.storage.local.set({ disableReuters: !disableReutersCurrentSite.checked })
+      else if (!r.disableReuters != disableReutersAllSites.checked) browser.storage.local.set({ disableReuters: !disableReutersAllSites.checked })
+
+      if (!r.disablePeertubeTargets != disablePeertubeTargetsCurrentSite.checked) browser.storage.local.set({ disablePeertubeTargets: !disablePeertubeTargetsCurrentSite.checked })
+      else if (!r.disablePeertubeTargets != disablePeertubeTargetsAllSites.checked) browser.storage.local.set({ disablePeertubeTargets: !disablePeertubeTargetsAllSites.checked })
+
+      if (!r.disableLbryTargets != disableLbryTargetsCurrentSite.checked) browser.storage.local.set({ disableLbryTargets: !disableLbryTargetsCurrentSite.checked })
+      else if (!r.disableLbryTargets != disableLbryTargetsAllSites.checked) browser.storage.local.set({ disableLbryTargets: !disableLbryTargetsAllSites.checked })
+
+      if (!r.disableSendTarget != disableSendTargetsCurrentSite.checked) browser.storage.local.set({ disableSendTarget: !disableSendTargetsCurrentSite.checked })
+      else if (!r.disableSendTarget != disableSendTargetsAllSites.checked) browser.storage.local.set({ disableSendTarget: !disableSendTargetsAllSites.checked })
+    })
 })
 
 for (const a of document.getElementsByTagName('a')) {
diff --git a/src/pages/popup/popup.pug b/src/pages/popup/popup.pug
index 47113a13..ce155e1a 100644
--- a/src/pages/popup/popup.pug
+++ b/src/pages/popup/popup.pug
@@ -1,5 +1,114 @@
 include ../widgets/icons.pug
 
+mixin services
+    .youtube.some-block
+        a.title(href="https://youtube.com")
+            img(src="../../assets/images/youtube-icon.png")
+            h4(data-localise="__MSG_youtube__") YouTube
+        input.disable-youtube(type="checkbox")
+
+    .youtubeMusic.some-block
+        a.title(href="https://music.youtube.com")
+            img(src="../../assets/images/youtube-music-icon.png")
+            h4(data-localise="__MSG_ytmusic__") YT Music
+        input.disable-youtubeMusic(type="checkbox")
+
+    .twitter.some-block
+        a.title(href="https://twitter.com")
+            img(src="../../assets/images/twitter-icon.png")
+            h4(data-localise="__MSG_twitter__") Twitter
+        input.disable-nitter(type="checkbox")
+
+    .instagram.some-block
+        a.title(href="https://instagram.com")
+            img(src="../../assets/images/instagram-icon.png")
+            h4(data-localise="__MSG_instagram__") Instagram
+        input.disable-bibliogram(type="checkbox")
+
+    .tiktok.some-block
+        a.title(href="https://tiktok.com")
+            img(src="../../assets/images/tiktok-icon.png")
+            h4(data-localise="__MSG_tiktok__") TikTok
+        input.disable-tiktok(type="checkbox")
+
+    .imgur.some-block
+        a.title(href="https://imgur.com")
+            img(src="../../assets/images/imgur-icon.png")
+            h4(data-localise="__MSG_imgur__") Imgur
+        input.disable-imgur(type="checkbox")
+
+    .reddit.some-block
+        a.title(href="https://reddit.com")
+            img(src="../../assets/images/reddit-icon.png")
+            h4(data-localise="__MSG_reddit__") Reddit
+        input.disable-reddit(type="checkbox")
+
+    .wikipedia.some-block
+        a.title(href="https://wikipedia.com")
+            img(src="../../assets/images/wikipedia-icon.svg")
+            h4(data-localise="__MSG_wikipedia__") Wikipedia
+        input.disable-wikipedia(type="checkbox")
+
+    .medium.some-block
+        a.title(href="https://medium.com")
+            +medium
+            h4(data-localise="__MSG_medium__") Medium
+        input.disable-medium(type="checkbox")
+
+    .quora.some-block
+        a.title(href="https://quora.com")
+            img(src="../../assets/images/quora.png")
+            h4(data-localise="__MSG_quora__") Quora
+        input.disable-quora(type="checkbox")
+    
+    .imdb.some-block
+        a.title(href="https://imdb.com")
+            img(src="../../assets/images/imdb.svg")
+            h4(data-localise="__MSG_imdb__") IMDb
+        input.disable-imdb(type="checkbox")
+
+    .reuters.some-block
+        a.title(href="https://reuters.com")
+            img(src="../../assets/images/reuters.svg")
+            h4(data-localise="__MSG_reuters__") Reuters
+        input.disable-reuters(type="checkbox")
+
+    .peertube.some-block
+        a.title(href="https://search.joinpeertube.org")
+            img(src="../../assets/images/peertube-icon.svg")
+            h4(data-localise="__MSG_peertube__") PeerTube
+        input.disable-peertube(type="checkbox")
+
+    .lbry.some-block
+        a.title(href="https://odysee.com/")
+            img(src="../../assets/images/lbry-icon.png")
+            h4(data-localise="__MSG_lbry__") LBRY
+        input.disable-lbry(type="checkbox")
+
+    .search.some-block
+        a.title(href="https://search.libredirect.invalid")
+            +search
+            h4(data-localise="__MSG_search__") Search
+        input.disable-search(type="checkbox")
+
+    .translate.some-block
+        a.title(href="https://translate.google.com")
+            +translate
+            h4(data-localise="__MSG_translate__") Translate
+        input.disable-translate(type="checkbox")
+
+    .maps.some-block
+        a.title(href="https://www.openstreetmap.org")
+            +maps
+            h4(data-localise="__MSG_maps__") Maps
+        input.disable-osm(type="checkbox")
+
+    .sendTargets.some-block
+        a.title(href="https://send.libredirect.invalid")
+            +send
+            h4(data-localise="__MSG_sendFiles__") Send Files
+        input.disable-sendTargets(type="checkbox")
+
 doctype html
 html(lang="en")
     head
@@ -8,116 +117,12 @@ html(lang="en")
         link(href="../stylesheets/styles.css" rel="stylesheet")
         link(href="./style.css" rel="stylesheet")
     body(dir="auto")
-        #youtube.some-block
-            a.title(href="https://youtube.com")
-                img(src="../../assets/images/youtube-icon.png")
-                h4(data-localise="__MSG_youtube__") YouTube
-            input#disable-youtube(type="checkbox")
-
-        #youtubeMusic.some-block
-            a.title(href="https://music.youtube.com")
-                img(src="../../assets/images/youtube-music-icon.png")
-                h4(data-localise="__MSG_ytmusic__") YT Music
-            input#disable-youtubeMusic(type="checkbox")
-
-        #twitter.some-block
-            a.title(href="https://twitter.com")
-                img(src="../../assets/images/twitter-icon.png")
-                h4(data-localise="__MSG_twitter__") Twitter
-            input#disable-nitter(type="checkbox")
-
-        #instagram.some-block
-            a.title(href="https://instagram.com")
-                img(src="../../assets/images/instagram-icon.png")
-                h4(data-localise="__MSG_instagram__") Instagram
-            input#disable-bibliogram(type="checkbox")
-
-        #tikTok.some-block
-            a.title(href="https://tiktok.com")
-                img(src="../../assets/images/tiktok-icon.png")
-                h4(data-localise="__MSG_tiktok__") TikTok
-            input#disable-tiktok(type="checkbox")
-
-        #imgur.some-block
-            a.title(href="https://imgur.com")
-                img(src="../../assets/images/imgur-icon.png")
-                h4(data-localise="__MSG_imgur__") Imgur
-            input#disable-imgur(type="checkbox")
-
-        #reddit.some-block
-            a.title(href="https://reddit.com")
-                img(src="../../assets/images/reddit-icon.png")
-                h4(data-localise="__MSG_reddit__") Reddit
-            input#disable-reddit(type="checkbox")
-
-        #wikipedia.some-block
-            a.title(href="https://wikipedia.com")
-                img(src="../../assets/images/wikipedia-icon.svg")
-                h4(data-localise="__MSG_wikipedia__") Wikipedia
-            input#disable-wikipedia(type="checkbox")
-
-        #medium.some-block
-            a.title(href="https://medium.com")
-                +medium
-                h4(data-localise="__MSG_medium__") Medium
-            input#disable-medium(type="checkbox")
-
-        #quora.some-block
-            a.title(href="https://quora.com")
-                img(src="../../assets/images/quora.png")
-                h4(data-localise="__MSG_quora__") Quora
-            input#disable-quora(type="checkbox")
-        
-        #imdb.some-block
-            a.title(href="https://imdb.com")
-                img(src="../../assets/images/imdb.svg")
-                h4(data-localise="__MSG_imdb__") IMDb
-            input#disable-imdb(type="checkbox")
-
-        #reuters.some-block
-            a.title(href="https://reuters.com")
-                img(src="../../assets/images/reuters.svg")
-                h4(data-localise="__MSG_reuters__") Reuters
-            input#disable-reuters(type="checkbox")
-
-        #peertube.some-block
-            a.title(href="https://search.joinpeertube.org")
-                img(src="../../assets/images/peertube-icon.svg")
-                h4(data-localise="__MSG_peertube__") PeerTube
-            input#disable-peertube(type="checkbox")
-
-        #lbry.some-block
-            a.title(href="https://odysee.com/")
-                img(src="../../assets/images/lbry-icon.png")
-                h4(data-localise="__MSG_lbry__") LBRY
-            input#disable-lbry(type="checkbox")
-
-        #search.some-block
-            a.title(href="https://search.libredirect.invalid")
-                +search
-                h4(data-localise="__MSG_search__") Search
-            input#disable-search(type="checkbox")
-
-        #translate.some-block
-            a.title(href="https://translate.google.com")
-                +translate
-                h4(data-localise="__MSG_translate__") Translate
-            input#disable-simplyTranslate(type="checkbox")
-
-        #maps.some-block
-            a.title(href="https://www.openstreetmap.org")
-                +maps
-                h4(data-localise="__MSG_maps__") Maps
-            input#disable-osm(type="checkbox")
-
-        #sendTargets.some-block
-            a.title(href="https://send.libredirect.invalid")
-                +send
-                h4(data-localise="__MSG_sendFiles__") Send Files
-            input#disable-sendTargets(type="checkbox")
-
+        .current_site
+            +services
+            hr
+        .all_sites
+            +services
         hr
-
         #change_instance_div.some-block
             a#change_instance.title.button
                 h4(data-localise="__MSG_switchInstance__") Change Instance