summaryrefslogtreecommitdiffstats
path: root/background.js
diff options
context:
space:
mode:
Diffstat (limited to 'background.js')
-rw-r--r--background.js59
1 files changed, 48 insertions, 11 deletions
diff --git a/background.js b/background.js
index 2fb698f..d5c8346 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]
+ };
+ }
}
},
{