summaryrefslogtreecommitdiffstats
path: root/pages/options
diff options
context:
space:
mode:
Diffstat (limited to 'pages/options')
-rw-r--r--pages/options/options.html40
-rw-r--r--pages/options/options.js53
2 files changed, 77 insertions, 16 deletions
diff --git a/pages/options/options.html b/pages/options/options.html
index f638fcf..321babe 100644
--- a/pages/options/options.html
+++ b/pages/options/options.html
@@ -12,15 +12,9 @@
<body>
<div class="tab">
- <button class="tablinks" id="generalTab">
- General
- </button>
- <button class="tablinks" id="advancedTab">
- Advanced
- </button>
- <button class="tablinks" id="whitelistTab">
- Whitelist
- </button>
+ <button class="tablinks" id="general-tab">General</button>
+ <button class="tablinks" id="advanced-tab">Advanced</button>
+ <button class="tablinks" id="whitelist-tab">Whitelist</button>
</div>
<div id="general" class="tabcontent">
@@ -70,6 +64,14 @@
<option value="https://nitter.nixnet.xyz">
<option value="https://nitter.13ad.de">
<option value="https://tw.openalgeria.org">
+ <option value="https://nitter.pussthecat.org">
+ <option value="https://nitter.mastodont.cat">
+ <option value="https://nitter.dark.fail">
+ <option value="https://nitter.tedomum.net">
+ <option value="https://t.maisputain.ovh">
+ <option value="http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion">
+ <option value="http://nitter.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd.onion">
+ <option value="http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion">
</datalist>
<h1>Invidious Instance</h1>
<input id="invidious-instance" list="invidious-instances-list" type="url" placeholder="https://invidio.us">
@@ -78,9 +80,16 @@
<option value="https://invidious.snopyta.org">
<option value="https://invidiou.sh">
<option value="https://yewtu.be">
- <option value="https://invidious.zapashcanon.fr">
+ <option value="https://yt.maisputain.ovh">
<option value="https://invidious.toot.koeln">
<option value="https://invidious.ggc-project.de">
+ <option value="https://invidious.toot.koeln">
+ <option value="http://kgg2m7yk5aybusll.onion">
+ <option value="http://axqzx4s6s54s32yentfqojs3x5i7faxza6xo3ehd4bzzsg2ii4fv2iid.onion">
+ <option value="http://fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad.onion">
+ <option value="http://qklhadlycap4cnod.onion">
+ <option value="http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion">
+ <option value="http://mfqczy4mysscub2s.onion">
</datalist>
<h1>Bibliogram Instance</h1>
<input id="bibliogram-instance" list="bibliogram-instance-list" type="url" placeholder="https://bibliogram.art">
@@ -88,6 +97,8 @@
<option value="https://bibliogram.art">
<option value="https://bibliogram.snopyta.org">
<option value="https://bibliogram.pussthecat.org">
+ <option value="https://insta.maisputain.ovh">
+ <option value="https://bibliogram.nixnet.services">
</datalist>
<h1>OpenStreetMap Instance</h1>
<input id="osm-instance" list="osm-instance-list" type="url" placeholder="https://openstreetmap.org">
@@ -137,7 +148,14 @@
</div>
<div id="whitelist" class="tabcontent">
-
+ <section class="options settings_block">
+ <h1>Whitelisted Sites</h1>
+ <div class="whitelist">
+ <input id="new-whitelist-item" type="text" placeholder="URL (RegExp accepted)">
+ <button id="add-to-whitelist">Add to Whitelist</button>
+ </div>
+ </section>
+ <ul id="whitelist-items"></ul>
</div>
<script src="./options.js"></script>
diff --git a/pages/options/options.js b/pages/options/options.js
index d702eb8..821d6ed 100644
--- a/pages/options/options.js
+++ b/pages/options/options.js
@@ -12,9 +12,26 @@ 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 whitelist;
window.browser = window.browser || window.chrome;
+function prependWhitelistItem(item, index) {
+ const li = document.createElement('li');
+ li.appendChild(document.createTextNode(item.toString()));
+ const button = document.createElement('button');
+ button.appendChild(document.createTextNode('X'));
+ button.addEventListener('click', () => {
+ li.remove();
+ whitelist.splice(index, 1);
+ browser.storage.sync.set({
+ whitelist: whitelist
+ });
+ });
+ li.appendChild(button);
+ document.getElementById('whitelist-items').prepend(li);
+}
+
browser.storage.sync.get(
[
'nitterInstance',
@@ -28,7 +45,8 @@ browser.storage.sync.get(
'alwaysProxy',
'onlyEmbeddedVideo',
'videoQuality',
- 'removeTwitterSW'
+ 'removeTwitterSW',
+ 'whitelist'
],
result => {
nitterInstance.value = result.nitterInstance || '';
@@ -43,6 +61,8 @@ browser.storage.sync.get(
onlyEmbeddedVideo.checked = result.onlyEmbeddedVideo;
videoQuality.value = result.videoQuality || '';
removeTwitterSW.checked = !result.removeTwitterSW;
+ whitelist = result.whitelist || [];
+ whitelist.forEach(prependWhitelistItem);
}
);
@@ -60,17 +80,40 @@ function openTab(tab, event) {
event.currentTarget.className += ' active';
}
-document.getElementById('generalTab').addEventListener(
+document.getElementById('general-tab').addEventListener(
'click', openTab.bind(null, 'general')
);
-document.getElementById('advancedTab').addEventListener(
+document.getElementById('advanced-tab').addEventListener(
'click', openTab.bind(null, 'advanced')
);
-document.getElementById('whitelistTab').addEventListener(
+document.getElementById('whitelist-tab').addEventListener(
'click', openTab.bind(null, 'whitelist')
);
-document.getElementById('generalTab').click();
+document.getElementById('general-tab').click();
+
+function addToWhitelist() {
+ const input = document.getElementById('new-whitelist-item');
+ if (input.value) {
+ try {
+ new RegExp(input.value);
+ const index = whitelist.push(input.value);
+ prependWhitelistItem(input.value, index);
+ browser.storage.sync.set({
+ whitelist: whitelist
+ });
+ input.value = '';
+ } catch (error) {
+ input.setCustomValidity('Invalid RegExp');
+ }
+ } else {
+ input.setCustomValidity('Invalid RegExp');
+ }
+}
+
+document.getElementById('add-to-whitelist').addEventListener(
+ 'click', addToWhitelist
+);
function debounce(func, wait, immediate) {
let timeout;