about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-06 05:58:42 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-06 05:58:42 +0300
commit2876cb24b34e18470c297043c56e915aae2cea7c (patch)
tree6b3fbd29963e64451a40be22f74f1ddda21b1b3c /src/assets/javascripts
parentreadded default and custom instances. Needs some work (diff)
downloadlibredirect-2876cb24b34e18470c297043c56e915aae2cea7c.zip
Cleaning code
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/data.js8
-rw-r--r--src/assets/javascripts/helpers/common.js65
-rw-r--r--src/assets/javascripts/helpers/instagram.js26
-rw-r--r--src/assets/javascripts/helpers/maps.js17
-rw-r--r--src/assets/javascripts/helpers/medium.js20
-rw-r--r--src/assets/javascripts/helpers/reddit.js15
-rw-r--r--src/assets/javascripts/helpers/search.js19
-rw-r--r--src/assets/javascripts/helpers/translate.js21
-rw-r--r--src/assets/javascripts/helpers/twitter.js23
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js16
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js19
11 files changed, 22 insertions, 227 deletions
diff --git a/src/assets/javascripts/data.js b/src/assets/javascripts/data.js
index fad2ea9d..a4e37ca7 100644
--- a/src/assets/javascripts/data.js
+++ b/src/assets/javascripts/data.js
@@ -1,12 +1,5 @@
 "use strict";
 
-let exceptions;
-
-function setExceptions(val) {
-    exceptions = val;
-    browser.storage.sync.set({ exceptions })
-};
-
 let theme;
 function setTheme(val) {
     theme = val;
@@ -17,5 +10,4 @@ export default {
     exceptions,
     theme,
     setTheme,
-    setExceptions,
 }
\ No newline at end of file
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index 373929f6..313808a9 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -10,11 +10,6 @@ import wikipediaHelper from "./wikipedia.js";
 import mapsHelper from "./maps.js";
 import medium from "./medium.js";
 
-
-function addHttps(instances) {
-  return instances.map((item, i) => "https://" + item)
-}
-
 function getRandomInstance(instances) {
   return instances[~~(instances.length * Math.random())];
 }
@@ -51,72 +46,12 @@ function updateInstances() {
   return false;
 }
 
-function debounce(func, wait, immediate) {
-  let timeout;
-  return () => {
-    let context = this,
-      args = arguments;
-    let later = () => {
-      timeout = null;
-      if (!immediate) func.apply(context, args);
-    };
-    let callNow = immediate && !timeout;
-    clearTimeout(timeout);
-    timeout = setTimeout(later, wait);
-    if (callNow) func.apply(context, args);
-  };
-}
-
-function validURL(str) {
-  var pattern = new RegExp('^(https?:\\/\\/)?' + // protocol
-    '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
-    '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
-    '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
-    '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
-    '(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator
-  return !!pattern.test(str);
-}
-
-function filterList(oldList) {
-  oldList.filter((x) => x.trim() != "");
-  let newList = [];
-  oldList.forEach((c) => {
-    if (!newList.includes(c.trim()))
-      newList.push(c.trim());
-  });
-  newList = newList.filter(validURL)
-  return newList;
-}
-
-function updateListElement(listElement, list) {
-  while (listElement.firstChild)
-    listElement.removeChild(listElement.firstChild);
-  list.forEach(element => {
-    let entry = document.createElement('li');
-    entry.appendChild(document.createTextNode(element));
-    listElement.appendChild(entry);
-  });
-}
-
 function isFirefox() {
   return typeof InstallTrigger !== "undefined";
 }
 
-function isException(url, initiator) {
-  return (
-    data.exceptions.some((regex) => regex.test(url.href)) ||
-    (initiator && data.exceptions.some((regex) => regex.test(initiator.href)))
-  );
-}
-
 export default {
   getRandomInstance,
   updateInstances,
-  addHttps,
-  debounce,
-  validURL,
-  filterList,
-  updateListElement,
   isFirefox,
-  isException,
 };
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index 666b9f71..fac1f534 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -60,37 +60,23 @@ function setDisableInstagram(val) {
   browser.storage.sync.set({ disableInstagram })
 }
 
-let bibliogramInstance;
-const getBibliogramInstance = () => bibliogramInstance;
-function setBibliogramInstance(val) {
-  bibliogramInstance = val;
-  browser.storage.sync.set({ bibliogramInstance })
-};
-
 function redirect(url, initiator, type) {
   if (disableInstagram)
     return null;
 
   // Do not redirect Bibliogram view on Instagram links
-  if (
-    initiator &&
-    (initiator.origin === bibliogramInstance || redirects.normal.includes(initiator.origin) || targets.includes(initiator.host))
-  )
+  if (initiator && (redirects.normal.includes(initiator.origin) || targets.includes(initiator.host)))
     return null;
 
   // Do not redirect /accounts, /embeds.js, or anything other than main_frame
   if (type !== "main_frame" || url.pathname.match(bypassPaths))
-    return null;
+    return 'CANCEL';
 
   let link = commonHelper.getRandomInstance(redirects.normal);
-  if (
-    url.pathname === "/" ||
-    instagramReservedPaths.includes(url.pathname.split("/")[1])
-  )
+  if (url.pathname === "/" || instagramReservedPaths.includes(url.pathname.split("/")[1]))
     return `${link}${url.pathname}${url.search}`;
   else
-    // Likely a user profile, redirect to '/u/...'
-    return `${link}/u${url.pathname}${url.search}`;
+    return `${link}/u${url.pathname}${url.search}`; // Likely a user profile, redirect to '/u/...'
 }
 
 function isInstagram(url) {
@@ -100,11 +86,9 @@ function isInstagram(url) {
 async function init() {
   let result = await browser.storage.sync.get([
     "disableInstagram",
-    "bibliogramInstance",
     "instagramRedirects"
   ])
   disableInstagram = result.disableInstagram ?? false;
-  bibliogramInstance = result.bibliogramInstance;
   if (result.instagramRedirects)
     redirects = result.instagramRedirects
 }
@@ -114,8 +98,6 @@ export default {
   setRedirects,
   getDisableInstagram,
   setDisableInstagram,
-  getBibliogramInstance,
-  setBibliogramInstance,
   isInstagram,
   redirect,
   init,
diff --git a/src/assets/javascripts/helpers/maps.js b/src/assets/javascripts/helpers/maps.js
index 40f070c2..cee15557 100644
--- a/src/assets/javascripts/helpers/maps.js
+++ b/src/assets/javascripts/helpers/maps.js
@@ -54,13 +54,6 @@ function setDisableMaps(val) {
   browser.storage.sync.set({ disableMaps })
 }
 
-let osmInstance;
-const getOsmInstance = () => osmInstance;
-function setOsmInstance(val) {
-  osmInstance = val;
-  browser.storage.sync.set({ osmInstance })
-}
-
 function redirect(url, initiator) {
   if (disableMaps) return null;
 
@@ -82,8 +75,7 @@ function redirect(url, initiator) {
     params = "&zoom=17";
 
   // Set map layer
-  params = `${params}&layers=${layers[url.searchParams.get("layer")] || layers["none"]
-    }`;
+  params = `${params}&layers=${layers[url.searchParams.get("layer")] || layers["none"]}`;
   // Handle Google Maps Embed API
   if (url.pathname.split("/").includes("embed")) {
     let query = "";
@@ -93,8 +85,7 @@ function redirect(url, initiator) {
       try {
         query = url.searchParams.get("pb").split(/!2s(.*?)!/)[1];
       } catch (error) {
-        console.error(error);
-        // Unable to find map marker in URL.
+        console.error(error); // Unable to find map marker in URL.
       }
     }
     let marker, bbox;
@@ -145,18 +136,14 @@ function isMaps(url) {
 async function init() {
   let result = await browser.storage.sync.get([
     "disableMaps",
-    "osmInstance",
   ])
   disableMaps = result.disableMaps ?? false;
-  osmInstance = result.osmInstance;
 }
 
 export default {
   addressToLatLng,
   getDisableMaps,
   setDisableMaps,
-  getOsmInstance,
-  setOsmInstance,
   redirect,
   isMaps,
   init,
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index ce91e99c..16a6eac5 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -39,12 +39,6 @@ function setDisableMedium(val) {
 }
 
 
-let scribeInstance;
-const getScribeInstance = () => scribeInstance;
-function setScribeInstance(val) {
-  scribeInstance = val;
-  browser.storage.sync.set({ scribeInstance })
-};
 
 function redirect(url, initiator) {
   if (disableMedium) return null;
@@ -52,13 +46,8 @@ function redirect(url, initiator) {
   if (url.pathname == "/") return null;
 
   if (
-    commonHelper.isFirefox() &&
-    initiator &&
-    (
-      initiator.origin === scribeInstance ||
-      redirects.normal.includes(initiator.origin) ||
-      targets.includes(initiator.host)
-    )
+    commonHelper.isFirefox() && initiator &&
+    (redirects.normal.includes(initiator.origin) || targets.includes(initiator.host))
   ) {
     browser.storage.sync.set({ redirectBypassFlag: true });
     return null;
@@ -73,11 +62,9 @@ function isMedium(url) {
 async function init() {
   let result = await browser.storage.sync.get([
     "disableMedium",
-    "scribeInstance",
     "mediumRedirects"
   ])
   disableMedium = result.disableMedium ?? false;
-  scribeInstance = result.scribeInstance;
   if (result.mediumRedirects)
     redirects = result.mediumRedirects;
 }
@@ -91,9 +78,6 @@ export default {
   getDisableMedium,
   setDisableMedium,
 
-  getScribeInstance,
-  setScribeInstance,
-
   redirect,
   isMedium,
   init,
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 880d1576..ba3455d0 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -79,12 +79,6 @@ function setDisableReddit(val) {
   disableReddit = val;
   browser.storage.sync.set({ disableReddit })
 }
-let redditInstance;
-const getRedditInstance = () => redditInstance;
-function setRedditInstance(val) {
-  redditInstance = val;
-  browser.storage.sync.set({ redditInstance })
-};
 
 let redditFrontend;
 const getRedditFrontend = () => redditFrontend;
@@ -99,8 +93,8 @@ function redirect(url, initiator, type) {
     return null;
 
   // Do not redirect when already on the selected view
-  if ((initiator && initiator.origin === redditInstance) || url.origin === redditInstance)
-    return null;
+  // if ((initiator && initiator.origin === redditInstance) || url.origin === redditInstance)
+  //   return null;
 
 
   // Do not redirect exclusions nor anything other than main_frame
@@ -140,12 +134,10 @@ function isReddit(url) {
 async function init() {
   let result = await browser.storage.sync.get([
     "disableReddit",
-    "redditInstance",
     "redditFrontend",
     "redditRedirects"
   ])
   disableReddit = result.disableReddit ?? false;
-  redditInstance = result.redditInstance;
   redditFrontend = result.redditFrontend ?? 'libreddit';
   if (result.redditRedirects)
     redirects = result.redditRedirects;
@@ -160,9 +152,6 @@ export default {
   getDisableReddit,
   setDisableReddit,
 
-  getRedditInstance,
-  setRedditInstance,
-
   getRedditFrontend,
   setRedditFrontend,
 
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index 84b63f9a..1130aa3e 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -6,7 +6,7 @@ const targets = [
   /https?:\/\/(((www|maps)\.)?(google\.).*(\/search)|search\.(google\.).*)/
 ];
 let redirects = {
-    "searx": {
+  "searx": {
     "normal": [
       "https://a.searx.space",
       "https://anon.sx",
@@ -137,7 +137,7 @@ let redirects = {
       "http://mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq.b32.i2p"
     ]
   },
- "whoogle": {
+  "whoogle": {
     "normal": [
       "https://s.alefvanoon.xyz",
       "https://search.albony.xyz",
@@ -164,8 +164,6 @@ function setWhoogleRedirects(val) {
   console.log("whoogleRedirects:", val)
 }
 
-
-
 let disableSearch;
 const getDisableSearch = () => disableSearch;
 function setDisableSearch(val) {
@@ -174,13 +172,6 @@ function setDisableSearch(val) {
   console.log("disableSearch: ", disableSearch)
 }
 
-let searchInstance;
-const getSearchInstance = () => searchInstance;
-function setSearchInstance(val) {
-  searchInstance = val;
-  browser.storage.sync.set({ searchInstance })
-};
-
 let searchFrontend;
 const getSearchFrontend = () => searchFrontend;
 function setSearchFrontend(val) {
@@ -208,7 +199,6 @@ function redirect(url, initiator) {
   url.search.slice(1).split("&").forEach(function (input) {
     if (input.startsWith("q=")) searchQuery = input;
   });
-  console.log("Will return");
   return `${instance}${path}?${searchQuery}`;
 }
 
@@ -219,12 +209,10 @@ function isSearch(url) {
 async function init() {
   let result = await browser.storage.sync.get([
     "disableSearch",
-    "searchInstance",
     "searchFrontend",
     "searchRedirects",
   ])
   disableSearch = result.disableSearch ?? false;
-  searchInstance = result.searchInstance;
   searchFrontend = result.searchFrontend ?? 'searx';
   if (result.searchRedirects)
     redirects = result.searchRedirects;
@@ -241,9 +229,6 @@ export default {
   getDisableSearch,
   setDisableSearch,
 
-  getSearchInstance,
-  setSearchInstance,
-
   getSearchFrontend,
   setSearchFrontend,
 
diff --git a/src/assets/javascripts/helpers/translate.js b/src/assets/javascripts/helpers/translate.js
index 198603e9..c0f95994 100644
--- a/src/assets/javascripts/helpers/translate.js
+++ b/src/assets/javascripts/helpers/translate.js
@@ -35,6 +35,7 @@ let redirects = {
   }
 
 };
+
 const getRedirects = () => redirects;
 
 function setSimplyTranslateRedirects(val) {
@@ -57,13 +58,6 @@ function setDisableTranslate(val) {
   console.log("disableTranslate: ", disableTranslate)
 }
 
-let simplyTranslateInstance;
-const getSimplyTranslateInstance = () => simplyTranslateInstance;
-function setSimplyTranslateInstance(val) {
-  simplyTranslateInstance = val;
-  browser.storage.sync.set({ simplyTranslateInstance })
-};
-
 let translateFrontend;
 const getFrontend = () => translateFrontend;
 function setFrontend(val) {
@@ -108,12 +102,10 @@ function isTranslate(url) {
 async function init() {
   let result = await browser.storage.sync.get([
     "disableTranslate",
-    "simplyTranslateInstance",
     "translateFrontend",
     "translateRedirects"
   ]);
   disableTranslate = result.disableTranslate ?? false;
-  simplyTranslateInstance = result.simplyTranslateInstance;
   translateFrontend = result.translateFrontend ?? "simplyTransalte";
   if (result.translateRedirects)
     redirects = result.translateRedirects
@@ -123,18 +115,15 @@ export default {
   getRedirects,
   setSimplyTranslateRedirects,
   setLingvaRedirects,
-  
+
   isTranslate,
-  
+
   getDisableTranslate,
   setDisableTranslate,
-  
-  getSimplyTranslateInstance,
-  setSimplyTranslateInstance,
-  
+
   getFrontend,
   setFrontend,
-  
+
   redirect,
   init,
 };
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 24d2725e..d97505cc 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -12,11 +12,7 @@ const targets = [
   "pbs.twimg.com",
   "video.twimg.com",
 ];
-/*
-    Please remember to also update the 
-    src/assets/javascripts/remove-twitter-sw.js file 
-    (const nitterInstances) when updating this list:
-  */
+
 let redirects = {
   "normal": [
     "https://nitter.net",
@@ -93,12 +89,6 @@ function setDisableTwitter(val) {
   browser.storage.sync.set({ disableTwitter })
 }
 
-let nitterInstance;
-const getNitterInstance = () => nitterInstance;
-function setNitterInstance(val) {
-  nitterInstance = val;
-  browser.storage.sync.set({ nitterInstance })
-}
 
 function redirect(url, initiator) {
   if (disableTwitter)
@@ -110,11 +100,7 @@ function redirect(url, initiator) {
   if (
     commonHelper.isFirefox() &&
     initiator &&
-    (
-      initiator.origin === nitterInstance ||
-      redirects.normal.includes(initiator.origin) ||
-      targets.includes(initiator.host)
-    )
+    (redirects.normal.includes(initiator.origin) || targets.includes(initiator.host))
   ) {
     browser.storage.sync.set({ redirectBypassFlag: true });
     return null;
@@ -138,11 +124,9 @@ function isTwitter(url) {
 async function init() {
   let result = await browser.storage.sync.get([
     "disableTwitter",
-    "nitterInstance",
     "twitterRedirects"
   ]);
   disableTwitter = result.disableTwitter ?? false;
-  nitterInstance = result.nitterInstance;
   if (result.twitterRedirects)
     redirects = result.twitterRedirects;
 }
@@ -154,9 +138,6 @@ export default {
   getDisableTwitter,
   setDisableTwitter,
 
-  getNitterInstance,
-  setNitterInstance,
-
   redirect,
   isTwitter,
   init,
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index e730c8b8..111eee2c 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -27,13 +27,6 @@ function setDisableWikipedia(val) {
   browser.storage.sync.set({ disableWikipedia })
 }
 
-let wikipediaInstance;
-const getWikipediaInstance = () => wikipediaInstance;
-function setWikipediaInstance(val) {
-  wikipediaInstance = val;
-  browser.storage.sync.set({ wikipediaInstance })
-};
-
 function redirect(url, initiator) {
   if (disableWikipedia) return null;
 
@@ -46,7 +39,7 @@ function redirect(url, initiator) {
       GETArguments.push([args[0], args[1]]);
     }
   }
-  let instance = wikipediaInstance ?? commonHelper.getRandomInstance(redirects.normal)
+  let instance = commonHelper.getRandomInstance(redirects.normal)
   let link = `${instance}${url.pathname}`;
   let urlSplit = url.host.split(".");
   if (urlSplit[0] != "wikipedia" && urlSplit[0] != "www") {
@@ -55,7 +48,7 @@ function redirect(url, initiator) {
     else GETArguments.push(["lang", urlSplit[0]]);
     if (urlSplit[1] == "m")
       GETArguments.push(["mobileaction", "toggle_view_mobile"]);
-    //wikiless doesn't have mobile view support yet
+    // wikiless doesn't have mobile view support yet
   }
   for (let i = 0; i < GETArguments.length; i++)
     link += (i == 0 ? "?" : "&") + GETArguments[i][0] + "=" + GETArguments[i][1];
@@ -76,11 +69,9 @@ function isWikipedia(url) {
 async function init() {
   let result = await browser.storage.sync.get([
     "disableWikipedia",
-    "wikipediaInstance",
     "wikipediaRedirects"
   ]);
   disableWikipedia = result.disableWikipedia ?? false;
-  wikipediaInstance = result.wikipediaInstance;
   if (result.wikipediaRedirects)
     redirects = result.wikipediaRedirects;
 }
@@ -92,9 +83,6 @@ export default {
   setDisableWikipedia,
   getDisableWikipedia,
 
-  setWikipediaInstance,
-  getWikipediaInstance,
-
   redirect,
   isWikipedia,
   init,
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 0ce6b097..b6588808 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -91,14 +91,6 @@ function setDisableYoutube(val) {
   console.log("disableYoutube: ", disableYoutube)
 }
 
-let invidiousInstance;
-const getInvidiousInstance = () => invidiousInstance;
-function setInvidiousInstance(val) {
-  invidiousInstance = val;
-  browser.storage.sync.set({ invidiousInstance })
-  console.log("invidiousInstance: ", invidiousInstance)
-}
-
 let invidiousAlwaysProxy;
 function setInvidiousAlwaysProxy(val) {
   invidiousAlwaysProxy = val;
@@ -208,7 +200,6 @@ async function init() {
       "invidiousTheme",
       "persistInvidiousPrefs",
       "disableYoutube",
-      "invidiousInstance",
       "invidiousOnlyEmbeddedVideo",
       "invidiousVolume",
       "invidiousPlayerStyle",
@@ -219,7 +210,7 @@ async function init() {
       "invidiousRedirectsChecks",
       "invidiousCustomRedirects",
     ]);
-  if (result.youtubeRedirects) redirects = result.youtubeRedirects
+  if (result.youtubeRedirects) redirects = result.youtubeRedirects;
 
   if (result.invidiousRedirectsChecks) invidiousRedirectsChecks = result.invidiousRedirectsChecks;
 
@@ -228,8 +219,6 @@ async function init() {
   frontend = result.youtubeFrontend ?? 'piped';
   disableYoutube = result.disableYoutube ?? false;
 
-  invidiousInstance = result.invidiousInstance;
-
   invidiousAlwaysProxy = result.invidiousAlwaysProxy ?? 'DEFAULT';
   invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo ?? false;
   invidiousVideoQuality = result.invidiousVideoQuality ?? 'DEFAULT';
@@ -240,8 +229,6 @@ async function init() {
   invidiousAutoplay = result.invidiousAutoplay ?? 'DEFAULT';
 
   persistInvidiousPrefs = result.persistInvidiousPrefs ?? false;
-
-
 }
 
 function invidiousInitCookies(tabId) {
@@ -259,7 +246,6 @@ function redirect(url, initiator, type) {
   if (
     initiator &&
     (
-      initiator.origin === invidiousInstance ||
       redirects.invidious.normal.includes(initiator.origin) ||
       redirects.piped.normal.includes(initiator.origin) ||
       targets.includes(initiator.host)
@@ -326,9 +312,6 @@ export default {
   getDisableYoutube,
   setDisableYoutube,
 
-  setInvidiousInstance,
-  getInvidiousInstance,
-
   setInvidiousAlwaysProxy,
   getInvidiousAlwaysProxy,