diff options
author | Simon Brazell <simon.brazell@gmail.com> | 2019-10-07 22:59:31 +1100 |
---|---|---|
committer | Simon Brazell <simon.brazell@gmail.com> | 2019-10-07 22:59:31 +1100 |
commit | 7249afb8ed86690f9ab7ce0b4bdd604f2c41c291 (patch) | |
tree | d495be3bdbe5d580253eecc1e4c4ebdeb876ddde /background.js | |
parent | Add popup & options pages (diff) | |
download | libredirect-7249afb8ed86690f9ab7ce0b4bdd604f2c41c291.zip |
Complete options & popup menus
Diffstat (limited to 'background.js')
-rw-r--r-- | background.js | 59 |
1 files changed, 48 insertions, 11 deletions
diff --git a/background.js b/background.js index 2fb698f1..d5c8346a 100644 --- a/background.js +++ b/background.js @@ -1,19 +1,56 @@ -const nitter = "https://nitter.net"; -const invidious = "https://invidio.us"; -const youtubeRegex = /((www|m)\.)?youtube(-nocookie)?\.com/ +'use strict'; + +const nitterDefault = 'https://nitter.net'; +const invidiousDefault = 'https://invidio.us'; +const youtubeRegex = /((www|m)\.)?youtube(-nocookie)?\.com/; +const pathRegex = /^https?:\/\/[^\/]+([\S\s]*)/; + +let nitterInstance; +let invidiousInstance; +let disableNitter; +let disableInvidious; + +chrome.storage.sync.get( + ['disableNitter', 'disableInvidious', 'nitterInstance', 'invidiousInstance'], + (result) => { + disableNitter = result.disableNitter; + disableInvidious = result.disableInvidious; + nitterInstance = result.nitterInstance || nitterDefault; + invidiousInstance = result.invidiousInstance || invidiousDefault; + } +); + +chrome.storage.onChanged.addListener(function (changes) { + if ('nitterInstance' in changes) { + nitterInstance = changes.nitterInstance.newValue || nitterDefault; + } + if ('invidiousInstance' in changes) { + invidiousInstance = changes.invidiousInstance.newValue || invidiousDefault; + } + if ('disableNitter' in changes) { + disableNitter = changes.disableNitter.newValue; + } + if ('disableInvidious' in changes) { + disableInvidious = changes.disableInvidious.newValue; + } +}); chrome.webRequest.onBeforeRequest.addListener( function (details) { if (details.url.match(youtubeRegex)) { - return { - redirectUrl: - invidious + details.url.match(/^https?:\/\/[^\/]+([\S\s]*)/)[1] - }; + if (!disableInvidious) { + return { + redirectUrl: + invidiousInstance + details.url.match(pathRegex)[1] + }; + } } else { - return { - redirectUrl: - nitter + details.url.match(/^https?:\/\/[^\/]+([\S\s]*)/)[1] - }; + if (!disableNitter) { + return { + redirectUrl: + nitterInstance + details.url.match(pathRegex)[1] + }; + } } }, { |