about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-21 23:44:42 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-21 23:44:42 +0300
commit0caf8992393b84006948aee8de1e303d978a2a8e (patch)
treecc5dffb41ecaa1b19fda7a800edf23edc40e60b7 /src/assets
parentBump version to 1.4.1 (diff)
downloadlibredirect-0caf8992393b84006948aee8de1e303d978a2a8e.zip
Added reddit tor support #32
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/common.js3
-rw-r--r--src/assets/javascripts/helpers/reddit.js204
-rw-r--r--src/assets/javascripts/helpers/search.js2
3 files changed, 143 insertions, 66 deletions
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index 5f9e14df..34539e69 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -7,9 +7,6 @@ import redditHelper from "./reddit.js";
 import searchHelper from "./search.js";
 import translateHelper from "./translate.js";
 import wikipediaHelper from "./wikipedia.js";
-import mapsHelper from "./maps.js";
-import medium from "./medium.js";
-
 
 function getRandomInstance(instances) {
   return instances[~~(instances.length * Math.random())];
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 27fec5d2..08b3e528 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -17,44 +17,29 @@ let redirects = {
     "normal": [
       "https://libredd.it",
       "https://libreddit.spike.codes",
-      "https://libreddit.kavin.rocks",
-      "https://libreddit.insanity.wtf",
       "https://libreddit.dothq.co",
+      "https://libreddit.kavin.rocks",
+      "https://libreddit.bcow.xyz",
+      "https://libreddit.40two.app",
+      "https://reddit.invak.id",
+      "https://reddit.phii.me",
+      "https://lr.riverside.rocks",
       "https://libreddit.silkky.cloud",
-      "https://reddit.artemislena.eu",
-      "https://reddit.git-bruh.duckdns.org",
+      "https://libreddit.database.red",
+      "https://libreddit.exonip.de",
+      "https://libreddit.domain.glass",
+    ],
+    "tor": [
+      "http://spjmllawtheisznfs7uryhxumin26ssv2draj7oope3ok3wuhy43eoyd.onion",
+      "http://fwhhsbrbltmrct5hshrnqlqygqvcgmnek3cnka55zj4y7nuus5muwyyd.onion",
+      "http://dflv6yjt7il3n3tggf4qhcmkzbti2ppytqx3o7pjrzwgntutpewscyid.onion",
+      "http://kphht2jcflojtqte4b4kyx7p2ahagv4debjj32nre67dxz7y57seqwyd.onion",
     ]
   },
   // old UI
   "teddit": {
-    "normal": [
-      "https://teddit.net",
-      "https://teddit.ggc-project.de",
-      "https://teddit.kavin.rocks",
-      "https://teddit.zaggy.nl",
-      "https://teddit.namazso.eu",
-      "https://teddit.nautolan.racing",
-      "https://teddit.tinfoil-hat.net",
-      "https://teddit.domain.glass",
-      "https://snoo.ioens.is",
-      "https://teddit.httpjames.space",
-      "https://teddit.alefvanoon.xyz",
-      "https://incogsnoo.com",
-      "https://teddit.pussthecat.org",
-      "https://reddit.lol",
-      "https://teddit.sethforprivacy.com",
-      "https://teddit.totaldarkness.net",
-      "https://teddit.adminforge.de",
-      "https://teddit.bus-hit.me"
-    ],
-    "tor": [
-      "http://teddit4w6cmzmj5kimhfcavs7yo5s7alszvsi2khqutqtlaanpcftfyd.onion",
-      "http://snoo.ioensistjs7wd746zluwixvojbbkxhr37lepdvwtdfeav673o64iflqd.onion",
-      "http://ibarajztopxnuhabfu7fg6gbudynxofbnmvis3ltj6lfx47b6fhrd5qd.onion",
-      "http://tedditfyn6idalzso5wam5qd3kdtxoljjhbrbbx34q2xkcisvshuytad.onion",
-      "http://dawtyi5e2cfyfmoht4izmczi42aa2zwh6wi34zwvc6rzf2acpxhrcrad.onion",
-      "http://qtpvyiaqhmwccxwzsqubd23xhmmrt75tdyw35kp43w4hvamsgl3x27ad.onion"
-    ]
+    "normal": [],
+    "tor": []
   },
   "desktop": "https://old.reddit.com", // desktop
   "mobile": "https://i.reddit.com", // mobile
@@ -63,10 +48,12 @@ const getRedirects = () => redirects;
 const getCustomRedirects = function () {
   return {
     "libreddit": {
-      "normal": [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects]
+      "normal": [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects],
+      "tor": [...libredditTorRedirectsChecks, ...libredditTorCustomRedirects]
     },
     "teddit": {
-      "normal": [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects]
+      "normal": [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects],
+      "tor": [...tedditTorRedirectsChecks, ...tedditTorCustomRedirects]
     }
   };
 };
@@ -81,6 +68,13 @@ function setLibredditRedirects(val) {
       if (index !== -1) libredditNormalRedirectsChecks.splice(index, 1);
     }
   setLibredditNormalRedirectsChecks(libredditNormalRedirectsChecks);
+
+  for (const item of libredditTorRedirectsChecks)
+    if (!redirects.libreddit.normal.includes(item)) {
+      var index = libredditTorRedirectsChecks.indexOf(item);
+      if (index !== -1) libredditTorRedirectsChecks.splice(index, 1);
+    }
+  setLibredditTorRedirectsChecks(libredditTorRedirectsChecks);
 }
 
 function setTedditRedirects(val) {
@@ -93,8 +87,14 @@ function setTedditRedirects(val) {
       if (index !== -1) tedditNormalRedirectsChecks.splice(index, 1);
     }
   setTedditNormalRedirectsChecks(tedditNormalRedirectsChecks);
-}
 
+  for (const item of tedditTorRedirectsChecks)
+    if (!redirects.teddit.normal.includes(item)) {
+      var index = tedditTorRedirectsChecks.indexOf(item);
+      if (index !== -1) tedditTorRedirectsChecks.splice(index, 1);
+    }
+  setTedditTorRedirectsChecks(tedditTorRedirectsChecks);
+}
 
 let libredditNormalRedirectsChecks;
 const getLibredditNormalRedirectsChecks = () => libredditNormalRedirectsChecks;
@@ -104,6 +104,14 @@ function setLibredditNormalRedirectsChecks(val) {
   console.log("libredditNormalRedirectsChecks: ", val)
 }
 
+let libredditTorRedirectsChecks;
+const getLibredditTorRedirectsChecks = () => libredditTorRedirectsChecks;
+function setLibredditTorRedirectsChecks(val) {
+  libredditTorRedirectsChecks = val;
+  browser.storage.local.set({ libredditTorRedirectsChecks })
+  console.log("libredditTorRedirectsChecks: ", val)
+}
+
 let libredditNormalCustomRedirects = [];
 const getLibredditNormalCustomRedirects = () => libredditNormalCustomRedirects;
 function setLibredditNormalCustomRedirects(val) {
@@ -112,6 +120,14 @@ function setLibredditNormalCustomRedirects(val) {
   console.log("libredditNormalCustomRedirects: ", val)
 }
 
+let libredditTorCustomRedirects = [];
+const getLibredditTorCustomRedirects = () => libredditTorCustomRedirects;
+function setLibredditTorCustomRedirects(val) {
+  libredditTorCustomRedirects = val;
+  browser.storage.local.set({ libredditTorCustomRedirects })
+  console.log("libredditTorCustomRedirects: ", val)
+}
+
 let tedditNormalRedirectsChecks;
 const getTedditNormalRedirectsChecks = () => tedditNormalRedirectsChecks;
 function setTedditNormalRedirectsChecks(val) {
@@ -120,6 +136,14 @@ function setTedditNormalRedirectsChecks(val) {
   console.log("tedditNormalRedirectsChecks: ", val)
 }
 
+let tedditTorRedirectsChecks;
+const getTedditTorRedirectsChecks = () => tedditTorRedirectsChecks;
+function setTedditTorRedirectsChecks(val) {
+  tedditTorRedirectsChecks = val;
+  browser.storage.local.set({ tedditTorRedirectsChecks })
+  console.log("tedditTorRedirectsChecks: ", val)
+}
+
 let tedditNormalCustomRedirects = [];
 const getTedditNormalCustomRedirects = () => tedditNormalCustomRedirects;
 function setTedditNormalCustomRedirects(val) {
@@ -128,6 +152,14 @@ function setTedditNormalCustomRedirects(val) {
   console.log("tedditNormalCustomRedirects: ", val)
 }
 
+let tedditTorCustomRedirects = [];
+const getTedditTorCustomRedirects = () => tedditTorCustomRedirects;
+function setTedditTorCustomRedirects(val) {
+  tedditTorCustomRedirects = val;
+  browser.storage.local.set({ tedditTorCustomRedirects })
+  console.log("tedditTorCustomRedirects: ", val)
+}
+
 const bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/;
 
 let disableReddit;
@@ -144,6 +176,15 @@ function setRedditFrontend(val) {
   browser.storage.local.set({ redditFrontend })
 };
 
+let protocol;
+const getprotocol = () => protocol;
+function setProtocol(val) {
+  protocol = val;
+  browser.storage.local.set({ redditProtocol: val })
+  console.log("redditProtocol: ", val)
+}
+
+
 function isReddit(url, initiator) {
   if (
     initiator &&
@@ -161,8 +202,15 @@ function redirect(url, type) {
 
   if (type !== "main_frame" || url.pathname.match(bypassPaths)) return null;
 
-  let libredditInstancesList = [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects];
-  let tedditInstancesList = [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects];
+  let libredditInstancesList;
+  let tedditInstancesList;
+  if (protocol == 'normal') {
+    libredditInstancesList = [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects];
+    tedditInstancesList = [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects];
+  } else if (protocol == 'tor') {
+    libredditInstancesList = [...libredditTorRedirectsChecks, ...libredditTorCustomRedirects];
+    tedditInstancesList = [...tedditTorRedirectsChecks, ...tedditTorCustomRedirects];
+  }
 
   if (url.host === "i.redd.it") {
     if (libredditInstancesList.length === 0) return null;
@@ -207,31 +255,52 @@ function redirect(url, type) {
 
 async function init() {
   return new Promise((resolve) => {
-    browser.storage.local.get(
-      [
-        "disableReddit",
-        "redditFrontend",
-        "redditRedirects",
-        "libredditNormalRedirectsChecks",
-        "libredditNormalCustomRedirects",
-        "tedditNormalRedirectsChecks",
-        "tedditNormalCustomRedirects",
-      ], (result) => {
-        disableReddit = result.disableReddit ?? false;
-        redditFrontend = result.redditFrontend ?? 'libreddit';
-        if (result.redditRedirects)
-          redirects = result.redditRedirects;
-
-        libredditNormalRedirectsChecks = result.libredditNormalRedirectsChecks ?? [...redirects.libreddit.normal];
-        libredditNormalCustomRedirects = result.libredditNormalCustomRedirects ?? [];
-
-        tedditNormalRedirectsChecks = result.tedditNormalRedirectsChecks ?? [...redirects.teddit.normal];
-        tedditNormalCustomRedirects = result.tedditNormalCustomRedirects ?? [];
-
-        resolve();
-      }
-    )
-  })
+    fetch('/instances/data.json').then(response => response.text()).then(data => {
+      let dataJson = JSON.parse(data);
+      browser.storage.local.get(
+        [
+          "disableReddit",
+          "redditFrontend",
+          "redditRedirects",
+
+          "libredditNormalRedirectsChecks",
+          "libredditNormalCustomRedirects",
+          "libredditTorRedirectsChecks",
+          "libredditTorCustomRedirects",
+
+          "tedditNormalRedirectsChecks",
+          "tedditNormalCustomRedirects",
+          "tedditTorRedirectsChecks",
+          "tedditTorCustomRedirects",
+
+          "redditProtocol",
+        ], (result) => {
+          disableReddit = result.disableReddit ?? false;
+          protocol = result.redditProtocol ?? 'normal';
+          redditFrontend = result.redditFrontend ?? 'libreddit';
+
+          redirects.teddit = dataJson.teddit;
+          if (result.redditRedirects) redirects = result.redditRedirects;
+
+          if (result.redditRedirects) redirects = result.redditRedirects;
+
+          libredditNormalRedirectsChecks = result.libredditNormalRedirectsChecks ?? [...redirects.libreddit.normal];
+          libredditNormalCustomRedirects = result.libredditNormalCustomRedirects ?? [];
+
+          libredditTorRedirectsChecks = result.libredditTorRedirectsChecks ?? [...redirects.libreddit.tor];
+          libredditTorCustomRedirects = result.libredditTorCustomRedirects ?? [];
+
+          tedditNormalRedirectsChecks = result.tedditNormalRedirectsChecks ?? [...redirects.teddit.normal];
+          tedditNormalCustomRedirects = result.tedditNormalCustomRedirects ?? [];
+
+          tedditTorRedirectsChecks = result.tedditTorRedirectsChecks ?? [...redirects.teddit.tor];
+          tedditTorCustomRedirects = result.tedditTorCustomRedirects ?? [];
+
+          resolve();
+        }
+      );
+    });
+  });
 }
 
 export default {
@@ -247,17 +316,28 @@ export default {
   getRedditFrontend,
   setRedditFrontend,
 
+  getprotocol,
+  setProtocol,
+
   getLibredditNormalRedirectsChecks,
   setLibredditNormalRedirectsChecks,
+  getLibredditTorRedirectsChecks,
+  setLibredditTorRedirectsChecks,
 
   getLibredditNormalCustomRedirects,
   setLibredditNormalCustomRedirects,
+  getLibredditTorCustomRedirects,
+  setLibredditTorCustomRedirects,
 
   getTedditNormalRedirectsChecks,
   setTedditNormalRedirectsChecks,
+  getTedditTorRedirectsChecks,
+  setTedditTorRedirectsChecks,
 
   getTedditNormalCustomRedirects,
   setTedditNormalCustomRedirects,
+  getTedditTorCustomRedirects,
+  setTedditTorCustomRedirects,
 
   redirect,
   isReddit,
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index 07bb20b4..caa0399f 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -153,7 +153,7 @@ function setProtocol(val) {
   console.log("searchProtocol: ", val)
 }
 
-function isSearch(url, initiator) {
+function isSearch(url) {
   if (disable) return false;
   return targets.some((rx) => rx.test(url.href));
 }