diff options
Diffstat (limited to 'background.js')
-rw-r--r-- | background.js | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/background.js b/background.js index 1e236228..9fa766c1 100644 --- a/background.js +++ b/background.js @@ -50,6 +50,7 @@ const invidiousInstances = [ "https://invidiou.site", "https://vid.mint.lgbt", "https://invidious.site", + "https://yewtu.be", "http://fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad.onion", "http://qklhadlycap4cnod.onion", "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion", @@ -109,8 +110,10 @@ const redditDomains = [ ]; const redditBypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/; const oldRedditViews = [ + "https://teddit.net", // privacy + "https://snew.notabug.io", // anti-censorship "https://old.reddit.com", // desktop - "https://i.reddit.com", // mobile + "https://i.reddit.com" // mobile ]; const oldRedditDefaultView = oldRedditViews[0]; const googleMapsRegex = /https?:\/\/(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/; @@ -129,12 +132,20 @@ const layers = { traffic: "S", // not implemented on OSM, default to standard. bicycling: "C", }; +const googleSearchRegex = /https?:\/\/(((www|maps)\.)?(google\.).*(\/search)|search\.(google\.).*)/; +const privateSearchEngine = [ + { link: "https://duckduckgo.com", q: "/" }, + { link: "https://startpage.com", q: "/search/" }, + { link: "https://www.qwant.com", q: "/" }, + { link: "https://www.mojeek.com", q: "/search" }, +]; let disableNitter; let disableInvidious; let disableBibliogram; let disableOsm; let disableOldReddit; +let disableSearchEngine; let nitterInstance; let invidiousInstance; let bibliogramInstance; @@ -172,6 +183,7 @@ browser.storage.sync.get( "disableBibliogram", "disableOsm", "disableOldReddit", + "disableSearchEngine", "alwaysProxy", "onlyEmbeddedVideo", "videoQuality", @@ -192,6 +204,7 @@ browser.storage.sync.get( disableBibliogram = result.disableBibliogram; disableOsm = result.disableOsm; disableOldReddit = result.disableOldReddit; + disableSearchEngine = result.disableSearchEngine; nitterInstance = result.nitterInstance; invidiousInstance = result.invidiousInstance; bibliogramInstance = result.bibliogramInstance; @@ -254,6 +267,9 @@ browser.storage.onChanged.addListener((changes) => { if ("disableOldReddit" in changes) { disableOldReddit = changes.disableOldReddit.newValue; } + if ("disableSearchEngine" in changes) { + disableSearchEngine = changes.disableSearchEngine.newValue; + } if ("alwaysProxy" in changes) { alwaysProxy = changes.alwaysProxy.newValue; } @@ -569,6 +585,23 @@ function redirectReddit(url, initiator, type) { return `${oldRedditView}${url.pathname}${url.search}`; } +function redirectSearchEngine(url, initiator) { + if (disableSearchEngine || isException(url, initiator)) { + return null; + } + + let searchEngine = getRandomInstance(privateSearchEngine); + let search = ""; + url.search + .slice(1) + .split("&") + .forEach(function (input) { + if (input.startsWith("q=")) search = input; + }); + console.log("search: ", search); + return `${searchEngine.link}${searchEngine.q}?${search}`; +} + browser.webRequest.onBeforeRequest.addListener( (details) => { const url = new URL(details.url); @@ -602,6 +635,10 @@ browser.webRequest.onBeforeRequest.addListener( redirect = { redirectUrl: redirectReddit(url, initiator, details.type), }; + } else if (url.href.match(googleSearchRegex)) { + redirect = { + redirectUrl: redirectSearchEngine(url, initiator), + }; } if (redirect && redirect.redirectUrl) { console.info( |