about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-04 23:07:47 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-04 23:07:47 +0300
commit236f839eacc42e3435fecd89c44ff40f5a2f57d2 (patch)
tree7bc73f51d7a3d20f32a09f2a71abccd560efb88b /src/assets
parentCleaning and refining settings (diff)
downloadlibredirect-236f839eacc42e3435fecd89c44ff40f5a2f57d2.zip
Refining code and design
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/common.js2
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js23
-rw-r--r--src/assets/javascripts/remove-twitter-sw.js217
3 files changed, 68 insertions, 174 deletions
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index d7b65881..373929f6 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -28,7 +28,7 @@ function updateInstances() {
   if (request.status === 200) {
     const instances = JSON.parse(request.responseText);
 
-    youtubeHelper.setRedirects(instances.invidious);
+    youtubeHelper.setInvidiousRedirects(instances.invidious);
 
     twitterHelper.setRedirects(instances.nitter);
 
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 547e2614..daea8b7e 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -105,12 +105,12 @@ function setInvidiousVideoQuality(val) {
 }
 const getInvidiousVideoQuality = () => invidiousVideoQuality;
 
-let invidiousDarkMode;
-const getInvidiousDarkMode = () => invidiousDarkMode;
-function setInvidiousDarkMode(val) {
-  invidiousDarkMode = val;
-  browser.storage.sync.set({ invidiousDarkMode })
-  console.log("invidiousDarkMode: ", invidiousDarkMode)
+let invidiousTheme;
+const getInvidiousTheme = () => invidiousTheme;
+function setInvidiousTheme(val) {
+  invidiousTheme = val;
+  browser.storage.sync.set({ invidiousTheme })
+  console.log("invidiousTheme: ", invidiousTheme)
 }
 
 let invidiousVolume;
@@ -179,7 +179,7 @@ async function init() {
     [
       "invidiousAlwaysProxy",
       "invidiousVideoQuality",
-      "invidiousDarkMode",
+      "invidiousTheme",
       "persistInvidiousPrefs",
       "disableYoutube",
       "invidiousInstance",
@@ -201,7 +201,7 @@ async function init() {
   invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? true;
   invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo ?? false;
   invidiousVideoQuality = result.invidiousVideoQuality ?? 'medium';
-  invidiousDarkMode = result.invidiousDarkMode ?? true;
+  invidiousTheme = result.invidiousTheme ?? 'dark';
   invidiousVolume = result.invidiousVolume ?? 50;
   invidiousPlayerStyle = result.invidiousPlayerStyle ?? 'invidious';
   invidiousSubtitles = result.invidiousSubtitles || '';
@@ -250,7 +250,7 @@ function redirect(url, initiator, type) {
 
     url.searchParams.append("local", invidiousAlwaysProxy);
     url.searchParams.append("quality", invidiousVideoQuality);
-    url.searchParams.append("dark_mode", invidiousDarkMode);
+    url.searchParams.append("dark_mode", invidiousTheme);
     url.searchParams.append("volume", invidiousVolume);
     url.searchParams.append("player_style", invidiousPlayerStyle);
     url.searchParams.append("subtitles", invidiousSubtitles);
@@ -271,7 +271,6 @@ function redirect(url, initiator, type) {
   }
 }
 
-
 export default {
   invidiousInitCookies,
 
@@ -300,8 +299,8 @@ export default {
   setInvidiousVideoQuality,
   getInvidiousVideoQuality,
 
-  setInvidiousDarkMode,
-  getInvidiousDarkMode,
+  setInvidiousTheme,
+  getInvidiousTheme,
 
   setInvidiousVolume,
   getInvidiousVolume,
diff --git a/src/assets/javascripts/remove-twitter-sw.js b/src/assets/javascripts/remove-twitter-sw.js
index 36a8d9b3..cb8abc43 100644
--- a/src/assets/javascripts/remove-twitter-sw.js
+++ b/src/assets/javascripts/remove-twitter-sw.js
@@ -1,24 +1,5 @@
 "use strict";
 
-const nitterInstances = [
-  "https://nitter.net",
-  "https://nitter.snopyta.org",
-  "https://nitter.42l.fr",
-  "https://nitter.nixnet.services",
-  "https://nitter.pussthecat.org",
-  "https://nitter.dark.fail",
-  "https://nitter.tedomum.net",
-  "https://nitter.cattube.org",
-  "https://nitter.fdn.fr",
-  "https://nitter.1d4.us",
-  "https://nitter.kavin.rocks",
-  "https://tweet.lambda.dance",
-  "https://nitter.cc",
-  "https://nitter.vxempire.xyz",
-  "https://nitter.unixfox.eu",
-  "https://bird.trom.tf"
-];
-
 let disableTwitter;
 let nitterInstance;
 let redirectBypassFlag;
@@ -26,153 +7,67 @@ let exceptions;
 
 window.browser = window.browser || window.chrome;
 
-function getRandomInstance() {
-  return nitterInstances[~~(nitterInstances.length * Math.random())];
-}
-
-function isNotException(url) {
-  return !exceptions.some((regex) => regex.test(url.href));
-}
+Promise.all([
+  import(browser.extension.getURL("src/assets/javascripts/helpers/common.js")),
+  import(browser.extension.getURL("src/assets/javascripts/helpers/twitter.js")),
+]).then(
+  (helpers) => {
+    let commonHelper;
+    let twitterHelper;
+    [commonHelper, twitterHelper] = helpers;
 
-function shouldRedirect(url) {
-  return (!redirectBypassFlag && isNotException(url) && !disableTwitter && url.host !== nitterInstance && !url.pathname.includes("/home"));
-}
+    function shouldRedirect(url) {
+      return (
+        !redirectBypassFlag &&
+        !disableTwitter &&
+        url.host !== nitterInstance &&
+        !url.pathname.includes("/home")
+      );
+    }
 
-function redirectTwitter(url) {
-  if (url.host.split(".")[0] === "pbs") {
-    return `${nitterInstance}/pic/${encodeURIComponent(url.href)}`;
-  } else if (url.host.split(".")[0] === "video") {
-    return `${nitterInstance}/gif/${encodeURIComponent(url.href)}`;
-  } else {
-    return `${nitterInstance}${url.pathname}${url.search}`;
-  }
-}
+    function redirectTwitter(url) {
+      if (url.host.split(".")[0] === "pbs")
+        return `${nitterInstance}/pic/${encodeURIComponent(url.href)}`;
+      else if (url.host.split(".")[0] === "video")
+        return `${nitterInstance}/gif/${encodeURIComponent(url.href)}`;
+      else
+        return `${nitterInstance}${url.pathname}${url.search}`;
+    }
 
-browser.storage.sync.get(
-  [
-    "nitterInstance",
-    "disableTwitter",
-    "removeTwitterSW",
-    "redirectBypassFlag",
-    "exceptions",
-  ],
-  (result) => {
-    redirectBypassFlag = result.redirectBypassFlag;
-    browser.storage.sync.set({ redirectBypassFlag: false });
-    if (!result.removeTwitterSW) {
-      disableTwitter = result.disableTwitter;
-      nitterInstance = result.nitterInstance || getRandomInstance();
-      exceptions = result.exceptions
-        ? result.exceptions.map((e) => {
-          return new RegExp(e);
-        })
-        : [];
-      navigator.serviceWorker.getRegistrations().then((registrations) => {
-        for (let registration of registrations) {
-          if (registration.scope === "https://twitter.com/") {
-            registration.unregister();
-            console.log("Unregistered Twitter SW", registration);
+    browser.storage.sync.get(
+      [
+        "nitterInstance",
+        "disableTwitter",
+        "removeTwitterSW",
+        "redirectBypassFlag",
+        "exceptions",
+      ],
+      (result) => {
+        redirectBypassFlag = result.redirectBypassFlag;
+        browser.storage.sync.set({ redirectBypassFlag: false });
+        if (!result.removeTwitterSW) {
+          disableTwitter = result.disableTwitter;
+          nitterInstance = result.nitterInstance ?? commonHelper.default.getRandomInstance(twitterHelper.default.redirects);
+          exceptions = result.exceptions ? result.exceptions.map((e) => new RegExp(e)) : [];
+          navigator.serviceWorker.getRegistrations().then((registrations) => {
+            for (let registration of registrations) {
+              if (registration.scope === "https://twitter.com/") {
+                registration.unregister();
+                console.log("Unregistered Twitter SW", registration);
+              }
+            }
+          });
+          const url = new URL(window.location);
+          if (shouldRedirect(url)) {
+            const redirect = redirectTwitter(url);
+            console.info("Redirecting", `"${url.href}"`, "=>", `"${redirect}"`);
+            window.location = redirect;
           }
         }
-      });
-      const url = new URL(window.location);
-      if (shouldRedirect(url)) {
-        const redirect = redirectTwitter(url);
-        console.info("Redirecting", `"${url.href}"`, "=>", `"${redirect}"`);
-        window.location = redirect;
       }
-    }
+    );
+  },
+  (error) => {
+    console.error(error);
   }
 );
-
-// Keeping this here until https://bugzilla.mozilla.org/show_bug.cgi?id=1536094 is fixed...
-//
-//"use strict";
-//
-//let disableTwitter;
-//let nitterInstance;
-//let redirectBypassFlag;
-//let exceptions;
-//
-//window.browser = window.browser || window.chrome;
-//
-//Promise.all([
-//  import(browser.extension.getURL("src/assets/javascripts/helpers/common.js")),
-//  import(browser.extension.getURL("src/assets/javascripts/helpers/twitter.js")),
-//]).then(
-//  (helpers) => {
-//    let commonHelper;
-//    let twitterHelper;
-//    [commonHelper, twitterHelper] = helpers;
-//
-//    function isNotException(url) {
-//      return !exceptions.some((regex) => regex.test(url.href));
-//    }
-//
-//    function shouldRedirect(url) {
-//      return (
-//        !redirectBypassFlag &&
-//        isNotException(url) &&
-//        !disableTwitter &&
-//        url.host !== nitterInstance &&
-//        !url.pathname.includes("/home")
-//      );
-//    }
-//
-//    function redirectTwitter(url) {
-//      if (url.host.split(".")[0] === "pbs") {
-//        return `${nitterInstance}/pic/${encodeURIComponent(url.href)}`;
-//      } else if (url.host.split(".")[0] === "video") {
-//        return `${nitterInstance}/gif/${encodeURIComponent(url.href)}`;
-//      } else {
-//        return `${nitterInstance}${url.pathname}${url.search}`;
-//      }
-//    }
-//
-//    browser.storage.sync.get(
-//      [
-//        "nitterInstance",
-//        "disableTwitter",
-//        "removeTwitterSW",
-//        "redirectBypassFlag",
-//        "exceptions",
-//      ],
-//      (result) => {
-//        redirectBypassFlag = result.redirectBypassFlag;
-//        browser.storage.sync.set({
-//          redirectBypassFlag: false,
-//        });
-//        if (!result.removeTwitterSW) {
-//          disableTwitter = result.disableTwitter;
-//          nitterInstance =
-//            result.nitterInstance ||
-//            commonHelper.default.getRandomInstance(
-//              twitterHelper.default.redirects
-//            );
-//          exceptions = result.exceptions
-//            ? result.exceptions.map((e) => {
-//                return new RegExp(e);
-//              })
-//            : [];
-//          navigator.serviceWorker.getRegistrations().then((registrations) => {
-//            for (let registration of registrations) {
-//              if (registration.scope === "https://twitter.com/") {
-//                registration.unregister();
-//                console.log("Unregistered Twitter SW", registration);
-//              }
-//            }
-//          });
-//          const url = new URL(window.location);
-//          if (shouldRedirect(url)) {
-//            const redirect = redirectTwitter(url);
-//            console.info("Redirecting", `"${url.href}"`, "=>", `"${redirect}"`);
-//            window.location = redirect;
-//          }
-//        }
-//      }
-//    );
-//  },
-//  (error) => {
-//    console.error(error);
-//  }
-//);