summaryrefslogtreecommitdiffstats
path: root/pages/options/options.js
diff options
context:
space:
mode:
Diffstat (limited to 'pages/options/options.js')
-rw-r--r--pages/options/options.js42
1 files changed, 37 insertions, 5 deletions
diff --git a/pages/options/options.js b/pages/options/options.js
index 821d6ed..5e25a49 100644
--- a/pages/options/options.js
+++ b/pages/options/options.js
@@ -12,6 +12,8 @@ let alwaysProxy = document.getElementById('always-proxy');
let onlyEmbeddedVideo = document.getElementById('only-embed');
let videoQuality = document.getElementById('video-quality');
let removeTwitterSW = document.getElementById('remove-twitter-sw');
+let invidiousDarkMode = document.getElementById('invidious-dark-mode');
+let persistInvidiousPrefs = document.getElementById('persist-invidious-prefs');
let whitelist;
window.browser = window.browser || window.chrome;
@@ -46,7 +48,9 @@ browser.storage.sync.get(
'onlyEmbeddedVideo',
'videoQuality',
'removeTwitterSW',
- 'whitelist'
+ 'whitelist',
+ 'invidiousDarkMode',
+ 'persistInvidiousPrefs'
],
result => {
nitterInstance.value = result.nitterInstance || '';
@@ -61,6 +65,8 @@ browser.storage.sync.get(
onlyEmbeddedVideo.checked = result.onlyEmbeddedVideo;
videoQuality.value = result.videoQuality || '';
removeTwitterSW.checked = !result.removeTwitterSW;
+ invidiousDarkMode.checked = result.invidiousDarkMode;
+ persistInvidiousPrefs.checked = result.persistInvidiousPrefs;
whitelist = result.whitelist || [];
whitelist.forEach(prependWhitelistItem);
}
@@ -130,10 +136,28 @@ function debounce(func, wait, immediate) {
};
};
+function parseURL(urlString) {
+ if (urlString) {
+ try {
+ const url = new URL(urlString);
+ if (url.username && url.password) {
+ return `${url.protocol}//${url.username}:${url.password}@${url.host}`
+ } else {
+ return url.origin;
+ }
+ } catch (error) {
+ console.log(error);
+ return '';
+ }
+ } else {
+ return '';
+ }
+}
+
let nitterInstanceChange = debounce(() => {
if (nitterInstance.checkValidity()) {
browser.storage.sync.set({
- nitterInstance: nitterInstance.value ? new URL(nitterInstance.value).origin : ''
+ nitterInstance: parseURL(nitterInstance.value)
});
}
}, 500);
@@ -142,7 +166,7 @@ nitterInstance.addEventListener('input', nitterInstanceChange);
let invidiousInstanceChange = debounce(() => {
if (invidiousInstance.checkValidity()) {
browser.storage.sync.set({
- invidiousInstance: invidiousInstance.value ? new URL(invidiousInstance.value).origin : ''
+ invidiousInstance: parseURL(invidiousInstance.value)
});
}
}, 500);
@@ -151,7 +175,7 @@ invidiousInstance.addEventListener('input', invidiousInstanceChange);
let bibliogramInstanceChange = debounce(() => {
if (bibliogramInstance.checkValidity()) {
browser.storage.sync.set({
- bibliogramInstance: bibliogramInstance.value ? new URL(bibliogramInstance.value).origin : ''
+ bibliogramInstance: parseURL(bibliogramInstance.value)
});
}
}, 500);
@@ -160,7 +184,7 @@ bibliogramInstance.addEventListener('input', bibliogramInstanceChange);
let osmInstanceChange = debounce(() => {
if (osmInstance.checkValidity()) {
browser.storage.sync.set({
- osmInstance: osmInstance.value ? new URL(osmInstance.value).origin : ''
+ osmInstance: parseURL(osmInstance.value)
});
}
}, 500);
@@ -199,3 +223,11 @@ videoQuality.addEventListener('change', event => {
removeTwitterSW.addEventListener('change', event => {
browser.storage.sync.set({ removeTwitterSW: !event.target.checked });
});
+
+invidiousDarkMode.addEventListener('change', event => {
+ browser.storage.sync.set({ invidiousDarkMode: event.target.checked });
+});
+
+persistInvidiousPrefs.addEventListener('change', event => {
+ browser.storage.sync.set({ persistInvidiousPrefs: event.target.checked });
+});