diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/assets/javascripts/helpers/reddit.js | 41 | ||||
-rw-r--r-- | src/pages/background/background.js | 2 | ||||
-rw-r--r-- | src/pages/options/reddit/reddit.html | 5 | ||||
-rw-r--r-- | src/pages/options/reddit/reddit.js | 6 |
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; |