about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-26 18:28:19 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-26 18:28:19 +0300
commit3246d6fd69804474568e4d5d41b10333cf8f78e1 (patch)
tree830504e56819a725bbd42cd89109d533c0b93b2e /src
parentAdded bypass to WatchOnYoutube and made invidious as default #56 (diff)
downloadlibredirect-3246d6fd69804474568e4d5d41b10333cf8f78e1.zip
Added bypass on reddit option
Diffstat (limited to 'src')
-rw-r--r--src/assets/javascripts/helpers/reddit.js41
-rw-r--r--src/pages/background/background.js2
-rw-r--r--src/pages/options/reddit/reddit.html5
-rw-r--r--src/pages/options/reddit/reddit.js6
4 files changed, 45 insertions, 9 deletions
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index d04588e4..deb9fd5b 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -184,20 +184,39 @@ function setProtocol(val) {
   console.log("redditProtocol: ", val)
 }
 
-function isReddit(url, initiator) {
+function isReddit(url,) {
+
+}
+
+let bypassWatchOnReddit;
+const getBypassWatchOnReddit = () => bypassWatchOnReddit;
+function setBypassWatchOnReddit(val) {
+  bypassWatchOnReddit = val;
+  browser.storage.local.set({ bypassWatchOnReddit })
+  console.log("bypassWatchOnReddit: ", bypassWatchOnReddit)
+}
+
+function redirect(url, type, initiator) {
+  if (disableReddit) return null;
+
   if (
+    bypassWatchOnReddit &&
     initiator &&
     (
-      [...redirects.libreddit.normal, ...libredditNormalCustomRedirects].includes(initiator.origin) ||
-      [...redirects.teddit.normal, ...tedditNormalCustomRedirects].includes(initiator.origin) ||
+      [...redirects.libreddit.normal,
+      ...redirects.libreddit.tor,
+      ...libredditNormalCustomRedirects,
+      ...libredditTorCustomRedirects,
+      ...redirects.teddit.normal,
+      ...redirects.teddit.tor,
+      ...tedditNormalCustomRedirects,
+      ...tedditTorCustomRedirects,
+      ].includes(initiator.origin) ||
       targets.includes(initiator.host)
     )
-  ) return false;
-  return targets.includes(url.host)
-}
+  ) return 'BYBASSTAB';
 
-function redirect(url, type) {
-  if (disableReddit) return null;
+  if ((!targets.includes(url.host))) return null;
 
   if (type !== "main_frame" || url.pathname.match(bypassPaths)) return null;
 
@@ -314,11 +333,14 @@ async function init() {
           "tedditTorCustomRedirects",
 
           "redditProtocol",
+          "bypassWatchOnReddit",
         ], (result) => {
           disableReddit = result.disableReddit ?? false;
           protocol = result.redditProtocol ?? 'normal';
           frontend = result.redditFrontend ?? 'libreddit';
 
+          bypassWatchOnReddit = result.bypassWatchOnReddit ?? true;
+
           redirects.teddit = dataJson.teddit;
           if (result.redditRedirects) redirects = result.redditRedirects;
 
@@ -359,6 +381,9 @@ export default {
   getProtocol,
   setProtocol,
 
+  getBypassWatchOnReddit,
+  setBypassWatchOnReddit,
+
   getLibredditNormalRedirectsChecks,
   setLibredditNormalRedirectsChecks,
   getLibredditTorRedirectsChecks,
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 1ae7be17..0207321b 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -60,7 +60,7 @@ browser.webRequest.onBeforeRequest.addListener(
 
     if (mapsHelper.isMaps(url, initiator)) newUrl = mapsHelper.redirect(url);
 
-    if (redditHelper.isReddit(url, initiator)) newUrl = redditHelper.redirect(url, details.type);
+    if (!newUrl) newUrl = redditHelper.redirect(url, details.type, initiator);
 
     if (mediumHelper.isMedium(url, initiator)) newUrl = mediumHelper.redirect(url, details.type);
 
diff --git a/src/pages/options/reddit/reddit.html b/src/pages/options/reddit/reddit.html
index 7b232688..63d7647d 100644
--- a/src/pages/options/reddit/reddit.html
+++ b/src/pages/options/reddit/reddit.html
@@ -136,6 +136,11 @@
       </select>
     </div>
 
+    <div class="some-block option-block">
+      <h4>Bypass Watch On Reddit</h4>
+      <input id="bypass-watch-on-reddit" type="checkbox" checked />
+    </div>
+
     <hr>
 
     <div id="libreddit">
diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js
index a47576d4..8e435675 100644
--- a/src/pages/options/reddit/reddit.js
+++ b/src/pages/options/reddit/reddit.js
@@ -61,8 +61,14 @@ function changeProtocolSettings(protocol) {
     }
 }
 
+let bypassWatchOnRedditElement = document.getElementById("bypass-watch-on-reddit")
+bypassWatchOnRedditElement.addEventListener("change",
+    event => redditHelper.setBypassWatchOnReddit(event.target.checked)
+);
+
 redditHelper.init().then(() => {
     disableRedditElement.checked = !redditHelper.getDisableReddit();
+    bypassWatchOnRedditElement.checked = redditHelper.getBypassWatchOnReddit();
 
     let frontend = redditHelper.getFrontend();
     redditFrontendElement.value = frontend;