about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/helpers/twitter.js15
-rw-r--r--src/assets/javascripts/remove-twitter-sw.js73
2 files changed, 7 insertions, 81 deletions
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 4465aba4..73d5ee20 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -3,12 +3,12 @@ window.browser = window.browser || window.chrome;
 import commonHelper from './common.js'
 
 const targets = [
-  "twitter.com",
-  "www.twitter.com",
-  "mobile.twitter.com",
-  "pbs.twimg.com",
-  "video.twimg.com",
-  "platform.twitter.com"
+  /https?:\/\/twitter\.com/,
+  /https?:\/\/www\.twitter\.com/,
+  /https?:\/\/mobile\.twitter\.com/,
+  /https?:\/\/pbs\.twimg\.com/,
+  /https?:\/\/video\.twimg\.com/,
+  /https?:\/\/platform\.twitter\.com\/embed/
 ];
 
 let redirects = {
@@ -79,7 +79,6 @@ function setNitterTorCustomRedirects(val) {
   console.log("nitterTorCustomRedirects: ", val)
 }
 
-
 let disable;
 const getDisable = () => disable;
 function setDisable(val) {
@@ -109,7 +108,7 @@ function isTwitter(url, initiator) {
       ].includes(initiator.origin) || targets.includes(initiator.host))
   ) return false;
 
-  return targets.includes(url.host)
+  return targets.some((rx) => rx.test(url.href));
 }
 
 function redirect(url) {
diff --git a/src/assets/javascripts/remove-twitter-sw.js b/src/assets/javascripts/remove-twitter-sw.js
deleted file mode 100644
index 2a4bb46a..00000000
--- a/src/assets/javascripts/remove-twitter-sw.js
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-
-let disableTwitter;
-let nitterInstance;
-let redirectBypassFlag;
-let exceptions;
-
-window.browser = window.browser || window.chrome;
-
-Promise.all([
-  import(browser.runtime.getURL("src/assets/javascripts/helpers/common.js")),
-  import(browser.runtime.getURL("src/assets/javascripts/helpers/twitter.js")),
-]).then(
-  (helpers) => {
-    let commonHelper;
-    let twitterHelper;
-    [commonHelper, twitterHelper] = helpers;
-
-    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}`;
-    }
-
-    browser.storage.local.get(
-      [
-        "nitterInstance",
-        "disableTwitter",
-        "removeTwitterSW",
-        "redirectBypassFlag",
-        "exceptions",
-      ],
-      (result) => {
-        redirectBypassFlag = result.redirectBypassFlag;
-        browser.storage.local.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;
-          }
-        }
-      }
-    );
-  },
-  (error) => {
-    console.error(error);
-  }
-);