aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/_locales/de/messages.json2
-rw-r--r--src/_locales/es/messages.json2
-rw-r--r--src/_locales/fr/messages.json2
-rw-r--r--src/_locales/it/messages.json2
-rw-r--r--src/_locales/pl/messages.json2
-rw-r--r--src/_locales/ru/messages.json2
-rw-r--r--src/_locales/tr/messages.json2
-rw-r--r--src/_locales/zh_CN/messages.json2
-rw-r--r--src/assets/images/chevron-down.svg2
-rw-r--r--src/assets/images/icon128.pngbin1773 -> 0 bytes
-rw-r--r--src/assets/images/icon16.pngbin709 -> 0 bytes
-rw-r--r--src/assets/images/icon32.pngbin1162 -> 0 bytes
-rw-r--r--src/assets/images/icon48.pngbin690 -> 0 bytes
-rw-r--r--src/assets/images/logo-small.pngbin14128 -> 0 bytes
-rw-r--r--src/assets/images/logo-store.pngbin89803 -> 0 bytes
-rw-r--r--src/assets/images/logo-tile.pngbin14751 -> 0 bytes
-rw-r--r--src/assets/images/logo.pngbin16364 -> 0 bytes
-rw-r--r--src/pages/options/options.html949
-rw-r--r--src/pages/options/options.js58
-rw-r--r--src/pages/popup/popup.html356
-rw-r--r--src/pages/popup/popup.js6
-rw-r--r--src/pages/stylesheets/styles.css (renamed from src/assets/stylesheets/styles.css)223
22 files changed, 569 insertions, 1041 deletions
diff --git a/src/_locales/de/messages.json b/src/_locales/de/messages.json
index 431ed1d4..4a63b5f4 100644
--- a/src/_locales/de/messages.json
+++ b/src/_locales/de/messages.json
@@ -1,6 +1,6 @@
{
"extensionName": {
- "message": "Privacy Redirect",
+ "message": "LibRedirect",
"description": "Name of the extension."
},
"extensionDescription": {
diff --git a/src/_locales/es/messages.json b/src/_locales/es/messages.json
index 128ee823..68da2d1e 100644
--- a/src/_locales/es/messages.json
+++ b/src/_locales/es/messages.json
@@ -1,6 +1,6 @@
{
"extensionName": {
- "message": "Privacy Redirect",
+ "message": "LibRedirect",
"description": "Nombre de la extensión."
},
"extensionDescription": {
diff --git a/src/_locales/fr/messages.json b/src/_locales/fr/messages.json
index 7b66ab42..8ff43ae5 100644
--- a/src/_locales/fr/messages.json
+++ b/src/_locales/fr/messages.json
@@ -1,6 +1,6 @@
{
"extensionName": {
- "message": "Privacy Redirect",
+ "message": "LibRedirect",
"description": "Nom du module complémentaire."
},
"extensionDescription": {
diff --git a/src/_locales/it/messages.json b/src/_locales/it/messages.json
index 69996c5a..46bbb084 100644
--- a/src/_locales/it/messages.json
+++ b/src/_locales/it/messages.json
@@ -1,6 +1,6 @@
{
"extensionName": {
- "message": "Privacy Redirect",
+ "message": "LibRedirect",
"description": "Name of the extension."
},
"extensionDescription": {
diff --git a/src/_locales/pl/messages.json b/src/_locales/pl/messages.json
index 85877663..e2a59069 100644
--- a/src/_locales/pl/messages.json
+++ b/src/_locales/pl/messages.json
@@ -1,6 +1,6 @@
{
"extensionName": {
- "message": "Privacy Redirect",
+ "message": "LibRedirect",
"description": "Nazwa rozszerzenia."
},
"extensionDescription": {
diff --git a/src/_locales/ru/messages.json b/src/_locales/ru/messages.json
index c371532e..6a80c555 100644
--- a/src/_locales/ru/messages.json
+++ b/src/_locales/ru/messages.json
@@ -1,6 +1,6 @@
{
"extensionName": {
- "message": "Privacy Redirect",
+ "message": "LibRedirect",
"description": "Название расширения."
},
"extensionDescription": {
diff --git a/src/_locales/tr/messages.json b/src/_locales/tr/messages.json
index fdf07ac7..15ecad27 100644
--- a/src/_locales/tr/messages.json
+++ b/src/_locales/tr/messages.json
@@ -1,6 +1,6 @@
{
"extensionName": {
- "message": "Privacy Redirect",
+ "message": "LibRedirect",
"description": "Uzantı ismi."
},
"extensionDescription": {
diff --git a/src/_locales/zh_CN/messages.json b/src/_locales/zh_CN/messages.json
index 8c19e2de..72e480a2 100644
--- a/src/_locales/zh_CN/messages.json
+++ b/src/_locales/zh_CN/messages.json
@@ -1,6 +1,6 @@
{
"extensionName": {
- "message": "Privacy Redirect",
+ "message": "LibRedirect",
"description": "Name of the extension."
},
"extensionDescription": {
diff --git a/src/assets/images/chevron-down.svg b/src/assets/images/chevron-down.svg
index 7679f267..4b093598 100644
--- a/src/assets/images/chevron-down.svg
+++ b/src/assets/images/chevron-down.svg
@@ -1,3 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 512 512'>
- <polyline points='112 184 256 328 400 184' style='fill:none;stroke:#FF5B56;stroke-linecap:round;stroke-linejoin:round;stroke-width:48px'/>
+ <polyline points='112 184 256 328 400 184' style='fill:none;stroke:#FFFFFF;stroke-linecap:round;stroke-linejoin:round;stroke-width:48px'/>
</svg> \ No newline at end of file
diff --git a/src/assets/images/icon128.png b/src/assets/images/icon128.png
deleted file mode 100644
index cd16befd..00000000
--- a/src/assets/images/icon128.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/icon16.png b/src/assets/images/icon16.png
deleted file mode 100644
index f896608b..00000000
--- a/src/assets/images/icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/icon32.png b/src/assets/images/icon32.png
deleted file mode 100644
index c5b417cf..00000000
--- a/src/assets/images/icon32.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/icon48.png b/src/assets/images/icon48.png
deleted file mode 100644
index 24dd5af7..00000000
--- a/src/assets/images/icon48.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/logo-small.png b/src/assets/images/logo-small.png
deleted file mode 100644
index 27ca660a..00000000
--- a/src/assets/images/logo-small.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/logo-store.png b/src/assets/images/logo-store.png
deleted file mode 100644
index f321de43..00000000
--- a/src/assets/images/logo-store.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/logo-tile.png b/src/assets/images/logo-tile.png
deleted file mode 100644
index 101c6b3a..00000000
--- a/src/assets/images/logo-tile.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png
deleted file mode 100644
index ad854aaa..00000000
--- a/src/assets/images/logo.png
+++ /dev/null
Binary files differ
diff --git a/src/pages/options/options.html b/src/pages/options/options.html
index 5b68ed10..286cef51 100644
--- a/src/pages/options/options.html
+++ b/src/pages/options/options.html
@@ -1,692 +1,323 @@
<!DOCTYPE html>
<html>
- <head>
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <title></title>
- <link href="../../assets/stylesheets/styles.css" rel="stylesheet" />
- <title>Privacy Redirect Options</title>
- </head>
- <body>
- <div class="tab">
- <button
- class="tablinks"
- id="general-tab"
- data-localise="__MSG_generalTab__"
- >
- General
- </button>
- <button
- class="tablinks"
- id="advanced-tab"
- data-localise="__MSG_advancedTab__"
- >
- Advanced
- </button>
- <button
- class="tablinks"
- id="exceptions-tab"
- data-localise="__MSG_exceptionsTab__"
- >
- Exceptions
- </button>
+<head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title></title>
+ <link href="../stylesheets/styles.css" rel="stylesheet" />
+ <title>LibRedirect Options</title>
+</head>
+
+<body>
+ <div class="tab">
+ <button class="tablinks left" id="general-tab" data-localise="__MSG_generalTab__">
+ General
+ </button>
+ <button class="tablinks" id="advanced-tab" data-localise="__MSG_advancedTab__">
+ Advanced
+ </button>
+ <button class="tablinks right" id="exceptions-tab" data-localise="__MSG_exceptionsTab__">
+ Exceptions
+ </button>
+ </div>
+
+ <div id="general" class="tabcontent">
+
+ <div class="some-block">
+ <h4 data-localise="__MSG_theme__">Theme</h4>
+ <select id="theme">
+ <option value="">System</option>
+ <option value="light-theme">Light</option>
+ <option value="dark-theme">Dark</option>
+ </select>
</div>
- <div id="general" class="tabcontent">
- <section class="settings-block">
- <table class="option" aria-label="Toggle Nitter redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableNitter__">Nitter Redirects</h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-nitter"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-nitter" class="checkbox-label"></label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Invidious redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableInvidious__">
- Invidious Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-invidious"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-invidious" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Bibliogram redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableBibliogram__">
- Bibliogram Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-bibliogram"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-bibliogram" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Toggle OpenStreetMap redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableOsm__">
- OpenStreetMap Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-osm"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-osm" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Reddit redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableReddit__">
- Reddit Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-reddit"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-reddit" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Scribe redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableScribe__">
- Scribe Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-scribe"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-scribe" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Search Engine redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableSearchEngine__">
- Search Engine Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-search-engine"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-search-engine" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Toggle SimplyTranslate redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableSimplyTranslate__">SimplyTranslate Redirects</h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-simply-translate"
- type="checkbox"
- />&nbsp;
- <label for="disable-simply-translate" class="checkbox-label"></label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Wikipedia redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableWikipedia__">Wikipedia Redirects</h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-wikipedia"
- type="checkbox"
- />&nbsp;
- <label for="disable-wikipedia" class="checkbox-label"></label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <h1 data-localise="__MSG_nitterInstance__">Nitter Instance</h1>
- <div class="autocomplete">
- <input
- id="nitter-instance"
- type="url"
- name="nitter-instance"
- data-localise-placeholder="__MSG_randomInstancePlaceholder__"
- placeholder="Random instance (none selected)"
- />
- </div>
- </section>
- <section class="settings-block">
- <h1 data-localise="__MSG_invidiousInstance__">Invidious Instance</h1>
- <div class="autocomplete">
- <input
- id="invidious-instance"
- type="url"
- data-localise-placeholder="__MSG_randomInstancePlaceholder__"
- placeholder="Random instance (none selected)"
- />
- </div>
- </section>
- <section class="settings-block">
- <h1 data-localise="__MSG_bibliogramInstance__">Bibliogram Instance</h1>
- <div class="autocomplete">
- <input
- id="bibliogram-instance"
- type="url"
- data-localise-placeholder="__MSG_randomInstancePlaceholder__"
- placeholder="Random instance (none selected)"
- />
- </div>
- </section>
+ <div class="some-block">
+ <h4>Youtube (Invidious)</h4>
+ <input id="disable-invidious" type="checkbox" checked />
+ </div>
+ <section class="settings-block">
+ <div class="autocomplete">
+ <input id="invidious-instance" type="url" data-localise-placeholder="__MSG_randomInstancePlaceholder__"
+ placeholder="Random instance (none selected)" />
+ </div>
+ </section>
+
+ <div class="some-block">
+ <h4>Twitter (Nitter)</h4>
+ <input id="disable-nitter" type="checkbox" checked />
+ </div>
+ <section class="settings-block">
+ <div class="autocomplete">
+ <input id="nitter-instance" type="url" name="nitter-instance"
+ data-localise-placeholder="__MSG_randomInstancePlaceholder__" placeholder="Random instance (none selected)" />
+ </div>
+ </section>
+
+ <div class="some-block">
+ <h4>Instagram (Bibliogram)</h4>
+ <input id="disable-bibliogram" type="checkbox" checked />
+ </div>
+ <section class="settings-block">
+ <div class="autocomplete">
+ <input id="bibliogram-instance" type="url" data-localise-placeholder="__MSG_randomInstancePlaceholder__"
+ placeholder="Random instance (none selected)" />
+ </div>
+ </section>
+
+ <div class="some-block">
+ <h4>Reddit (LibReddit)</h4>
+ <input id="disable-reddit" type="checkbox" checked />
+ </div>
+ <section class="settings-block">
+ <div class="autocomplete">
+ <input id="reddit-instance" type="url" placeholder="https://libredd.it" />
+ </div>
+ </section>
+
+ <div class="some-block">
+ <h4>Search</h4>
+ <input id="disable-searchEngine" type="checkbox" checked />
+ </div>
+ <section class="settings-block">
+ <div class="autocomplete">
+ <input id="searchEngine-instance" type="url" data-localise-placeholder="__MSG_randomInstancePlaceholder__"
+ placeholder="Random instance (none selected)" />
+ </div>
+ </section>
+
+ <div class="some-block">
+ <h4>Translate (SimplyTranslate)</h4>
+ <input id="disable-simplyTranslate" type="checkbox" checked />
+ </div>
+ <section class="settings-block">
+ <div class="autocomplete">
+ <input id="simplyTranslate-instance" type="url" placeholder="https://translate.metalune.xyz" />
+ </div>
+ </section>
+
+ <div class="some-block">
+ <h4>Maps (OpenStreetMaps)</h4>
+ <input id="disable-osm" type="checkbox" checked />
+ </div>
+ <section class="settings-block">
+ <div class="autocomplete">
+ <input id="osm-instance" type="url" placeholder="https://openstreetmap.org" />
+ </div>
+ </section>
+
+ <div class="some-block">
+ <h4>Wikipedia (Wikiless)</h4>
+ <input id="disable-wikipedia" type="checkbox" checked />
+ </div>
+ <section class="settings-block">
+ <div class="autocomplete">
+ <input id="wikipedia-instance" type="url" placeholder="https://wikiless.org" />
+ </div>
+ </section>
+
+ <div class="some-block">
+ <h4>Medium (Scribe)</h4>
+ <input id="disable-scribe" type="checkbox" checked />
+ </div>
+ <section class="settings-block">
+ <div class="autocomplete">
+ <input id="scribe-instance" type="url" name="scribe-instance"
+ data-localise-placeholder="__MSG_randomInstancePlaceholder__" placeholder="Random instance (none selected)" />
+ </div>
+ </section>
+ <div class="buttons">
+ <a class="button" id="update-instances">
+ <span data-localise="__MSG_updateInstances__">Update Instances</span>
+ </a>
+ </div>
+
+ </div>
+
+ <div id="advanced" class="tabcontent">
+
+ <button type="button" class="collapsible">
+ Youtube (Invidious)
+ </button>
+ <div class="collapsible-content">
<section class="settings-block">
- <h1 data-localise="__MSG_osmInstance__">OpenStreetMap Instance</h1>
- <div class="autocomplete">
- <input
- id="osm-instance"
- type="url"
- placeholder="https://openstreetmap.org"
- />
- </div>
+ <h1 data-localise="__MSG_invidiousRandomPool__">
+ Invidious random instance pool (comma-separated)
+ </h1>
+ <textarea type="textarea" id="invidious-random-pool" name="invidious-random-pool" type="text"></textarea>
</section>
+
+ <div class="some-block">
+ <h4 data-localise="__MSG_useFreeTube__">Use FreeTube over Invidious when possible</h4>
+ <input id="use-freetube" type="checkbox" checked />
+ </div>
+
+ <div class="some-block">
+ <h4 data-localise="__MSG_alwaysProxy__">Always proxy videos through Invidious</h4>
+ <input id="always-proxy" type="checkbox" checked />
+ </div>
+
+ <div class="some-block">
+ <h4 data-localise="__MSG_onlyEmbeddedVideo__">Only redirect embedded video to Invidious</h4>
+ <input id="only-embed" type="checkbox" checked />
+ </div>
+
<section class="settings-block">
- <h1 data-localise="__MSG_redditInstance__">Reddit Instance</h1>
- <div class="autocomplete">
- <input
- id="reddit-instance"
- type="url"
- placeholder="https://libredd.it"
- />
- </div>
+ <h1 data-localise="__MSG_videoQuality__">Invidious Video Quality</h1>
+ <select id="video-quality">
+ <option value="">Default</option>
+ <option value="hd720">720p</option>
+ <option value="medium">480p</option>
+ <option value="dash">DASH (Dynamic Adaptive Streaming over HTTP)</option>
+ </option>
+ </select>
</section>
+
+
+ <div class="some-block">
+ <h4 data-localise="__MSG_invidiousDarkMode__">Invidious dark mode always on</h4>
+ <input id="invidious-dark-mode" type="checkbox" checked />
+ </div>
+
<section class="settings-block">
- <h1 data-localise="__MSG_scribeInstance__"
- class="new-badge" data-new-badge>Scribe Instance</h1>
- <div class="autocomplete">
- <input
- id="scribe-instance"
- type="url"
- name="scribe-instance"
- data-localise-placeholder="__MSG_randomInstancePlaceholder__"
- placeholder="Random instance (none selected)"
- />
- </div>
+ <h1 data-localise="__MSG_invidiousVolume__">
+ Invidious Volume:&nbsp;<span id="volume-value"></span>
+ </h1>
+
+ <input id="invidious-volume" name="invidious-volume" type="range" min="0" max="100" step="1" />
</section>
+
+ <br>
+
+ <div class="some-block">
+ <h4 data-localise="__MSG_invidiousPlayerStyle__">Invidious Player Style</h4>
+ <select id="invidious-player-style">
+ <option value="">Invidious</option>
+ <option value="youtube">YouTube</option>
+ </select>
+ </div>
+
+
<section class="settings-block">
- <h1 data-localise="__MSG_searchEngineInstance__">Search Engine Instance</h1>
- <div class="autocomplete">
- <input
- id="search-engine-instance"
- type="url"
- data-localise-placeholder="__MSG_randomInstancePlaceholder__"
- placeholder="Random instance (none selected)"
- />
- </div>
+ <h1 data-localise="__MSG_invidiousSubtitles__">
+ Invidious Subtitles - language codes (comma-separated)
+ </h1>
+ <input id="invidious-subtitles" name="invidious-subtitles" type="text" />
</section>
+
+ <div class="some-block">
+ <h4 data-localise="__MSG_invidiousAutoplay__">Invidious automatically play video on load</h4>
+ <input id="invidious-autoplay" type="checkbox" checked />
+ </div>
+
+ <div class="some-block">
+ <h4 data-localise="__MSG_persistInvidiousPrefs__">Persist Invidious preferences (as cookie)</h4>
+ <input id="persist-invidious-prefs" type="checkbox" checked />
+ </div>
+ </div>
+ <button type="button" class="collapsible">
+ Twitter (Nitter)
+ </button>
+ <div class="collapsible-content">
<section class="settings-block">
- <h1 data-localise="__MSG_simplyTranslateInstance__">SimplyTranslate Instance</h1>
- <div class="autocomplete">
- <input
- id="simply-translate-instance"
- type="url"
- placeholder="https://translate.metalune.xyz"
- />
- </div>
+ <h1 data-localise="__MSG_nitterRandomPool__">
+ Nitter random instance pool (comma-separated)
+ </h1>
+ <textarea id="nitter-random-pool" name="nitter-random-pool" type="text"></textarea>
</section>
+ <div class="some-block">
+ <h4 data-localise="__MSG_removeTwitterSW__">Proactively remove Twitter service worker</h4>
+ <input id="remove-twitter-sw" type="checkbox" checked />
+ </div>
+ </div>
+ <button type="button" class="collapsible">
+ Instagram (Bibliogram)
+ </button>
+ <div class="collapsible-content">
<section class="settings-block">
- <h1 data-localise="__MSG_wikipediaInstance__">Wikipedia Instance</h1>
- <div class="autocomplete">
- <input
- id="wikipedia-instance"
- type="url"
- placeholder="https://wikiless.org"
- />
- </div>
+ <h1 data-localise="__MSG_bibliogramRandomPool__">
+ Bibliogram random instance pool (comma-separated)
+ </h1>
+ <textarea id="bibliogram-random-pool" name="bibliogram-random-pool" type="text"></textarea>
</section>
+
+ </div>
+ <button type="button" class="collapsible">
+ Medium (Scribe)
+ </button>
+ <div class="collapsible-content">
<section class="settings-block">
- <h1 data-localise="__MSG_theme__">Theme</h1>
- <select id="theme">
- <option value="">System</option>
- <option value="light-theme">Light</option>
- <option value="dark-theme">Dark</option>
- </select>
+ <h1 data-localise="__MSG_scribeRandomPool__">
+ Scribe random instance pool (comma-separated)
+ </h1>
+ <textarea id="scribe-random-pool" name="scribe-random-pool" type="text"></textarea>
</section>
</div>
+ </div>
- <div id="advanced" class="tabcontent">
- <button type="button" class="collapsible">
- Invidious
- </button>
- <div class="collapsible-content">
- <section class="settings-block">
- <h1 data-localise="__MSG_invidiousRandomPool__">
- Invidious random instance pool (comma-separated)
- </h1>
- <input
- id="invidious-random-pool"
- name="invidious-random-pool"
- type="text"
- />
- </section>
- <section class="settings-block">
- <table
- class="option"
- aria-label="Redirect YouTube to FreeTube where possible"
- >
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_useFreeTube__">
- Use FreeTube over Invidious when possible
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="use-freetube"
- type="checkbox"
- checked
- />&nbsp;
- <label for="use-freetube" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table
- class="option"
- aria-label="Always proxy videos through Invidious"
- >
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_alwaysProxy__">
- Always proxy videos through Invidious
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="always-proxy"
- type="checkbox"
- checked
- />&nbsp;
- <label for="always-proxy" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table
- class="option"
- aria-label="Only redirect embedded video to Invidious"
- >
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_onlyEmbeddedVideo__">
- Only redirect embedded video to Invidious
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="only-embed"
- type="checkbox"
- checked
- />&nbsp;
- <label for="only-embed" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <h1 data-localise="__MSG_videoQuality__">Invidious Video Quality</h1>
- <select id="video-quality">
- <option value="">Default</option>
- <option value="hd720">720p</option>
- <option value="medium">480p</option>
- <option value="dash">DASH (Dynamic Adaptive Streaming over HTTP)</option>
- </option>
- </select>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Invidious dark mode aways on">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_invidiousDarkMode__">
- Invidious dark mode always on
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="invidious-dark-mode"
- type="checkbox"
- checked
- />&nbsp;
- <label for="invidious-dark-mode" class="checkbox-label">
- </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <h1 data-localise="__MSG_invidiousVolume__">
- Invidious Volume
- </h1>
- <input
- id="invidious-volume"
- name="invidious-volume"
- type="range"
- min="0"
- max="100"
- step="1"
- /><span id="volume-value"></span>
- </section>
- <section class="settings-block">
- <h1 data-localise="__MSG_invidiousPlayerStyle__">
- Invidious Player Style
- </h1>
- <select id="invidious-player-style">
- <option value="">Invidious</option>
- <option value="youtube">YouTube</option>
- </select>
- </section>
- <section class="settings-block">
- <h1 data-localise="__MSG_invidiousSubtitles__">
- Invidious Subtitles - language codes (comma-separated)
- </h1>
- <input
- id="invidious-subtitles"
- name="invidious-subtitles"
- type="text"
- />
- </section>
- <section class="settings-block">
- <table
- class="option"
- aria-label="Invidious automatically play video on load"
- >
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_invidiousAutoplay__">
- Invidious automatically play video on load
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="invidious-autoplay"
- type="checkbox"
- checked
- />&nbsp;
- <label for="invidious-autoplay" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Persist Invidious preferences">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_persistInvidiousPrefs__">
- Persist Invidious preferences (as cookie)
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="persist-invidious-prefs"
- type="checkbox"
- checked
- />&nbsp;
- <label for="persist-invidious-prefs" class="checkbox-label">
- </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <hr>
- </div>
- <button type="button" class="collapsible">
- Nitter
- </button>
- <div class="collapsible-content">
- <section class="settings-block">
- <h1 data-localise="__MSG_nitterRandomPool__">
- Nitter random instance pool (comma-separated)
- </h1>
- <input
- id="nitter-random-pool"
- name="nitter-random-pool"
- type="text"
- />
- </section>
- <section class="settings-block">
- <table
- class="option"
- aria-label="Proactively remove Twitter service worker"
- >
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_removeTwitterSW__">
- Proactively remove Twitter service worker
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="remove-twitter-sw"
- type="checkbox"
- checked
- />&nbsp;
- <label for="remove-twitter-sw" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <hr>
- </div>
- <button type="button" class="collapsible">
- Bibliogram
- </button>
- <div class="collapsible-content">
- <section class="settings-block">
- <h1 data-localise="__MSG_bibliogramRandomPool__">
- Bibliogram random instance pool (comma-separated)
- </h1>
- <input
- id="bibliogram-random-pool"
- name="bibliogram-random-pool"
- type="text"
- />
- </section>
- <section class="settings-block">
- <h1 data-localise="__MSG_scribeRandomPool__">
- Scribe random instance pool (comma-separated)
- </h1>
- <input
- id="scribe-random-pool"
- name="scribe-random-pool"
- type="text"
- />
- </section>
- <hr>
- </div>
- </div>
- <div id="exceptions" class="tabcontent">
- <section class="settings-block">
- <p data-localise="__MSG_exceptionsDescriptionP1__">
- Enter a URL or Regular Expression to be excluded from redirects.
- </p>
- <p data-localise="__MSG_exceptionsDescriptionP2__">
- All requests for or initiating from a URL that matches your exception
- will be excluded from redirects.
- </p>
- <p data-localise="__MSG_exceptionsDescriptionP3__">
- Note - Supports JavaScript regular expressions, excluding the
- enclosing forward slashes.
- </p>
- </section>
- <section class="settings-block">
- <table class="exceptions option">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_addException__">Add Exception</h1>
- </td>
- </tr>
- <tr>
- <td>
- <input
- id="new-exceptions-item"
- type="text"
- placeholder="URL or RegExp"
- />
- </td>
- <td>
- <input type="radio" id="url" name="type" value="URL" checked />
- <label class="radio" for="url">URL</label>
- <input type="radio" id="regExp" name="type" value="RegExp" />
- <label class="radio" for="regExp">RegExp</label>
- </td>
- <td>
- <button id="add-to-exceptions">
- <svg
- xmlns="http://www.w3.org/2000/svg"
- width="512"
- height="512"
- viewBox="0 0 512 512"
- >
- <line
- x1="256"
- y1="112"
- x2="256"
- y2="400"
- style="
+ <div id="exceptions" class="tabcontent">
+ <section class="settings-block">
+ <p data-localise="__MSG_exceptionsDescriptionP1__">
+ Enter a URL or Regular Expression to be excluded from redirects.
+ </p>
+ <p data-localise="__MSG_exceptionsDescriptionP2__">
+ All requests for or initiating from a URL that matches your exception
+ will be excluded from redirects.
+ </p>
+ <p data-localise="__MSG_exceptionsDescriptionP3__">
+ Note - Supports JavaScript regular expressions, excluding the
+ enclosing forward slashes.
+ </p>
+ </section>
+ <section class="settings-block">
+ <table class="exceptions option">
+ <tbody>
+ <tr>
+ <td>
+ <h1 data-localise="__MSG_addException__">Add Exception</h1>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input id="new-exceptions-item" type="text" placeholder="URL or RegExp" />
+ </td>
+ <td>
+ <input type="radio" id="url" name="type" value="URL" checked />
+ <label class="radio" for="url">URL</label>
+ <input type="radio" id="regExp" name="type" value="RegExp" />
+ <label class="radio" for="regExp">RegExp</label>
+ </td>
+ <td>
+ <button id="add-to-exceptions">
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
+ <line x1="256" y1="112" x2="256" y2="400" style="
fill: none;
stroke: #fff;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 32px;
- "
- />
- <line
- x1="400"
- y1="256"
- x2="112"
- y2="256"
- style="
+ " />
+ <line x1="400" y1="256" x2="112" y2="256" style="
fill: none;
stroke: #fff;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 32px;
- "
- />
- </svg>
- </button>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <ul id="exceptions-items"></ul>
- </div>
+ " />
+ </svg>
+ </button>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </section>
+ <ul id="exceptions-items"></ul>
+ </div>
+
+ <script type="module" src="./options.js"></script>
+ <script src="../../assets/javascripts/localise.js"></script>
+</body>
- <script type="module" src="./options.js"></script>
- <script src="../../assets/javascripts/localise.js"></script>
- </body>
-</html>
+</html> \ No newline at end of file
diff --git a/src/pages/options/options.js b/src/pages/options/options.js
index fea94110..639d351b 100644
--- a/src/pages/options/options.js
+++ b/src/pages/options/options.js
@@ -29,10 +29,8 @@ let bibliogramInstance = document.getElementById("bibliogram-instance");
let osmInstance = document.getElementById("osm-instance");
let redditInstance = document.getElementById("reddit-instance");
let scribeInstance = document.getElementById("scribe-instance");
-let searchEngineInstance = document.getElementById("search-engine-instance");
-let simplyTranslateInstance = document.getElementById(
- "simply-translate-instance"
-);
+let searchEngineInstance = document.getElementById("searchEngine-instance");
+let simplyTranslateInstance = document.getElementById("simplyTranslate-instance");
let wikipediaInstance = document.getElementById("wikipedia-instance");
let disableNitter = document.getElementById("disable-nitter");
let disableInvidious = document.getElementById("disable-invidious");
@@ -40,9 +38,9 @@ let disableBibliogram = document.getElementById("disable-bibliogram");
let disableOsm = document.getElementById("disable-osm");
let disableReddit = document.getElementById("disable-reddit");
let disableScribe = document.getElementById("disable-scribe");
-let disableSearchEngine = document.getElementById("disable-search-engine");
+let disableSearchEngine = document.getElementById("disable-searchEngine");
let disableSimplyTranslate = document.getElementById(
- "disable-simply-translate"
+ "disable-simplyTranslate"
);
let disableWikipedia = document.getElementById("disable-wikipedia");
let alwaysProxy = document.getElementById("always-proxy");
@@ -177,22 +175,22 @@ browser.storage.sync.get(
result.scribeRandomPool ||
commonHelper.filterInstances(scribeInstances);
autocompletes = [
- { id: "nitter-instance", instances: nitterRandomPool.value.split(',') },
- { id: "invidious-instance", instances: invidiousRandomPool.value.split(',') },
- { id: "bibliogram-instance", instances: bibliogramRandomPool.value.split(',') },
- { id: "scribe-instance", instances: scribeRandomPool.value.split(',') },
- { id: "reddit-instance", instances: redditInstances },
- { id: "osm-instance", instances: osmInstances },
- {
- id: "search-engine-instance",
- instances: searchEngineInstances.map((instance) => instance.link),
- },
- { id: "simply-translate-instance", instances: simplyTranslateInstances },
- { id: "wikipedia-instance", instances: wikipediaInstances },
- ];
+ { id: "nitter-instance", instances: nitterRandomPool.value.split(',') },
+ { id: "invidious-instance", instances: invidiousRandomPool.value.split(',') },
+ { id: "bibliogram-instance", instances: bibliogramRandomPool.value.split(',') },
+ { id: "scribe-instance", instances: scribeRandomPool.value.split(',') },
+ { id: "reddit-instance", instances: redditInstances },
+ { id: "osm-instance", instances: osmInstances },
+ {
+ id: "searchEngine-instance",
+ instances: searchEngineInstances.map((instance) => instance.link),
+ },
+ { id: "simplyTranslate-instance", instances: simplyTranslateInstances },
+ { id: "wikipedia-instance", instances: wikipediaInstances },
+ ];
autocompletes.forEach((value) => {
autocomplete(document.getElementById(value.id), value.instances);
- });
+ });
}
);
@@ -449,7 +447,7 @@ const invidiousVolumeChange = debounce(() => {
browser.storage.sync.set({
invidiousVolume: invidiousVolume.value,
});
-}, 500);
+}, 1);
invidiousVolume.addEventListener("input", invidiousVolumeChange);
invidiousPlayerStyle.addEventListener("change", (event) => {
@@ -604,7 +602,6 @@ function autocomplete(input, list) {
var coll = document.getElementsByClassName("collapsible");
var i;
-
for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function () {
this.classList.toggle("collapsible-active");
@@ -616,3 +613,20 @@ for (i = 0; i < coll.length; i++) {
}
});
}
+
+const apiEndpoint = 'https://raw.githubusercontent.com/libredirect/instances/main/data.json';
+document.querySelector("#update-instances").addEventListener("click", () => {
+ document.querySelector("#update-instances").innerHTML = '...';
+ let request = new XMLHttpRequest();
+ request.open('GET', apiEndpoint, false);
+ request.send(null);
+
+ if (request.status === 200) {
+ const instances = JSON.parse(request.responseText);
+ const nitterRandomPool = instances.twitter.join(',');
+ const invidiousRandomPool = instances.youtube.join(',');
+ const bibliogramRandomPool = instances.instagram.join(',');
+ browser.storage.sync.set({ nitterRandomPool, invidiousRandomPool, bibliogramRandomPool });
+ document.querySelector("#update-instances").innerHTML = 'Done!';
+ }
+}); \ No newline at end of file
diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html
index 5ab3378b..900f6256 100644
--- a/src/pages/popup/popup.html
+++ b/src/pages/popup/popup.html
@@ -1,287 +1,97 @@
<!DOCTYPE html>
<html>
- <head>
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <title></title>
- <link href="../../assets/stylesheets/styles.css" rel="stylesheet" />
- </head>
- <body class="popup">
- <header class="popup">
- <div class="logo-container">
- <img
- src="../../assets/images/libredirect.svg"
- alt="Privacy Redirect logo"
- />
- <h1>
- <span data-localise="__MSG_extensionName__" class="extensionName">LibRedirect</span>
- </h1>
- </div>
- <div class="version">
- <span data-localise="__MSG_version__">Version</span>:&nbsp;<span
- id="version"
- ></span>
- </div>
- </header>
+<head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title></title>
+ <link href="../stylesheets/styles.css" rel="stylesheet" />
+</head>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Nitter redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableNitter__">Twitter Redirects</h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-nitter"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-nitter" class="checkbox-label"></label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
+<body class="popup">
- <section class="settings-block">
- <table class="option" aria-label="Toggle Invidious redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableInvidious__">
- YouTube Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-invidious"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-invidious" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Bibliogram redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableBibliogram__">
- Instagram Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-bibliogram"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-bibliogram" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
- <section class="settings-block">
- <table class="option" aria-label="Toggle OpenStreetMap redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableOsm__">
- GoogleMap Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-osm"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-osm" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
+ <div class="some-block">
+ <h4>Youtube</h4>
+ <input id="disable-invidious" type="checkbox" checked />
+ </div>
- <section class="settings-block">
- <table class="option" aria-label="Toggle old Reddit redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableReddit__">Reddit Redirects</h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-reddit"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-reddit" class="checkbox-label"> </label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
+ <div class="some-block">
+ <h4>Twitter</h4>
+ <input id="disable-nitter" type="checkbox" checked />
+ </div>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Search Engine redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableSearchEngine__">
- Search Engine Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-searchEngine"
- type="checkbox"
- checked
- />&nbsp;
- <label for="disable-searchEngine" class="checkbox-label"></label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
+ <div class="some-block">
+ <h4>Instagram</h4>
+ <input id="disable-bibliogram" type="checkbox" checked />
+ </div>
- <section class="settings-block">
- <table class="option" aria-label="Toggle SimplyTranslate redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableSimplyTranslate__">
- SimplyTranslate Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-simplyTranslate"
- type="checkbox"
- />&nbsp;
- <label
- for="disable-simplyTranslate"
- class="checkbox-label"
- ></label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
+ <div class="some-block">
+ <h4>Reddit</h4>
+ <input id="disable-reddit" type="checkbox" checked />
+ </div>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Wikipedia redirects">
- <tbody>
- <tr>
- <td>
- <h1 data-localise="__MSG_disableWikipedia__">
- Wikipedia Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-wikipedia"
- type="checkbox"
- />&nbsp;
- <label for="disable-wikipedia" class="checkbox-label"></label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
+ <div class="some-block">
+ <h4>Search</h4>
+ <input id="disable-searchEngine" type="checkbox" checked />
+ </div>
- <section class="settings-block">
- <table class="option" aria-label="Toggle Scribe redirects">
- <tbody>
- <tr>
- <td>
- <h1
- data-localise="__MSG_disableScribe__"
- class="new-badge"
- data-new-badge
- >
- Scribe Redirects
- </h1>
- </td>
- <td>
- <input
- aria-hidden="true"
- id="disable-scribe"
- type="checkbox"
- />&nbsp;
- <label for="disable-scribe" class="checkbox-label"></label>
- </td>
- </tr>
- </tbody>
- </table>
- </section>
+ <div class="some-block">
+ <h4>Translate</h4>
+ <input id="disable-simplyTranslate" type="checkbox" checked />
+ </div>
- <footer>
- <a class="button" id="update-instances">
- <span data-localise="__MSG_updateInstances__">Update Instances&nbsp;</span>
- </a>
- <a class="button" id="more-options">
- <span data-localise="__MSG_moreOptions__">More Options&nbsp;</span>
- <svg
- xmlns="http://www.w3.org/2000/svg"
- width="512"
- height="512"
- viewBox="0 0 512 512"
- >
- <path
- d="M384,224V408a40,40,0,0,1-40,40H104a40,40,0,0,1-40-40V168a40,40,0,0,1,40-40H271.48"
- style="
- fill: none;
- stroke: inherit;
- stroke-linecap: round;
- stroke-linejoin: round;
- stroke-width: 32px;
- "
- />
- <polyline
- points="336 64 448 64 448 176"
- style="
- fill: none;
- stroke: inherit;
- stroke-linecap: round;
- stroke-linejoin: round;
- stroke-width: 32px;
- "
- />
- <line
- x1="224"
- y1="288"
- x2="440"
- y2="72"
- style="
- fill: none;
- stroke: inherit;
- stroke-linecap: round;
- stroke-linejoin: round;
- stroke-width: 32px;
- "
- />
- </svg>
- </a>
- </footer>
+ <div class="some-block">
+ <h4>Maps</h4>
+ <input id="disable-osm" type="checkbox" checked />
+ </div>
- <script type="module" src="./popup.js"></script>
- <script src="../../assets/javascripts/localise.js"></script>
- </body>
-</html>
+ <div class="some-block">
+ <h4>Wikipedia</h4>
+ <input id="disable-wikipedia" type="checkbox" checked />
+ </div>
+
+ <div class="some-block">
+ <h4>Medium</h4>
+ <input id="disable-scribe" type="checkbox" checked />
+ </div>
+
+ <div class="buttons">
+ <a class="button" id="update-instances">
+ <span data-localise="__MSG_updateInstances__">Update Instances&nbsp;</span>
+ </a>
+ <a class="button" id="more-options">
+ <span data-localise="__MSG_moreOptions__">More Options&nbsp;</span>
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
+ <path d="M384,224V408a40,40,0,0,1-40,40H104a40,40,0,0,1-40-40V168a40,40,0,0,1,40-40H271.48" style="
+ fill: none;
+ stroke: inherit;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke-width: 32px;
+ " />
+ <polyline points="336 64 448 64 448 176" style="
+ fill: none;
+ stroke: inherit;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke-width: 32px;
+ " />
+ <line x1="224" y1="288" x2="440" y2="72" style="
+ fill: none;
+ stroke: inherit;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke-width: 32px;
+ " />
+ </svg>
+ </a>
+ </div>
+
+
+ <script type="module" src="./popup.js"></script>
+ <script src="../../assets/javascripts/localise.js"></script>
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index d2b33b6a..01497cad 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -9,7 +9,6 @@ let disableSearchEngine = document.querySelector("#disable-searchEngine");
let disableSimplyTranslate = document.querySelector("#disable-simplyTranslate");
let disableWikipedia = document.querySelector("#disable-wikipedia");
let disableScribe = document.querySelector("#disable-scribe");
-let version = document.querySelector("#version");
window.browser = window.browser || window.chrome;
@@ -40,8 +39,6 @@ browser.storage.sync.get(
}
);
-version.textContent = browser.runtime.getManifest().version;
-
disableNitter.addEventListener("change", (event) => {
browser.storage.sync.set({ disableNitter: !event.target.checked });
});
@@ -79,14 +76,13 @@ disableScribe.addEventListener("change", (event) => {
});
const apiEndpoint = 'https://raw.githubusercontent.com/libredirect/instances/main/data.json';
-
document.querySelector("#update-instances").addEventListener("click", () => {
let request = new XMLHttpRequest();
request.open('GET', apiEndpoint, false);
request.send(null);
if (request.status === 200) {
- document.querySelector("#update-instances").innerHTML = 'gav';
+ document.querySelector("#update-instances").innerHTML = 'gav';
const instances = JSON.parse(request.responseText);
const nitterRandomPool = instances.twitter.join(',');
const invidiousRandomPool = instances.youtube.join(',');
diff --git a/src/assets/stylesheets/styles.css b/src/pages/stylesheets/styles.css
index a86cfa2b..363bdf3c 100644
--- a/src/assets/stylesheets/styles.css
+++ b/src/pages/stylesheets/styles.css
@@ -1,8 +1,8 @@
body {
--text: #fff;
- --bg-main: #3c4043;
- --bg-secondary: #292a2d;
- --active: #ff5b56;
+ --bg-main: #121212;
+ --bg-secondary: #202020;
+ --active: #fbc117;
--space: 5px;
--danger: #f04141;
--danger-light: #f9d0d5;
@@ -16,73 +16,22 @@ body.light-theme {
--bg-secondary: #fff;
}
-.light-theme.popup,
-.light-theme .popup {
- background-color: var(--bg-secondary);
-}
-
body {
- margin: 0;
width: 400px;
margin: auto;
+ padding: 0;
min-height: 572px;
font-family: Sans-Serif;
background-color: var(--bg-secondary);
color: var(--text);
}
-.popup {
- width: 300px;
- min-height: auto;
- overflow: hidden;
- background-color: var(--bg-main);
-}
-
input {
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
}
-header {
- background-color: var(--bg-main);
- color: var(--text);
- display: flex;
- padding: var(--space);
-}
-
-header .logo-container {
- width: 100%;
- margin: var(--space) 0 var(--space) 0;
- display: flex;
- align-items: center;
-}
-
-header .logo-container img {
- height: 30px;
- float: left;
-}
-
-header .logo-container h1 {
- font-size: 14px;
- float: left;
- margin-left: 15px;
- text-transform: uppercase;
- font-weight: normal;
-}
-
-header .privacy {
- letter-spacing: 0.13em;
-}
-
-header .version {
- font-size: 8.5px;
- font-weight: bold;
- position: absolute;
- top: var(--space);
- right: var(--space);
-}
-
h1 {
font-size: 14px;
margin: 7px auto;
@@ -112,27 +61,29 @@ footer {
width: 100%;
}
-footer a.button {
- margin: var(--space);
-}
input[type="url"],
input[type="text"],
select {
width: 100%;
+ margin: auto;
+ border-radius: 3px;
box-sizing: border-box;
margin-bottom: var(--space);
background-color: var(--bg-main);
- border-style: inset;
+ border-style: solid;
+ border-color: #767676;
color: var(--text);
}
-input[type="url"] {
- padding: 1px 2px;
+select{
+ margin: 0;
+ width: auto;
+ border-radius: 3px;
}
-input[type="checkbox"] {
- opacity: 0;
+input[type="url"] {
+ padding: 5px;
}
input[type="radio"] {
@@ -141,7 +92,7 @@ input[type="radio"] {
-webkit-appearance: radio;
}
-input[type="radio"]:checked + label {
+input[type="radio"]:checked+label {
background: transparent;
}
@@ -172,18 +123,18 @@ input[type="radio"]:checked + label {
width: 20px;
}
-input:checked + label {
+input:checked+label {
background: var(--active);
}
-input:checked + label:after {
+input:checked+label:after {
left: calc(100% - var(--space));
transform: translateX(-100%);
}
.settings-block {
display: block;
- padding: 5px 10px 5px 10px;
+ padding: 5px 15px;
}
.settings-block h1 {
@@ -242,8 +193,6 @@ input:invalid {
}
.tab button {
- border-top-left-radius: 10px;
- border-top-right-radius: 10px;
color: var(--text);
background-color: inherit;
float: left;
@@ -257,6 +206,14 @@ input:invalid {
font-size: 14px;
}
+.tab button.left {
+ border-top-left-radius: 7px;
+}
+
+.tab button.right {
+ border-top-right-radius: 7px;
+}
+
.tab button:hover {
background-color: var(--active);
}
@@ -276,7 +233,7 @@ div.exceptions {
clear: left;
}
-div.exceptions > input {
+div.exceptions>input {
width: 240px;
float: left;
}
@@ -334,7 +291,7 @@ li {
}
.autocomplete input {
- background: url(../images/chevron-down.svg) right no-repeat;
+ background: url(../../assets/images/chevron-down.svg) right no-repeat;
}
.autocomplete-items {
@@ -438,8 +395,8 @@ input[type="range"]::-moz-range-thumb {
opacity: 0.7;
}
-*:focus {
- outline: var(--active) solid 2px;
+input[type="url"]:focus {
+ outline: none;
}
@media (prefers-color-scheme: light) {
@@ -536,3 +493,123 @@ hr {
box-shadow: 0 0 1px var(--bg-secondary);
font-weight: bold;
}
+
+
+
+
+.light-theme.popup,
+.light-theme .popup {
+ background-color: var(--bg-secondary);
+}
+
+body.light-theme {
+ --text: #000;
+ --bg-main: #e3e7ea;
+ --bg-secondary: #fff;
+}
+
+body.popup {
+ width: 200px;
+ min-height: auto;
+ background-color: var(--bg-main);
+}
+
+div.some-block {
+ padding: 0 15px;
+ justify-content: space-between;
+ display: flex;
+ align-items: center;
+ margin-top: 10px;
+ margin-bottom: 10px;
+
+}
+
+div.some-block h4 {
+ margin: 0;
+ width: 70%;
+}
+
+textarea {
+ resize: vertical;
+ width: 100%;
+ height: 200px;
+}
+
+div.some-block input[type="checkbox"] {
+ width: 48px;
+ height: 25px;
+ background-color: var(--light-grey);
+ border-radius: 50px;
+ transition: .4s;
+ cursor: pointer;
+}
+
+div.some-block input[type="checkbox"]:checked {
+ background-color: var(--active);
+
+}
+
+div.some-block input[type="checkbox"]:focus {
+ outline: none;
+}
+
+div.some-block input[type="checkbox"]::before {
+ content: "";
+ display: inline-block;
+ width: 20px;
+ height: 20px;
+ box-sizing: border-box;
+ position: relative;
+ top: 2.5px;
+ left: 4px;
+ height: 20px;
+ background-color: white;
+ border-radius: 50%;
+ transition: .4s;
+}
+
+div.some-block input[type="checkbox"]:checked::before {
+ left: 24px;
+}
+
+div.buttons {
+ margin-bottom: 15px;
+}
+
+a.button {
+ border-radius: 5px;
+ border: var(--active) solid 1px;
+ color: var(--text);
+ stroke: var(--text);
+ display: block;
+ font-size: 12px;
+ font-weight: bold;
+ margin: 7.5px 15px;
+ padding: 10px;
+ text-align: center;
+ text-decoration: none;
+ cursor: pointer;
+ transition-duration: 0.1s;
+}
+
+a.button * {
+ vertical-align: middle;
+}
+
+a.button:hover {
+ background-color: var(--active);
+ color: var(--text);
+ stroke: var(--text);
+}
+
+a.button:active {
+ background-color: var(--active);
+ box-shadow: 0 var(--space) var(--bg-main);
+ transform: translateY(1px);
+}
+
+
+a.button svg {
+ height: 18px;
+ width: 18px;
+} \ No newline at end of file