From c5a6623e0f320b2a789e0d2667ccfe2e1bd4335f Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Mon, 30 May 2022 01:02:59 +0300 Subject: Fixed settings theme and translation flashing #286 --- src/pages/background/background.js | 36 +- src/pages/background/incognito.js | 14 +- src/pages/options/general/general.html | 207 --- src/pages/options/general/general.js | 224 --- src/pages/options/general/general.pug | 176 --- src/pages/options/imgur/imgur.html | 150 -- src/pages/options/imgur/imgur.js | 52 - src/pages/options/imgur/imgur.pug | 44 - src/pages/options/index.html | 1712 ++++++++++++++++++++++ src/pages/options/index.js | 24 + src/pages/options/index.pug | 32 + src/pages/options/init.js | 56 +- src/pages/options/instagram/instagram.html | 128 -- src/pages/options/instagram/instagram.js | 42 - src/pages/options/instagram/instagram.pug | 37 - src/pages/options/lbry/lbry.html | 128 -- src/pages/options/lbry/lbry.js | 43 - src/pages/options/lbry/lbry.pug | 36 - src/pages/options/maps/maps.html | 107 -- src/pages/options/maps/maps.js | 32 - src/pages/options/maps/maps.pug | 33 - src/pages/options/medium/medium.html | 128 -- src/pages/options/medium/medium.js | 42 - src/pages/options/medium/medium.pug | 36 - src/pages/options/peertube/peertube.html | 128 -- src/pages/options/peertube/peertube.js | 40 - src/pages/options/peertube/peertube.pug | 36 - src/pages/options/reddit/reddit.html | 187 --- src/pages/options/reddit/reddit.js | 90 -- src/pages/options/reddit/reddit.pug | 52 - src/pages/options/search/search.html | 309 ---- src/pages/options/search/search.js | 142 -- src/pages/options/search/search.pug | 78 - src/pages/options/sendTargets/sendTargets.html | 128 -- src/pages/options/sendTargets/sendTargets.js | 43 - src/pages/options/sendTargets/sendTargets.pug | 36 - src/pages/options/tiktok/tiktok.html | 128 -- src/pages/options/tiktok/tiktok.js | 55 - src/pages/options/tiktok/tiktok.pug | 36 - src/pages/options/translate/translate.html | 186 --- src/pages/options/translate/translate.js | 75 - src/pages/options/translate/translate.pug | 50 - src/pages/options/twitter/twitter.html | 128 -- src/pages/options/twitter/twitter.js | 53 - src/pages/options/twitter/twitter.pug | 37 - src/pages/options/widgets/general.js | 225 +++ src/pages/options/widgets/general.pug | 167 +++ src/pages/options/widgets/imgur.js | 52 + src/pages/options/widgets/imgur.pug | 32 + src/pages/options/widgets/instagram.js | 42 + src/pages/options/widgets/instagram.pug | 27 + src/pages/options/widgets/lbry.js | 43 + src/pages/options/widgets/lbry.pug | 26 + src/pages/options/widgets/maps.js | 32 + src/pages/options/widgets/maps.pug | 23 + src/pages/options/widgets/medium.js | 42 + src/pages/options/widgets/medium.pug | 26 + src/pages/options/widgets/peertube.js | 40 + src/pages/options/widgets/peertube.pug | 26 + src/pages/options/widgets/reddit.js | 90 ++ src/pages/options/widgets/reddit.pug | 42 + src/pages/options/widgets/search.js | 142 ++ src/pages/options/widgets/search.pug | 69 + src/pages/options/widgets/sendTargets.js | 43 + src/pages/options/widgets/sendTargets.pug | 26 + src/pages/options/widgets/tiktok.js | 53 + src/pages/options/widgets/tiktok.pug | 26 + src/pages/options/widgets/translate.js | 75 + src/pages/options/widgets/translate.pug | 40 + src/pages/options/widgets/twitter.js | 53 + src/pages/options/widgets/twitter.pug | 26 + src/pages/options/widgets/wikipedia.js | 51 + src/pages/options/widgets/wikipedia.pug | 32 + src/pages/options/widgets/youtube.js | 161 ++ src/pages/options/widgets/youtube.pug | 73 + src/pages/options/widgets/youtubeMusic.js | 23 + src/pages/options/widgets/youtubeMusic.pug | 17 + src/pages/options/wikipedia/wikipedia.html | 150 -- src/pages/options/wikipedia/wikipedia.js | 53 - src/pages/options/wikipedia/wikipedia.pug | 41 - src/pages/options/youtube/youtube.html | 263 ---- src/pages/options/youtube/youtube.js | 161 -- src/pages/options/youtube/youtube.pug | 83 -- src/pages/options/youtubeMusic/youtubeMusic.html | 100 -- src/pages/options/youtubeMusic/youtubeMusic.js | 23 - src/pages/options/youtubeMusic/youtubeMusic.pug | 27 - src/pages/popup/popup.html | 38 +- src/pages/popup/popup.js | 93 +- src/pages/popup/popup.pug | 41 +- src/pages/stylesheets/styles.css | 10 +- src/pages/widgets/icons.pug | 1 - src/pages/widgets/links.pug | 34 +- 92 files changed, 3773 insertions(+), 4726 deletions(-) delete mode 100644 src/pages/options/general/general.html delete mode 100644 src/pages/options/general/general.js delete mode 100644 src/pages/options/general/general.pug delete mode 100644 src/pages/options/imgur/imgur.html delete mode 100644 src/pages/options/imgur/imgur.js delete mode 100644 src/pages/options/imgur/imgur.pug create mode 100644 src/pages/options/index.html create mode 100644 src/pages/options/index.js create mode 100644 src/pages/options/index.pug delete mode 100644 src/pages/options/instagram/instagram.html delete mode 100644 src/pages/options/instagram/instagram.js delete mode 100644 src/pages/options/instagram/instagram.pug delete mode 100644 src/pages/options/lbry/lbry.html delete mode 100644 src/pages/options/lbry/lbry.js delete mode 100644 src/pages/options/lbry/lbry.pug delete mode 100644 src/pages/options/maps/maps.html delete mode 100644 src/pages/options/maps/maps.js delete mode 100644 src/pages/options/maps/maps.pug delete mode 100644 src/pages/options/medium/medium.html delete mode 100644 src/pages/options/medium/medium.js delete mode 100644 src/pages/options/medium/medium.pug delete mode 100644 src/pages/options/peertube/peertube.html delete mode 100644 src/pages/options/peertube/peertube.js delete mode 100644 src/pages/options/peertube/peertube.pug delete mode 100644 src/pages/options/reddit/reddit.html delete mode 100644 src/pages/options/reddit/reddit.js delete mode 100644 src/pages/options/reddit/reddit.pug delete mode 100644 src/pages/options/search/search.html delete mode 100644 src/pages/options/search/search.js delete mode 100644 src/pages/options/search/search.pug delete mode 100644 src/pages/options/sendTargets/sendTargets.html delete mode 100644 src/pages/options/sendTargets/sendTargets.js delete mode 100644 src/pages/options/sendTargets/sendTargets.pug delete mode 100644 src/pages/options/tiktok/tiktok.html delete mode 100644 src/pages/options/tiktok/tiktok.js delete mode 100644 src/pages/options/tiktok/tiktok.pug delete mode 100644 src/pages/options/translate/translate.html delete mode 100644 src/pages/options/translate/translate.js delete mode 100644 src/pages/options/translate/translate.pug delete mode 100644 src/pages/options/twitter/twitter.html delete mode 100644 src/pages/options/twitter/twitter.js delete mode 100644 src/pages/options/twitter/twitter.pug create mode 100644 src/pages/options/widgets/general.js create mode 100644 src/pages/options/widgets/general.pug create mode 100644 src/pages/options/widgets/imgur.js create mode 100644 src/pages/options/widgets/imgur.pug create mode 100644 src/pages/options/widgets/instagram.js create mode 100644 src/pages/options/widgets/instagram.pug create mode 100644 src/pages/options/widgets/lbry.js create mode 100644 src/pages/options/widgets/lbry.pug create mode 100644 src/pages/options/widgets/maps.js create mode 100644 src/pages/options/widgets/maps.pug create mode 100644 src/pages/options/widgets/medium.js create mode 100644 src/pages/options/widgets/medium.pug create mode 100644 src/pages/options/widgets/peertube.js create mode 100644 src/pages/options/widgets/peertube.pug create mode 100644 src/pages/options/widgets/reddit.js create mode 100644 src/pages/options/widgets/reddit.pug create mode 100644 src/pages/options/widgets/search.js create mode 100644 src/pages/options/widgets/search.pug create mode 100644 src/pages/options/widgets/sendTargets.js create mode 100644 src/pages/options/widgets/sendTargets.pug create mode 100644 src/pages/options/widgets/tiktok.js create mode 100644 src/pages/options/widgets/tiktok.pug create mode 100644 src/pages/options/widgets/translate.js create mode 100644 src/pages/options/widgets/translate.pug create mode 100644 src/pages/options/widgets/twitter.js create mode 100644 src/pages/options/widgets/twitter.pug create mode 100644 src/pages/options/widgets/wikipedia.js create mode 100644 src/pages/options/widgets/wikipedia.pug create mode 100644 src/pages/options/widgets/youtube.js create mode 100644 src/pages/options/widgets/youtube.pug create mode 100644 src/pages/options/widgets/youtubeMusic.js create mode 100644 src/pages/options/widgets/youtubeMusic.pug delete mode 100644 src/pages/options/wikipedia/wikipedia.html delete mode 100644 src/pages/options/wikipedia/wikipedia.js delete mode 100644 src/pages/options/wikipedia/wikipedia.pug delete mode 100644 src/pages/options/youtube/youtube.html delete mode 100644 src/pages/options/youtube/youtube.js delete mode 100644 src/pages/options/youtube/youtube.pug delete mode 100644 src/pages/options/youtubeMusic/youtubeMusic.html delete mode 100644 src/pages/options/youtubeMusic/youtubeMusic.js delete mode 100644 src/pages/options/youtubeMusic/youtubeMusic.pug (limited to 'src/pages') diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 35c975f7..0f594161 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -1,23 +1,23 @@ "use strict"; -import generalHelper from "../../assets/javascripts/helpers/general.js"; -import utils from "../../assets/javascripts/helpers/utils.js"; - -import youtubeHelper from "../../assets/javascripts/helpers/youtube/youtube.js"; -import youtubeMusicHelper from "../../assets/javascripts/helpers/youtubeMusic.js"; -import twitterHelper from "../../assets/javascripts/helpers/twitter.js"; -import instagramHelper from "../../assets/javascripts/helpers/instagram.js"; -import redditHelper from "../../assets/javascripts/helpers/reddit.js"; -import searchHelper from "../../assets/javascripts/helpers/search.js"; -import translateHelper from "../../assets/javascripts/helpers/translate/translate.js"; -import mapsHelper from "../../assets/javascripts/helpers/maps.js"; -import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js"; -import mediumHelper from "../../assets/javascripts/helpers/medium.js"; -import imgurHelper from "../../assets/javascripts/helpers/imgur.js"; -import tiktokHelper from "../../assets/javascripts/helpers/tiktok.js"; -import sendTargetsHelper from "../../assets/javascripts/helpers/sendTargets.js"; -import peertubeHelper from "../../assets/javascripts/helpers/peertube.js"; -import lbryHelper from "../../assets/javascripts/helpers/lbry.js"; +import generalHelper from "../../assets/javascripts/general.js"; +import utils from "../../assets/javascripts/utils.js"; + +import youtubeHelper from "../../assets/javascripts/youtube/youtube.js"; +import youtubeMusicHelper from "../../assets/javascripts/youtubeMusic.js"; +import twitterHelper from "../../assets/javascripts/twitter.js"; +import instagramHelper from "../../assets/javascripts/instagram.js"; +import redditHelper from "../../assets/javascripts/reddit.js"; +import searchHelper from "../../assets/javascripts/search.js"; +import translateHelper from "../../assets/javascripts/translate/translate.js"; +import mapsHelper from "../../assets/javascripts/maps.js"; +import wikipediaHelper from "../../assets/javascripts/wikipedia.js"; +import mediumHelper from "../../assets/javascripts/medium.js"; +import imgurHelper from "../../assets/javascripts/imgur.js"; +import tiktokHelper from "../../assets/javascripts/tiktok.js"; +import sendTargetsHelper from "../../assets/javascripts/sendTargets.js"; +import peertubeHelper from "../../assets/javascripts/peertube.js"; +import lbryHelper from "../../assets/javascripts/lbry.js"; window.browser = window.browser || window.chrome; diff --git a/src/pages/background/incognito.js b/src/pages/background/incognito.js index 2ebbe545..8152f40f 100644 --- a/src/pages/background/incognito.js +++ b/src/pages/background/incognito.js @@ -1,10 +1,10 @@ -import youtubeHelper from "../../assets/javascripts/helpers/youtube/youtube.js"; -import twitterHelper from "../../assets/javascripts/helpers/twitter.js"; -import redditHelper from "../../assets/javascripts/helpers/reddit.js"; -import searchHelper from "../../assets/javascripts/helpers/search.js"; -import translateHelper from "../../assets/javascripts/helpers/translate/translate.js"; -import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js"; -import tiktokHelper from "../../assets/javascripts/helpers/tiktok.js"; +import youtubeHelper from "../../assets/javascripts/youtube/youtube.js"; +import twitterHelper from "../../assets/javascripts/twitter.js"; +import redditHelper from "../../assets/javascripts/reddit.js"; +import searchHelper from "../../assets/javascripts/search.js"; +import translateHelper from "../../assets/javascripts/translate/translate.js"; +import wikipediaHelper from "../../assets/javascripts/wikipedia.js"; +import tiktokHelper from "../../assets/javascripts/tiktok.js"; window.browser = window.browser || window.chrome; diff --git a/src/pages/options/general/general.html b/src/pages/options/general/general.html deleted file mode 100644 index 8dd60184..00000000 --- a/src/pages/options/general/general.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - General - - - - -
-
-

General

-
-
-
-

Theme

- -
-
-

Auto Redirect of offline instances

- -
-
-

Exceptions

-
-
-
-
-   -   -
- -
-
-
-
- - - - Update Instances    - -     - - -   - Export Settings    - - - - - Reset Settings -
-
-
-

Customize Popup

-
- - - - -
- \ No newline at end of file diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js deleted file mode 100644 index c943ddd8..00000000 --- a/src/pages/options/general/general.js +++ /dev/null @@ -1,224 +0,0 @@ -"use strict"; -window.browser = window.browser || window.chrome; - -import utils from "../../../assets/javascripts/helpers/utils.js"; -import generalHelper from "../../../assets/javascripts/helpers/general.js"; - -import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js"; -import youtubeMusicHelper from "../../../assets/javascripts/helpers/youtubeMusic.js"; -import twitterHelper from "../../../assets/javascripts/helpers/twitter.js"; -import instagramHelper from "../../../assets/javascripts/helpers/instagram.js"; -import redditHelper from "../../../assets/javascripts/helpers/reddit.js"; -import searchHelper from "../../../assets/javascripts/helpers/search.js"; -import translateHelper from "../../../assets/javascripts/helpers/translate/translate.js"; -import mapsHelper from "../../../assets/javascripts/helpers/maps.js"; -import wikipediaHelper from "../../../assets/javascripts/helpers/wikipedia.js"; -import mediumHelper from "../../../assets/javascripts/helpers/medium.js"; -import imgurHelper from "../../../assets/javascripts/helpers/imgur.js"; -import tiktokHelper from "../../../assets/javascripts/helpers/tiktok.js"; -import sendTargetsHelper from "../../../assets/javascripts/helpers/sendTargets.js"; -import peertubeHelper from "../../../assets/javascripts/helpers/peertube.js"; -import lbryHelper from "../../../assets/javascripts/helpers/lbry.js"; - -let updateInstancesElement = document.getElementById("update-instances"); -updateInstancesElement.addEventListener("click", () => { - let oldHtml = updateInstancesElement.innerHTML - updateInstancesElement.innerHTML = '...'; - if (utils.updateInstances()) { - updateInstancesElement.innerHTML = 'Done!'; - new Promise(resolve => setTimeout(resolve, 1500)).then( // sleep 1500ms - () => updateInstancesElement.innerHTML = oldHtml - ) - } - else - updateInstancesElement.innerHTML = 'Failed Miserabely'; -}); - -let exportSettingsElement = document.getElementById("export-settings"); - -function exportSettings() { - browser.storage.local.get( - null, - result => { - let resultString = JSON.stringify(result, null, ' '); - exportSettingsElement.href = 'data:application/json;base64,' + btoa(resultString); - exportSettingsElement.download = 'libredirect-settings.json'; - } - ); -} -exportSettings(); - -browser.storage.onChanged.addListener(exportSettings); - -let importSettingsElement = document.getElementById("import-settings"); -let importSettingsElementText = document.getElementById('import_settings_text'); -importSettingsElement.addEventListener("change", - () => { - let file = importSettingsElement.files[0]; - const reader = new FileReader(); - reader.readAsText(file); - reader.onload = async () => { - const data = JSON.parse(reader.result) - if ( - "theme" in data && - "disableImgur" in data && - "cloudflareList" in data && - "imgurRedirects" in data - ) { - console.log('importing a valid file...'); - await browser.storage.local.set({ ...data }) - location.reload(); - } else - importError() - } - reader.onerror = error => importError(); - } -); -function importError() { - const oldHTML = importSettingsElementText.innerHTML; - importSettingsElementText.innerHTML = 'Error!'; - setTimeout(() => importSettingsElementText.innerHTML = oldHTML, 1000); -} - -document.getElementById("reset-settings").addEventListener("click", - async () => { - await browser.storage.local.clear(); - fetch('/instances/blocklist.json').then(response => response.text()).then(async data => { - await browser.storage.local.set({ cloudflareList: JSON.parse(data) }) - await generalHelper.initDefaults(); - await youtubeHelper.initDefaults(); - await youtubeMusicHelper.initDefaults(); - await twitterHelper.initDefaults(); - await instagramHelper.initDefaults(); - await mapsHelper.initDefaults(); - await searchHelper.initDefaults(); - await translateHelper.initDefaults(); - await mediumHelper.initDefaults(); - await redditHelper.initDefaults(); - await wikipediaHelper.initDefaults(); - await imgurHelper.initDefaults(); - await tiktokHelper.initDefaults(); - await sendTargetsHelper.initDefaults(); - await peertubeHelper.initDefaults(); - await lbryHelper.initDefaults(); - location.reload(); - }) - } -); - -let autoRedirectElement = document.getElementById("auto-redirect") -autoRedirectElement.addEventListener("change", - event => browser.storage.local.set({ autoRedirect: event.target.checked }) -); - -let themeElement = document.getElementById("theme"); -themeElement.addEventListener("change", event => { - const value = event.target.options[theme.selectedIndex].value; - browser.storage.local.set({ theme: value }); -}) - -let nameCustomInstanceInput = document.getElementById("exceptions-custom-instance"); -let instanceTypeElement = document.getElementById("exceptions-custom-instance-type"); -let instanceType = "url" - -let popupFrontends; -for (const frontend of generalHelper.allPopupFrontends) - document.getElementById(frontend).addEventListener("change", - event => { - if (event.target.checked && !popupFrontends.includes(frontend)) - popupFrontends.push(frontend) - else if (popupFrontends.includes(frontend)) { - var index = popupFrontends.indexOf(frontend); - if (index !== -1) popupFrontends.splice(index, 1); - } - browser.storage.local.set({ popupFrontends }) - } - ) - - -browser.storage.local.get( - [ - 'theme', - 'autoRedirect', - 'exceptions' - ], - r => { - autoRedirectElement.checked = r.autoRedirect; - themeElement.value = r.theme; - instanceTypeElement.addEventListener("change", - event => { - instanceType = event.target.options[instanceTypeElement.selectedIndex].value - if (instanceType == 'url') { - nameCustomInstanceInput.setAttribute("type", "url"); - nameCustomInstanceInput.setAttribute("placeholder", "https://www.google.com"); - } - else if (instanceType == 'regex') { - nameCustomInstanceInput.setAttribute("type", "text"); - nameCustomInstanceInput.setAttribute("placeholder", "https?:\/\/(www\.|)youtube\.com\/"); - } - } - ) - let exceptionsCustomInstances = r.exceptions; - function calcExceptionsCustomInstances() { - document.getElementById("exceptions-custom-checklist").innerHTML = - [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex].map( - (x) => `
- ${x} - -
-
` - ).join('\n'); - - for (const x of [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex]) { - document.getElementById(`clear-${x}`).addEventListener("click", - () => { - console.log(x); - let index; - index = exceptionsCustomInstances.url.indexOf(x); - if (index > -1) - exceptionsCustomInstances.url.splice(index, 1); - else { - index = exceptionsCustomInstances.regex.indexOf(x); - if (index > -1) - exceptionsCustomInstances.regex.splice(index, 1); - } - browser.storage.local.set({ exceptions: exceptionsCustomInstances }) - calcExceptionsCustomInstances(); - }); - } - } - calcExceptionsCustomInstances(); - document.getElementById("custom-exceptions-instance-form").addEventListener("submit", (event) => { - event.preventDefault(); - - let val - if (instanceType == 'url') { - if (nameCustomInstanceInput.validity.valid) { - let url = new URL(nameCustomInstanceInput.value); - val = `${url.protocol}//${url.host}` - if (!exceptionsCustomInstances.url.includes(val)) exceptionsCustomInstances.url.push(val) - } - } else if (instanceType == 'regex') { - val = nameCustomInstanceInput.value - if (val.trim() != '' && !exceptionsCustomInstances.regex.includes(val)) exceptionsCustomInstances.regex.push(val) - } - if (val) { - browser.storage.local.set({ exceptions: exceptionsCustomInstances }) - nameCustomInstanceInput.value = ''; - } - calcExceptionsCustomInstances(); - }) - - browser.storage.local.get('popupFrontends', - r => { - popupFrontends = r.popupFrontends; - for (const frontend of generalHelper.allPopupFrontends) - document.getElementById(frontend).checked = popupFrontends.includes(frontend); - } - ) - }) diff --git a/src/pages/options/general/general.pug b/src/pages/options/general/general.pug deleted file mode 100644 index 3d35c311..00000000 --- a/src/pages/options/general/general.pug +++ /dev/null @@ -1,176 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title General -body.option(dir="auto") - include ../../widgets/links.pug - +links('general') - - section.option-block - .some-block.option-block - h1 General - hr - - .some-block.option-block - h4(data-localise="__MSG_theme__") Theme - select#theme - option(value="DEFAULT" data-localise="__MSG_system__") System - option(value="light" data-localise="__MSG_light__") Light - option(value="dark" data-localise="__MSG_dark__") Dark - - .some-block.option-block - h4(data-localise="__MSG_autoRedirect__") Auto Redirect of offline instances - input#auto-redirect(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_exceptions__") Exceptions - - form#custom-exceptions-instance-form - .some-block.option-block - .some-block(style="padding:0;") - input#exceptions-custom-instance(placeholder="https://www.google.com" type="url") - |  - select#exceptions-custom-instance-type - option(value="url") URL - option(value="regex") Regex - |  - button#exceptions-add-instance.add(type="submit") - svg(xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor") - path(d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z") - - #exceptions-custom-checklist.checklist - - .buttons.buttons-inline - a#update-instances.button.button-inline - svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") - path(d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z") - x(data-localise="__MSG_updateInstances__") Update Instances - - |    - - label#import_settings_text.button.button-inline(for="import-settings") - svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") - path(d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z") - |  - x(data-localise="__MSG_importSettings__") Import Settings - input#import-settings.button.button-inline(type="file" style="display:none;") - - |    - - a#export-settings.button.button-inline - svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") - path(d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z") - |  - x(data-localise="__MSG_exportSettings__") Export Settings - - |    - - a#reset-settings.button.button-inline - svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") - path(d="M12,5V2L8,6l4,4V7c3.31,0,6,2.69,6,6c0,2.97-2.17,5.43-5,5.91v2.02c3.95-0.49,7-3.85,7-7.93C20,8.58,16.42,5,12,5z") - path(d="M6,13c0-1.65,0.67-3.15,1.76-4.24L6.34,7.34C4.9,8.79,4,10.79,4,13c0,4.08,3.05,7.44,7,7.93v-2.02 C8.17,18.43,6,15.97,6,13z") - x(data-localise="__MSG_resetSettings__") Reset Settings - hr - - .some-block.option-block - h4(data-localise="__MSG_customPopup__") Customize Popup - - #popup-frontends-checklist.checklist-popup - div - div - img(src="../../../assets/images/youtube-icon.png") - |YouTube - input#youtube(type="checkbox") - div - div - img(src="../../../assets/images/youtube-music-icon.png") - |YoutubeMusic - input#youtubeMusic(type="checkbox") - div - div - img(src="../../../assets/images/twitter-icon.png") - |Twitter - input#twitter(type="checkbox") - - div - div - img(src="../../../assets/images/instagram-icon.png") - |Instagram - input#instagram(type="checkbox") - - div - div - img(src="../../../assets/images/tiktok-icon.png") - |TikTok - input#tikTok(type="checkbox") - - div - div - img(src="../../../assets/images/imgur-icon.png") - |Imgur - input#imgur(type="checkbox") - - div - div - img(src="../../../assets/images/reddit-icon.png") - |Reddit - input#reddit(type="checkbox") - - div - div - svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor") - path(d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z") - |Search - input#search(type="checkbox") - - div - div - svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor") - path(d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z") - |Translate - input#translate(type="checkbox") - - div - div - svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor") - path(d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z") - |Maps - input#maps(type="checkbox") - - div - div - img(src="../../../assets/images/wikipedia-icon.svg") - |Wikipedia - input#wikipedia(type="checkbox") - - div - div - svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor") - circle(cx="500" cy="500" r="500") - ellipse(ry="475" rx="250" cy="501" cx="1296") - ellipse(cx="1682" cy="502" rx="88" ry="424") - |Medium - input#medium(type="checkbox") - - div - div - img(src="../../../assets/images/peertube-icon.svg") - |PeerTube - input#peertube(type="checkbox") - - div - div - img(src="../../../assets/images/lbry-icon.png") - |LBRY/Odysee - input#lbry(type="checkbox") - - div - div - svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") - path(d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z") - |Send Files - input#sendTargets(type="checkbox") - - script(type="module" src="../init.js") - script(type="module" src="./general.js") - script(type="module" src="../../../assets/javascripts/localise.js") \ No newline at end of file diff --git a/src/pages/options/imgur/imgur.html b/src/pages/options/imgur/imgur.html deleted file mode 100644 index 78730edc..00000000 --- a/src/pages/options/imgur/imgur.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - Imgur - - - - - -
-
-

Imgur

-
-
-
-

Enable

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/imgur/imgur.js b/src/pages/options/imgur/imgur.js deleted file mode 100644 index 0b1343c8..00000000 --- a/src/pages/options/imgur/imgur.js +++ /dev/null @@ -1,52 +0,0 @@ -import imgurHelper from "../../../assets/javascripts/helpers/imgur.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disableImgurElement = document.getElementById("disable-imgur"); -let protocolElement = document.getElementById("protocol") - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableImgur: !disableImgurElement.checked, - imgurProtocol: protocolElement.value, - }); - changeProtocolSettings(protocolElement.value); -}) - -function changeProtocolSettings(protocol) { - let normalDiv = document.getElementsByClassName("normal")[0]; - let torDiv = document.getElementsByClassName("tor")[0]; - let i2pDiv = document.getElementsByClassName("i2p")[0]; - if (protocol == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - i2pDiv.style.display = 'none'; - } - else if (protocol == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - i2pDiv.style.display = 'none'; - } - else if (protocol == 'i2p') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'none'; - i2pDiv.style.display = 'block'; - } -} - -browser.storage.local.get( - [ - "disableImgur", - "imgurProtocol", - ], - r => { - disableImgurElement.checked = !r.disableImgur; - protocolElement.value = r.imgurProtocol; - changeProtocolSettings(r.imgurProtocol); - } -); - -utils.processDefaultCustomInstances('imgur', 'rimgo', 'normal', document); -utils.processDefaultCustomInstances('imgur', 'rimgo', 'tor', document); -utils.processDefaultCustomInstances('imgur', 'rimgo', 'i2p', document); - -utils.latency('imgur', 'rimgo', document, location) \ No newline at end of file diff --git a/src/pages/options/imgur/imgur.pug b/src/pages/options/imgur/imgur.pug deleted file mode 100644 index 3dacdec8..00000000 --- a/src/pages/options/imgur/imgur.pug +++ /dev/null @@ -1,44 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title Imgur -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('imgur') - - section.option-block - .some-block.option-block - h1 Imgur - hr - - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-imgur(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - option(value="i2p" data-localise="__MSG_i2p__") I2P - - #rimgo - hr - .normal - include ../../widgets/instances.pug - +instances('https://rimgo.com') - include ../../widgets/latency.pug - +latency() - .tor - include ../../widgets/instances.pug - +instances('https://rimgo.onion') - - .i2p - include ../../widgets/instances.pug - +instances('https://rimgo.onion') - - - - script(type="module" src="../init.js") - script(type="module" src="./imgur.js") \ No newline at end of file diff --git a/src/pages/options/index.html b/src/pages/options/index.html new file mode 100644 index 00000000..42553e37 --- /dev/null +++ b/src/pages/options/index.html @@ -0,0 +1,1712 @@ + + + + + + + + General + + + + +
+
+
+

General

+
+
+
+

Theme

+ +
+
+

+ +
+
+

+
+
+
+
+   +   +
+ +
+
+
+
+ + + + Update Instances    + +     + + +   + Export Settings    + + + + + Reset Settings +
+
+
+

Customize Popup

+
+ + +
+
+
+

YouTube

+
+
+
+

Enable

+ +
+
+

Frontend

+ +
+
+
+

Embedded Videos Frontend

+ +
+
+
+
+

Protocol

+ +
+
+

Redirect Type

+ +
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

YouTube Music

+
+
+
+

Enable

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+ +
+
+
+

Twitter

+
+
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

Instagram

+
+
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

TikTok

+
+
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

Reddit

+
+
+
+

Enable

+ +
+
+

Frontend

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

Imgur

+
+
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

Wikipedia

+
+
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

Medium

+
+
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

PeerTube

+
+
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

LBRY/Odysee

+
+
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

Search

+
+
+
+

Enable

+ +
+
+

Frontend

+ +
+
+
+

Protocol

+ +
+
+
+

Note: To use Search to its full potential, make LibRedirect as the Default Search Engine

+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

Translate

+
+
+
+

Enable

+ +
+
+

Frontend

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+
+

Maps

+
+
+
+

Enable

+ +
+
+

Frontend

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+ +
+
+
+

Send Files

+
+
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+ + +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + +
+
+
+
+
+ +
+
+ + + \ No newline at end of file diff --git a/src/pages/options/index.js b/src/pages/options/index.js new file mode 100644 index 00000000..39f9c8f3 --- /dev/null +++ b/src/pages/options/index.js @@ -0,0 +1,24 @@ +for (const a of document.getElementById('links').getElementsByTagName('a')) { + a.addEventListener('click', e => { + const path = a.getAttribute('href').replace('#', ''); + loadPage(path); + e.preventDefault(); + }) +} + +function loadPage(path) { + for (const section of document.getElementById('pages').getElementsByTagName('section')) + section.style.display = 'none'; + document.getElementById(`${path}_page`).style.display = 'block'; + + for (const a of document.getElementById('links').getElementsByTagName('a')) + if (a.getAttribute('href') == `#${path}`) a.classList.add('selected') + else a.classList.remove('selected') + + let stateObj = { id: "100" }; + window.history.pushState(stateObj, "Page 2", `/pages/options/index.html#${path}`); +} + +const r = window.location.href.match(/#(.*)/) +if (r) loadPage(r[1]); +else loadPage('general'); \ No newline at end of file diff --git a/src/pages/options/index.pug b/src/pages/options/index.pug new file mode 100644 index 00000000..6488aced --- /dev/null +++ b/src/pages/options/index.pug @@ -0,0 +1,32 @@ +doctype html +html#elementToShowWithJavaScript(lang="en") + head + meta(charset='utf-8') + meta(name="viewport" content="width=device-width, initial-scale=1") + link(rel="icon" type="image/x-icon" href="../../../assets/images/libredirect.svg") + link(href="../stylesheets/styles.css" rel="stylesheet") + title General + + script(type="module" src="./init.js") + body.option(dir="auto") + include ../widgets/links.pug + +links('general') + div#pages + include ./widgets/general.pug + include ./widgets/youtube.pug + include ./widgets/youtubeMusic.pug + include ./widgets/twitter.pug + include ./widgets/instagram.pug + include ./widgets/tiktok.pug + include ./widgets/reddit.pug + include ./widgets/imgur.pug + include ./widgets/wikipedia.pug + include ./widgets/medium.pug + include ./widgets/peertube.pug + include ./widgets/lbry.pug + include ./widgets/search.pug + include ./widgets/translate.pug + include ./widgets/maps.pug + include ./widgets/sendTargets.pug + + script(type="module" src="./index.js") \ No newline at end of file diff --git a/src/pages/options/init.js b/src/pages/options/init.js index c9bf2f00..daea2963 100644 --- a/src/pages/options/init.js +++ b/src/pages/options/init.js @@ -1,36 +1,38 @@ window.browser = window.browser || window.chrome; -import utils from "../../assets/javascripts/helpers/utils.js"; + +import localise from "../../assets/javascripts/localise.js"; function changeTheme() { - browser.storage.local.get( - "theme", - result => { - switch (result.theme) { - case "dark": - document.body.classList.add("dark-theme"); - document.body.classList.remove("light-theme"); - break; - case "light": - document.body.classList.add("light-theme"); - document.body.classList.remove("dark-theme"); - break; - default: - if (matchMedia("(prefers-color-scheme: light)").matches) { - document.body.classList.add("light-theme"); - document.body.classList.remove("dark-theme"); - } else { + return new Promise(resolve => { + browser.storage.local.get( + "theme", + r => { + switch (r.theme) { + case "dark": document.body.classList.add("dark-theme"); document.body.classList.remove("light-theme"); - } + break; + case "light": + document.body.classList.add("light-theme"); + document.body.classList.remove("dark-theme"); + break; + default: + if (matchMedia("(prefers-color-scheme: light)").matches) { + document.body.classList.add("light-theme"); + document.body.classList.remove("dark-theme"); + } else { + document.body.classList.add("dark-theme"); + document.body.classList.remove("light-theme"); + } + } + resolve(); } - } - ) + ) + }) } -changeTheme() - -browser.storage.onChanged.addListener(changeTheme) - -window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", changeTheme) +changeTheme(); +if (["ar", "iw", "ku", "fa", "ur"].includes(browser.i18n.getUILanguage())) document.getElementsByTagName("body")[0].classList.add("rtl"); +localise.localisePage(); -if (utils.isRtl()) document.getElementsByTagName("body")[0].classList.add("rtl"); \ No newline at end of file +window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", changeTheme) \ No newline at end of file diff --git a/src/pages/options/instagram/instagram.html b/src/pages/options/instagram/instagram.html deleted file mode 100644 index 2524f909..00000000 --- a/src/pages/options/instagram/instagram.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - Instagram - - - - - -
-
-

Instagram

-
-
-
-

Enable

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/instagram/instagram.js b/src/pages/options/instagram/instagram.js deleted file mode 100644 index 955aafc3..00000000 --- a/src/pages/options/instagram/instagram.js +++ /dev/null @@ -1,42 +0,0 @@ -import instagramHelper from "../../../assets/javascripts/helpers/instagram.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -const disable = document.getElementById("disable-bibliogram"); -const protocol = document.getElementById("protocol"); - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableInstagram: disable.checked, - instagramProtocol: protocol.value, - }) - changeProtocolSettings(); -}) - -function changeProtocolSettings() { - let normalDiv = document.getElementsByClassName("normal")[0]; - let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol.value == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - } - else if (protocol.value == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - } -} - -browser.storage.local.get( - [ - "disableInstagram", - "instagramProtocol" - ], - r => { - disable.checked = !r.disableInstagram; - protocol.value = r.instagramProtocol; - changeProtocolSettings(); - }) - -utils.processDefaultCustomInstances('instagram', 'bibliogram', 'normal', document); -utils.processDefaultCustomInstances('instagram', 'bibliogram', 'tor', document); - -utils.latency('instagram', 'bibliogram', document, location) \ No newline at end of file diff --git a/src/pages/options/instagram/instagram.pug b/src/pages/options/instagram/instagram.pug deleted file mode 100644 index 6acc2c6e..00000000 --- a/src/pages/options/instagram/instagram.pug +++ /dev/null @@ -1,37 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title Instagram -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('instagram') - - section.option-block - .some-block.option-block - h1 Instagram - hr - - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-bibliogram(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - - #bibliogram - hr - .normal - include ../../widgets/instances.pug - +instances('https://bibliogram.com') - include ../../widgets/latency.pug - +latency() - .tor - include ../../widgets/instances.pug - +instances('https://bibliogram.onion') - - script(type="module" src="../init.js") - script(type="module" src="./instagram.js") \ No newline at end of file diff --git a/src/pages/options/lbry/lbry.html b/src/pages/options/lbry/lbry.html deleted file mode 100644 index 4c24239c..00000000 --- a/src/pages/options/lbry/lbry.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - LBRY/Odysee - - - - - -
-
-

LBRY/Odysee

-
-
-
-

Enable

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/lbry/lbry.js b/src/pages/options/lbry/lbry.js deleted file mode 100644 index 92cc21a5..00000000 --- a/src/pages/options/lbry/lbry.js +++ /dev/null @@ -1,43 +0,0 @@ -import lbryHelper from "../../../assets/javascripts/helpers/lbry.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disable = document.getElementById("disable-lbry"); -let protocol = document.getElementById("protocol") - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableLbryTargets: !lbryHelper.checked, - lbryTargetsProtocol: protocol.value, - }); - changeProtocolSettings() -}) - -function changeProtocolSettings() { - let normalDiv = document.getElementsByClassName("normal")[0]; - let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol.value == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - } - else if (protocol.value == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - } -} - -browser.storage.local.get( - [ - "disableLbryTargets", - "lbryTargetsProtocol" - ], - r => { - disable.checked = !r.disableLbryTargets; - protocol.value = r.lbryTargetsProtocol; - changeProtocolSettings(); - } -) - -utils.processDefaultCustomInstances('lbryTargets', 'librarian', 'normal', document); -utils.processDefaultCustomInstances('lbryTargets', 'librarian', 'tor', document); - -utils.latency('lbryTargets', 'librarian', document, location) \ No newline at end of file diff --git a/src/pages/options/lbry/lbry.pug b/src/pages/options/lbry/lbry.pug deleted file mode 100644 index e579de32..00000000 --- a/src/pages/options/lbry/lbry.pug +++ /dev/null @@ -1,36 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title LBRY/Odysee -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('lbry') - - section.option-block - .some-block.option-block - h1 LBRY/Odysee - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-lbry(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - - #librarian - hr - .normal - include ../../widgets/instances.pug - +instances('https://librarian.com') - include ../../widgets/latency.pug - +latency() - .tor - include ../../widgets/instances.pug - +instances('https://librarian.onion') - - script(type="module" src="../init.js") - script(type="module" src="./lbry.js") \ No newline at end of file diff --git a/src/pages/options/maps/maps.html b/src/pages/options/maps/maps.html deleted file mode 100644 index 596289b8..00000000 --- a/src/pages/options/maps/maps.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - Maps - - - - - -
-
-

Maps

-
-
-
-

Enable

- -
-
-

Frontend

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/maps/maps.js b/src/pages/options/maps/maps.js deleted file mode 100644 index 6db8c03e..00000000 --- a/src/pages/options/maps/maps.js +++ /dev/null @@ -1,32 +0,0 @@ -import mapsHelper from "../../../assets/javascripts/helpers/maps.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -const disable = document.getElementById("disable-osm"); -const frontend = document.getElementById("maps-frontend"); - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableMaps: !disable.checked, - mapsFrontend: frontend.value, - }) - changeFrontendsSettings(); -}) - -const facilDiv = document.getElementById("facil") -function changeFrontendsSettings() { - if (frontend.value == 'facil') facilDiv.style.display = 'block'; - else if (frontend.value == 'osm') facilDiv.style.display = 'none'; -} - -browser.storage.local.get( - [ - "disableMaps", - "mapsFrontend", - ], - r => { - disable.checked = !r.disableMaps; - frontend.value = r.mapsFrontend; - changeFrontendsSettings(); - } -) -utils.processDefaultCustomInstances('maps', 'facil', 'normal', document); \ No newline at end of file diff --git a/src/pages/options/maps/maps.pug b/src/pages/options/maps/maps.pug deleted file mode 100644 index ab51f875..00000000 --- a/src/pages/options/maps/maps.pug +++ /dev/null @@ -1,33 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title Maps -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('maps') - - section.option-block - .some-block.option-block - h1 Maps - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-osm(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_frontend__") Frontend - select#maps-frontend - option(value="osm") OpenStreetMap - option(value="facil") Facil Map - - #facil - hr - .normal - include ../../widgets/instances.pug - +instances('https://facilmap.com') - include ../../widgets/latency.pug - +latency() - - script(type="module" src="../init.js") - script(type="module" src="./maps.js") \ No newline at end of file diff --git a/src/pages/options/medium/medium.html b/src/pages/options/medium/medium.html deleted file mode 100644 index cf9bab82..00000000 --- a/src/pages/options/medium/medium.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - Medium - - - - - -
-
-

Medium

-
-
-
-

Enable

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/medium/medium.js b/src/pages/options/medium/medium.js deleted file mode 100644 index 9f00878d..00000000 --- a/src/pages/options/medium/medium.js +++ /dev/null @@ -1,42 +0,0 @@ -import mediumHelper from "../../../assets/javascripts/helpers/medium.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disable = document.getElementById("disable-medium"); -let protocol = document.getElementById("protocol") - -browser.storage.local.get( - [ - "disableMedium", - "mediumProtocol" - ], - r => { - disable.checked = !r.disableMedium; - protocol.value = r.mediumProtocol; - changeProtocolSettings(); - } -) -utils.processDefaultCustomInstances('medium', 'scribe', 'normal', document); -utils.processDefaultCustomInstances('medium', 'scribe', 'tor', document); - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableMedium: !disable.checked, - mediumProtocol: protocol.value, - }) - changeProtocolSettings(); -}) - -function changeProtocolSettings() { - let normalDiv = document.getElementsByClassName("normal")[0]; - let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol.value == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - } - else if (protocol.value == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - } -} - -utils.latency('medium', 'scribe', document, location) \ No newline at end of file diff --git a/src/pages/options/medium/medium.pug b/src/pages/options/medium/medium.pug deleted file mode 100644 index eb640c46..00000000 --- a/src/pages/options/medium/medium.pug +++ /dev/null @@ -1,36 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title Medium -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('medium') - - section.option-block - .some-block.option-block - h1 Medium - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-medium(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - - #scribe - hr - .normal - include ../../widgets/instances.pug - +instances('https://scribe.com') - include ../../widgets/latency.pug - +latency() - .tor - include ../../widgets/instances.pug - +instances('https://scribe.onion') - - script(type="module" src="../init.js") - script(type="module" src="./medium.js") \ No newline at end of file diff --git a/src/pages/options/peertube/peertube.html b/src/pages/options/peertube/peertube.html deleted file mode 100644 index 384c90bf..00000000 --- a/src/pages/options/peertube/peertube.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - PeerTube - - - - - -
-
-

PeerTube

-
-
-
-

Enable

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/peertube/peertube.js b/src/pages/options/peertube/peertube.js deleted file mode 100644 index 0bf16cc7..00000000 --- a/src/pages/options/peertube/peertube.js +++ /dev/null @@ -1,40 +0,0 @@ -import peertubeHelper from "../../../assets/javascripts/helpers/peertube.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disable = document.getElementById("disable-peertube"); -let protocol = document.getElementById("protocol") -browser.storage.local.get( - [ - "disablePeertubeTargets", - "peertubeTargetsProtocol" - ], - r => { - disable.checked = !r.disablePeertubeTargets; - protocol.value = r.peertubeTargetsProtocol; - changeProtocolSettings(); - } -) -utils.processDefaultCustomInstances('peertube', 'simpleertube', 'normal', document); -utils.processDefaultCustomInstances('peertube', 'simpleertube', 'tor', document); - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disablePeertubeTargets: !disable.checked, - peertubeTargetsProtocol: protocol.value - }) - changeProtocolSettings(); -}) - -function changeProtocolSettings() { - const normalDiv = document.getElementsByClassName("normal")[0]; - const torDiv = document.getElementsByClassName("tor")[0]; - if (protocol.value == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - } - else if (protocol.value == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - } -} -utils.latency('peertube', 'simpleertube', document, location) \ No newline at end of file diff --git a/src/pages/options/peertube/peertube.pug b/src/pages/options/peertube/peertube.pug deleted file mode 100644 index a30be4db..00000000 --- a/src/pages/options/peertube/peertube.pug +++ /dev/null @@ -1,36 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title PeerTube -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('peertube') - - section.option-block - .some-block.option-block - h1 PeerTube - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-peertube(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - - #simpleertube - hr - .normal - include ../../widgets/instances.pug - +instances('https://simpleertube.com') - include ../../widgets/latency.pug - +latency() - .tor - include ../../widgets/instances.pug - +instances('https://simpleertube.onion') - - script(type="module" src="../init.js") - script(type="module" src="./peertube.js") \ No newline at end of file diff --git a/src/pages/options/reddit/reddit.html b/src/pages/options/reddit/reddit.html deleted file mode 100644 index 20a26f6c..00000000 --- a/src/pages/options/reddit/reddit.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - Reddit - - - - - -
-
-

Reddit

-
-
-
-

Enable

- -
-
-

Frontend

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js deleted file mode 100644 index 3661f73f..00000000 --- a/src/pages/options/reddit/reddit.js +++ /dev/null @@ -1,90 +0,0 @@ -import redditHelper from "../../../assets/javascripts/helpers/reddit.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let libredditDivElement = document.getElementById("libreddit") -let tedditDivElement = document.getElementById("teddit") - -let disableRedditElement = document.getElementById("disable-reddit"); -let frontend = document.getElementById("reddit-frontend"); -let protocol = document.getElementById("protocol") - -document.addEventListener("change", () => { - browser.storage.local.set({ - disableReddit: !disableRedditElement.checked, - redditProtocol: protocol.value, - redditFrontend: frontend.value, - }); - changeFrontendsSettings(); - changeProtocolSettings(); -}) - -const libredditForm = libredditDivElement.getElementsByTagName('form')[0]; -const libredditCookies = libredditForm.getElementsByTagName('input')[0]; -libredditForm.addEventListener('submit', async event => { - event.preventDefault(); - const url = new URL(libredditCookies.value); - redditHelper.initLibredditCookies(url); -}); - -const tedditForm = tedditDivElement.getElementsByTagName('form')[0]; -const tedditCookies = tedditForm.getElementsByTagName('input')[0]; -tedditForm.addEventListener('submit', async event => { - event.preventDefault(); - const url = new URL(tedditCookies.value); - redditHelper.initTedditCookies(url); -}); - -function changeProtocolSettings() { - let normalLibredditDiv = libredditDivElement.getElementsByClassName("normal")[0]; - let torLibredditDiv = libredditDivElement.getElementsByClassName("tor")[0]; - - let normalTedditDiv = tedditDivElement.getElementsByClassName("normal")[0]; - let torTedditDiv = tedditDivElement.getElementsByClassName("tor")[0]; - if (protocol.value == 'normal') { - normalLibredditDiv.style.display = 'block'; - normalTedditDiv.style.display = 'block'; - torTedditDiv.style.display = 'none'; - torLibredditDiv.style.display = 'none'; - } - else if (protocol.value == 'tor') { - normalLibredditDiv.style.display = 'none'; - normalTedditDiv.style.display = 'none'; - torTedditDiv.style.display = 'block'; - torLibredditDiv.style.display = 'block'; - } -} -function changeFrontendsSettings() { - if (frontend.value == 'libreddit') { - libredditDivElement.style.display = 'block'; - tedditDivElement.style.display = 'none'; - } - else if (frontend.value == 'teddit') { - libredditDivElement.style.display = 'none'; - tedditDivElement.style.display = 'block'; - } -} - -browser.storage.local.get( - [ - "disableReddit", - "redditProtocol", - "redditFrontend", - - "enableLibredditCustomSettings", - ], - r => { - disableRedditElement.checked = !r.disableReddit - protocol.value = r.redditProtocol - frontend.value = r.redditFrontend - changeFrontendsSettings(); - changeProtocolSettings(); - } -) - -utils.processDefaultCustomInstances('reddit', 'libreddit', 'normal', document); -utils.processDefaultCustomInstances('reddit', 'libreddit', 'tor', document); -utils.processDefaultCustomInstances('reddit', 'teddit', 'normal', document); -utils.processDefaultCustomInstances('reddit', 'teddit', 'tor', document); - -utils.latency('reddit', 'libreddit', document, location, true) -utils.latency('reddit', 'teddit', document, location, true) \ No newline at end of file diff --git a/src/pages/options/reddit/reddit.pug b/src/pages/options/reddit/reddit.pug deleted file mode 100644 index c522af29..00000000 --- a/src/pages/options/reddit/reddit.pug +++ /dev/null @@ -1,52 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title Reddit -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('reddit') - - section.option-block - .some-block.option-block - h1 Reddit - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-reddit(type="checkbox") - - .some-block.option-block - h4#frontend(data-localise="__MSG_frontend__") Frontend - select#reddit-frontend - option(value="libreddit") Libreddit - option(value="teddit") Teddit - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - - #libreddit - hr - .normal - include ../../widgets/instances.pug - +instances('https://libreddit.com') - include ../../widgets/latency.pug - +latency('libreddit') - .tor - include ../../widgets/instances.pug - +instances('https://libreddit.onion') - - #teddit - hr - .normal - include ../../widgets/instances.pug - +instances('https://teddit.com') - +latency('teddit') - .tor - include ../../widgets/instances.pug - +instances('https://teddit.onion') - - script(type="module" src="../init.js") - script(type="module" src="./reddit.js") \ No newline at end of file diff --git a/src/pages/options/search/search.html b/src/pages/options/search/search.html deleted file mode 100644 index e7107d7b..00000000 --- a/src/pages/options/search/search.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - - - Search - - - - - -
-
-

Search

-
-
-
-

Enable

- -
-
-

Frontend

- -
-
-
-

Protocol

- -
-
-
-

Note: To use Search to its full potential, make LibRedirect as the Default Search Engine

-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/search/search.js b/src/pages/options/search/search.js deleted file mode 100644 index fb928055..00000000 --- a/src/pages/options/search/search.js +++ /dev/null @@ -1,142 +0,0 @@ -import searchHelper from "../../../assets/javascripts/helpers/search.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let searxDiv = document.getElementById("searx"); -let searxngDiv = document.getElementById("searxng"); -let whoogleDiv = document.getElementById("whoogle"); - -let disable = document.getElementById("disable-search"); -let frontend = document.getElementById("search-frontend"); -let protocol = document.getElementById("protocol") - -const searxngForm = searxngDiv.getElementsByTagName('form')[0]; -const searxngCookies = searxngForm.getElementsByTagName('input')[0]; -searxngForm.addEventListener('submit', async event => { - event.preventDefault(); - const url = new URL(searxngCookies.value); - searchHelper.initSearxngCookies(url); -}); - -const searxForm = searxDiv.getElementsByTagName('form')[0]; -const searxCookies = searxForm.getElementsByTagName('input')[0]; -searxForm.addEventListener('submit', async event => { - event.preventDefault(); - const url = new URL(searxCookies.value); - searchHelper.initSearxCookies(url); -}); - -browser.storage.local.get( - [ - "disableSearch", - "searchFrontend", - "searchProtocol", - ], - r => { - disable.checked = !r.disableSearch; - frontend.value = r.searchFrontend; - protocol.value = r.searchProtocol; - - changeFrontendsSettings(); - changeProtocolSettings(); - } -); - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableSearch: !disable.checked, - searchFrontend: frontend.value, - searchProtocol: protocol.value, - }); - changeFrontendsSettings(frontend.value); - changeProtocolSettings(protocol.value); -}) - -function changeFrontendsSettings() { - let SearxWhoogleElement = document.getElementById("searx-whoogle"); - if (frontend.value == 'searx') { - searxDiv.style.display = 'block'; - searxngDiv.style.display = 'none'; - whoogleDiv.style.display = 'none'; - SearxWhoogleElement.style.display = 'block'; - } - else if (frontend.value == 'searxng') { - searxDiv.style.display = 'none'; - searxngDiv.style.display = 'block'; - whoogleDiv.style.display = 'none'; - SearxWhoogleElement.style.display = 'block'; - } - else if (frontend.value == 'whoogle') { - searxDiv.style.display = 'none'; - searxngDiv.style.display = 'none'; - whoogleDiv.style.display = 'block'; - SearxWhoogleElement.style.display = 'block'; - } -} - -function changeProtocolSettings() { - let normalsearxDiv = searxDiv.getElementsByClassName("normal")[0]; - let torsearxDiv = searxDiv.getElementsByClassName("tor")[0]; - let i2psearxDiv = searxDiv.getElementsByClassName("i2p")[0]; - - let normalsearxngDiv = searxngDiv.getElementsByClassName("normal")[0]; - let torsearxngDiv = searxngDiv.getElementsByClassName("tor")[0]; - let i2psearxngDiv = searxngDiv.getElementsByClassName("i2p")[0]; - - let normalwhoogleDiv = whoogleDiv.getElementsByClassName("normal")[0]; - let torwhoogleDiv = whoogleDiv.getElementsByClassName("tor")[0]; - let i2pwhoogleDiv = whoogleDiv.getElementsByClassName("i2p")[0]; - - if (protocol.value == 'normal') { - normalsearxDiv.style.display = 'block'; - normalsearxngDiv.style.display = 'block'; - normalwhoogleDiv.style.display = 'block'; - - torsearxDiv.style.display = 'none'; - torsearxngDiv.style.display = 'none'; - torwhoogleDiv.style.display = 'none'; - - i2psearxDiv.style.display = 'none'; - i2psearxngDiv.style.display = 'none'; - i2pwhoogleDiv.style.display = 'none'; - } - else if (protocol.value == 'tor') { - normalsearxDiv.style.display = 'none'; - normalsearxngDiv.style.display = 'none'; - normalwhoogleDiv.style.display = 'none'; - - torsearxDiv.style.display = 'block'; - torsearxngDiv.style.display = 'block'; - torwhoogleDiv.style.display = 'block'; - - i2psearxDiv.style.display = 'none'; - i2psearxngDiv.style.display = 'none'; - i2pwhoogleDiv.style.display = 'none'; - } - else if (protocol.value == 'i2p') { - normalsearxDiv.style.display = 'none'; - normalsearxngDiv.style.display = 'none'; - normalwhoogleDiv.style.display = 'none'; - - torsearxDiv.style.display = 'none'; - torsearxngDiv.style.display = 'none'; - torwhoogleDiv.style.display = 'none'; - - i2psearxDiv.style.display = 'block'; - i2psearxngDiv.style.display = 'block'; - i2pwhoogleDiv.style.display = 'block'; - } -} - -utils.processDefaultCustomInstances('search', 'searx', 'normal', document); -utils.processDefaultCustomInstances('search', 'searx', 'tor', document); -utils.processDefaultCustomInstances('search', 'searx', 'i2p', document); -utils.processDefaultCustomInstances('search', 'searxng', 'normal', document); -utils.processDefaultCustomInstances('search', 'searxng', 'tor', document); -utils.processDefaultCustomInstances('search', 'searxng', 'i2p', document); -utils.processDefaultCustomInstances('search', 'whoogle', 'normal', document); -utils.processDefaultCustomInstances('search', 'whoogle', 'tor', document); -utils.processDefaultCustomInstances('search', 'whoogle', 'i2p', document); - -utils.latency('search', 'searx', document, location, true) -utils.latency('search', 'searxng', document, location, true) -utils.latency('search', 'whoogle', document, location, true) diff --git a/src/pages/options/search/search.pug b/src/pages/options/search/search.pug deleted file mode 100644 index a9001243..00000000 --- a/src/pages/options/search/search.pug +++ /dev/null @@ -1,78 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title Search -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('search') - - section.option-block - .some-block.option-block - h1 Search - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-search(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_frontend__") Frontend - select#search-frontend - option(value="searxng") SearXNG - option(value="searx") SearX - option(value="whoogle") Whoogle - - - #searx-whoogle - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - option(value="i2p" data-localise="__MSG_i2p__") I2P - - .some-block - h4(data-localise="__MSG_searchNote__") Note: To use Search to its full potential, make LibRedirect as the Default Search Engine - - #searx - hr - .normal - include ../../widgets/instances.pug - +instances('https://searx.com') - include ../../widgets/latency.pug - +latency('searx') - .tor - include ../../widgets/instances.pug - +instances('https://searx.onion') - .i2p - include ../../widgets/instances.pug - +instances('https://searx.i2p') - - #searxng - hr - .normal - include ../../widgets/instances.pug - +instances('https://searxng.com') - +latency('searxng') - .tor - include ../../widgets/instances.pug - +instances('https://searxng.onion') - .i2p - include ../../widgets/instances.pug - +instances('https://searxng.i2p') - - #whoogle - hr - .normal - include ../../widgets/instances.pug - +instances('https://whoogle.com') - +latency('whoogle') - .tor - include ../../widgets/instances.pug - +instances('https://whoogle.onion') - .i2p - include ../../widgets/instances.pug - +instances('https://whoogle.i2p') - - script(type="module" src="../init.js") - script(type="module" src="./search.js") \ No newline at end of file diff --git a/src/pages/options/sendTargets/sendTargets.html b/src/pages/options/sendTargets/sendTargets.html deleted file mode 100644 index f9f72efc..00000000 --- a/src/pages/options/sendTargets/sendTargets.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - Send Files - - - - - -
-
-

Send Files

-
-
-
-

Enable

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/sendTargets/sendTargets.js b/src/pages/options/sendTargets/sendTargets.js deleted file mode 100644 index 0cb1da09..00000000 --- a/src/pages/options/sendTargets/sendTargets.js +++ /dev/null @@ -1,43 +0,0 @@ -import sendTargetsHelper from "../../../assets/javascripts/helpers/sendTargets.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disable = document.getElementById("disable-sendTargets"); -let protocol = document.getElementById("protocol") - -browser.storage.local.get( - [ - "disableSendTarget", - "sendTargetsProtocol", - ], - r => { - disable.checked = !r.disableSendTarget; - protocol.value = r.sendTargetsProtocol; - changeProtocolSettings(); - } -) - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableSendTarget: !disable.checked, - sendTargetsProtocol: protocol.value, - }) - changeProtocolSettings(); -}) - -function changeProtocolSettings() { - let normalDiv = document.getElementsByClassName("normal")[0]; - let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol.value == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - } - else if (protocol.value == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - } -} - -utils.processDefaultCustomInstances('sendTargets', 'send', 'normal', document); -utils.processDefaultCustomInstances('sendTargets', 'send', 'tor', document); - -utils.latency('sendTargets', 'send', document, location) \ No newline at end of file diff --git a/src/pages/options/sendTargets/sendTargets.pug b/src/pages/options/sendTargets/sendTargets.pug deleted file mode 100644 index 027aee79..00000000 --- a/src/pages/options/sendTargets/sendTargets.pug +++ /dev/null @@ -1,36 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title Send Files -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('sendTargets') - - section.option-block - .some-block.option-block - h1 Send Files - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-sendTargets(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - - #send - hr - .normal - include ../../widgets/instances.pug - +instances('https://send.com') - include ../../widgets/latency.pug - +latency() - .tor - include ../../widgets/instances.pug - +instances('https://send.onion') - - script(type="module" src="../init.js") - script(type="module" src="./sendTargets.js") \ No newline at end of file diff --git a/src/pages/options/tiktok/tiktok.html b/src/pages/options/tiktok/tiktok.html deleted file mode 100644 index b4fb1d2a..00000000 --- a/src/pages/options/tiktok/tiktok.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - TikTok - - - - - -
-
-

TikTok

-
-
-
-

Enable

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/tiktok/tiktok.js b/src/pages/options/tiktok/tiktok.js deleted file mode 100644 index 5a57b46c..00000000 --- a/src/pages/options/tiktok/tiktok.js +++ /dev/null @@ -1,55 +0,0 @@ -import tiktokHelper from "../../../assets/javascripts/helpers/tiktok.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disable = document.getElementById("disable-tiktok"); -let protocol = document.getElementById("protocol") - -document.addEventListener("change", () => { - browser.storage.local.set({ - disableTiktok: !disable.checked, - tiktokProtocol: protocol.value, - }); - changeProtocolSettings(); -}) - -window.onblur = tiktokHelper.initProxiTokCookies; - -browser.storage.local.get( - [ - "disableTiktok", - "tiktokProtocol", - ], - r => { - disable.checked = !r.disableTiktok; - protocol.value = r.tiktokProtocol; - changeProtocolSettings(); - let normalDiv = document.getElementsByClassName("normal")[0]; - let torDiv = document.getElementsByClassName("tor")[0]; - if (r.tiktokProtocol == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - } - else if (r.tiktokProtocol == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - } - } -) - -function changeProtocolSettings() { - let normalDiv = document.getElementsByClassName("normal")[0]; - let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol.value == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - } - else if (protocol.value == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - } -} - -utils.processDefaultCustomInstances('tiktok', 'proxiTok', 'normal', document); -utils.processDefaultCustomInstances('tiktok', 'proxiTok', 'tor', document); - -utils.latency('tiktok', 'proxiTok', document, location) \ No newline at end of file diff --git a/src/pages/options/tiktok/tiktok.pug b/src/pages/options/tiktok/tiktok.pug deleted file mode 100644 index db765c45..00000000 --- a/src/pages/options/tiktok/tiktok.pug +++ /dev/null @@ -1,36 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title TikTok -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('tiktok') - - section.option-block - .some-block.option-block - h1 TikTok - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-tiktok(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - - #proxiTok - hr - .normal - include ../../widgets/instances.pug - +instances('https://proxitok.com') - include ../../widgets/latency.pug - +latency() - .tor - include ../../widgets/instances.pug - +instances('https://proxitok.onion') - - script(type="module" src="../init.js") - script(type="module" src="./tiktok.js") diff --git a/src/pages/options/translate/translate.html b/src/pages/options/translate/translate.html deleted file mode 100644 index 879917bd..00000000 --- a/src/pages/options/translate/translate.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - Translate - - - - - -
-
-

Translate

-
-
-
-

Enable

- -
-
-

Frontend

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/translate/translate.js b/src/pages/options/translate/translate.js deleted file mode 100644 index 998ebc32..00000000 --- a/src/pages/options/translate/translate.js +++ /dev/null @@ -1,75 +0,0 @@ -import translateHelper from "../../../assets/javascripts/helpers/translate/translate.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disable = document.getElementById("disable-simplyTranslate"); -let simplyTranslateDiv = document.getElementById("simplyTranslate"); -let lingvaDiv = document.getElementById("lingva"); -let frontend = document.getElementById("translate-frontend"); -let protocol = document.getElementById("protocol"); - - -function changeFrontendsSettings() { - if (frontend.value == 'simplyTranslate') { - simplyTranslateDiv.style.display = 'block'; - lingvaDiv.style.display = 'none'; - } - else if (frontend.value == 'lingva') { - simplyTranslateDiv.style.display = 'none'; - lingvaDiv.style.display = 'block'; - } -} - -function changeProtocolSettings() { - let normalSimplyTranslateDiv = document.getElementById("simplyTranslate").getElementsByClassName("normal")[0]; - let torSimplyTranslateDiv = document.getElementById("simplyTranslate").getElementsByClassName("tor")[0]; - - let normalLingvaDiv = document.getElementById("lingva").getElementsByClassName("normal")[0]; - let torLingvaDiv = document.getElementById("lingva").getElementsByClassName("tor")[0]; - - if (protocol.value == 'normal') { - normalSimplyTranslateDiv.style.display = 'block'; - normalLingvaDiv.style.display = 'block'; - torLingvaDiv.style.display = 'none'; - torSimplyTranslateDiv.style.display = 'none'; - } - else if (protocol.value == 'tor') { - normalSimplyTranslateDiv.style.display = 'none'; - normalLingvaDiv.style.display = 'none'; - torLingvaDiv.style.display = 'block'; - torSimplyTranslateDiv.style.display = 'block'; - } -} - -browser.storage.local.get( - [ - "translateDisable", - "translateFrontend", - "translateProtocol", - ], - r => { - disable.checked = !r.translateDisable; - frontend.value = r.translateFrontend; - protocol.value = r.translateProtocol; - changeFrontendsSettings(); - changeProtocolSettings(); - } -); - -document.addEventListener("change", () => { - browser.storage.local.set({ - translateDisable: !disable.checked, - translateFrontend: frontend.value, - translateProtocol: protocol.value, - }) - changeProtocolSettings(); - changeFrontendsSettings(); -}) - - -utils.processDefaultCustomInstances('translate', 'simplyTranslate', 'normal', document) -utils.processDefaultCustomInstances('translate', 'simplyTranslate', 'tor', document); -utils.processDefaultCustomInstances('translate', 'lingva', 'normal', document); -utils.processDefaultCustomInstances('translate', 'lingva', 'tor', document); - -utils.latency('translate', 'simplyTranslate', document, location, true) -utils.latency('translate', 'lingva', document, location, true) \ No newline at end of file diff --git a/src/pages/options/translate/translate.pug b/src/pages/options/translate/translate.pug deleted file mode 100644 index a1689e29..00000000 --- a/src/pages/options/translate/translate.pug +++ /dev/null @@ -1,50 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title Translate -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('translate') - - section.option-block - .some-block.option-block - h1 Translate - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-simplyTranslate(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_frontend__") Frontend - select#translate-frontend - option(value="simplyTranslate") SimplyTranslate - option(value="lingva") Lingva - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - - hr - #simplyTranslate - .normal - include ../../widgets/instances.pug - +instances('https://simplytranslate.org') - include ../../widgets/latency.pug - +latency('simplyTranslate') - .tor - include ../../widgets/instances.pug - +instances('http://hxecvvetgrznmprg.onion') - #lingva - .normal - include ../../widgets/instances.pug - +instances('https://lingvatranslate.com') - +latency('lingva') - .tor - include ../../widgets/instances.pug - +instances('http://tyzxppdeoojdnaux.onion') - - script(type="module" src="../init.js") - script(type="module" src="./translate.js") diff --git a/src/pages/options/twitter/twitter.html b/src/pages/options/twitter/twitter.html deleted file mode 100644 index 384ba9da..00000000 --- a/src/pages/options/twitter/twitter.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - Twitter - - - - - -
-
-

Twitter

-
-
-
-

Enable

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/twitter/twitter.js b/src/pages/options/twitter/twitter.js deleted file mode 100644 index 72c3d926..00000000 --- a/src/pages/options/twitter/twitter.js +++ /dev/null @@ -1,53 +0,0 @@ -import twitterHelper from "../../../assets/javascripts/helpers/twitter.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disable = document.getElementById("disable-nitter"); -let protocol = document.getElementById("protocol"); - -let nitterDiv = document.getElementById('nitter'); - -const nitterForm = nitterDiv.getElementsByTagName('form')[0]; -const nitterCookies = nitterForm.getElementsByTagName('input')[0]; -nitterForm.addEventListener('submit', event => { - event.preventDefault(); - const url = new URL(nitterCookies.value); - twitterHelper.initNitterCookies(url); -}); - -browser.storage.local.get( - [ - "disableTwitter", - "twitterProtocol", - ], - r => { - disable.checked = !r.disableTwitter; - protocol.value = r.twitterProtocol; - changeProtocolSettings(); - } -) - -document.addEventListener("change", () => { - browser.storage.local.set({ - disableTwitter: !disable.checked, - twitterProtocol: protocol.value, - }); - changeProtocolSettings(); -}) - -function changeProtocolSettings() { - let normalDiv = nitterDiv.getElementsByClassName("normal")[0]; - let torDiv = nitterDiv.getElementsByClassName("tor")[0]; - if (protocol.value == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - } - else if (protocol.value == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - } -} - -utils.processDefaultCustomInstances('twitter', 'nitter', 'normal', document); -utils.processDefaultCustomInstances('twitter', 'nitter', 'tor', document) - -utils.latency('twitter', 'nitter', document, location) \ No newline at end of file diff --git a/src/pages/options/twitter/twitter.pug b/src/pages/options/twitter/twitter.pug deleted file mode 100644 index 092c3e45..00000000 --- a/src/pages/options/twitter/twitter.pug +++ /dev/null @@ -1,37 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title Twitter -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('twitter') - - section.option-block - .some-block.option-block - h1 Twitter - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-nitter(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - - #nitter - hr - .normal - include ../../widgets/instances.pug - +instances('https://nitter.com') - include ../../widgets/latency.pug - +latency() - .tor - include ../../widgets/instances.pug - +instances('https://nitter.onion') - - - script(type="module" src="../init.js") - script(type="module" src="./twitter.js") diff --git a/src/pages/options/widgets/general.js b/src/pages/options/widgets/general.js new file mode 100644 index 00000000..c810fb8a --- /dev/null +++ b/src/pages/options/widgets/general.js @@ -0,0 +1,225 @@ +"use strict"; +window.browser = window.browser || window.chrome; + +import utils from "../../../assets/javascripts/utils.js"; +import generalHelper from "../../../assets/javascripts/general.js"; + +import youtubeHelper from "../../../assets/javascripts/youtube/youtube.js"; +import youtubeMusicHelper from "../../../assets/javascripts/youtubeMusic.js"; +import twitterHelper from "../../../assets/javascripts/twitter.js"; +import instagramHelper from "../../../assets/javascripts/instagram.js"; +import redditHelper from "../../../assets/javascripts/reddit.js"; +import searchHelper from "../../../assets/javascripts/search.js"; +import translateHelper from "../../../assets/javascripts/translate/translate.js"; +import mapsHelper from "../../../assets/javascripts/maps.js"; +import wikipediaHelper from "../../../assets/javascripts/wikipedia.js"; +import mediumHelper from "../../../assets/javascripts/medium.js"; +import imgurHelper from "../../../assets/javascripts/imgur.js"; +import tiktokHelper from "../../../assets/javascripts/tiktok.js"; +import sendTargetsHelper from "../../../assets/javascripts/sendTargets.js"; +import peertubeHelper from "../../../assets/javascripts/peertube.js"; +import lbryHelper from "../../../assets/javascripts/lbry.js"; + +let updateInstancesElement = document.getElementById("update-instances"); +updateInstancesElement.addEventListener("click", () => { + let oldHtml = updateInstancesElement.innerHTML + updateInstancesElement.innerHTML = '...'; + if (utils.updateInstances()) { + updateInstancesElement.innerHTML = 'Done!'; + new Promise(resolve => setTimeout(resolve, 1500)).then( // sleep 1500ms + () => updateInstancesElement.innerHTML = oldHtml + ) + } + else + updateInstancesElement.innerHTML = 'Failed Miserabely'; +}); + +let exportSettingsElement = document.getElementById("export-settings"); + +function exportSettings() { + browser.storage.local.get( + null, + result => { + let resultString = JSON.stringify(result, null, ' '); + exportSettingsElement.href = 'data:application/json;base64,' + btoa(resultString); + exportSettingsElement.download = 'libredirect-settings.json'; + } + ); +} +exportSettings(); + +browser.storage.onChanged.addListener(exportSettings); + +let importSettingsElement = document.getElementById("import-settings"); +let importSettingsElementText = document.getElementById('import_settings_text'); +importSettingsElement.addEventListener("change", + () => { + let file = importSettingsElement.files[0]; + const reader = new FileReader(); + reader.readAsText(file); + reader.onload = async () => { + const data = JSON.parse(reader.result) + if ( + "theme" in data && + "disableImgur" in data && + "cloudflareList" in data && + "imgurRedirects" in data + ) { + console.log('importing a valid file...'); + await browser.storage.local.set({ ...data }) + location.reload(); + } else + importError() + } + reader.onerror = error => importError(); + } +); +function importError() { + const oldHTML = importSettingsElementText.innerHTML; + importSettingsElementText.innerHTML = 'Error!'; + setTimeout(() => importSettingsElementText.innerHTML = oldHTML, 1000); +} + +document.getElementById("reset-settings").addEventListener("click", + async () => { + await browser.storage.local.clear(); + fetch('/instances/blocklist.json').then(response => response.text()).then(async data => { + await browser.storage.local.set({ cloudflareList: JSON.parse(data) }) + await generalHelper.initDefaults(); + await youtubeHelper.initDefaults(); + await youtubeMusicHelper.initDefaults(); + await twitterHelper.initDefaults(); + await instagramHelper.initDefaults(); + await mapsHelper.initDefaults(); + await searchHelper.initDefaults(); + await translateHelper.initDefaults(); + await mediumHelper.initDefaults(); + await redditHelper.initDefaults(); + await wikipediaHelper.initDefaults(); + await imgurHelper.initDefaults(); + await tiktokHelper.initDefaults(); + await sendTargetsHelper.initDefaults(); + await peertubeHelper.initDefaults(); + await lbryHelper.initDefaults(); + location.reload(); + }) + } +); + +let autoRedirectElement = document.getElementById("auto-redirect") +autoRedirectElement.addEventListener("change", + event => browser.storage.local.set({ autoRedirect: event.target.checked }) +); + +let themeElement = document.getElementById("theme"); +themeElement.addEventListener("change", event => { + const value = event.target.options[theme.selectedIndex].value; + browser.storage.local.set({ theme: value }); + location.reload(); +}) + +let nameCustomInstanceInput = document.getElementById("exceptions-custom-instance"); +let instanceTypeElement = document.getElementById("exceptions-custom-instance-type"); +let instanceType = "url" + +let popupFrontends; +for (const frontend of generalHelper.allPopupFrontends) + document.getElementById(frontend).addEventListener("change", + event => { + if (event.target.checked && !popupFrontends.includes(frontend)) + popupFrontends.push(frontend) + else if (popupFrontends.includes(frontend)) { + var index = popupFrontends.indexOf(frontend); + if (index !== -1) popupFrontends.splice(index, 1); + } + browser.storage.local.set({ popupFrontends }) + } + ) + + +browser.storage.local.get( + [ + 'theme', + 'autoRedirect', + 'exceptions' + ], + r => { + autoRedirectElement.checked = r.autoRedirect; + themeElement.value = r.theme; + instanceTypeElement.addEventListener("change", + event => { + instanceType = event.target.options[instanceTypeElement.selectedIndex].value + if (instanceType == 'url') { + nameCustomInstanceInput.setAttribute("type", "url"); + nameCustomInstanceInput.setAttribute("placeholder", "https://www.google.com"); + } + else if (instanceType == 'regex') { + nameCustomInstanceInput.setAttribute("type", "text"); + nameCustomInstanceInput.setAttribute("placeholder", "https?:\/\/(www\.|)youtube\.com\/"); + } + } + ) + let exceptionsCustomInstances = r.exceptions; + function calcExceptionsCustomInstances() { + document.getElementById("exceptions-custom-checklist").innerHTML = + [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex].map( + (x) => `
+ ${x} + +
+
` + ).join('\n'); + + for (const x of [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex]) { + document.getElementById(`clear-${x}`).addEventListener("click", + () => { + console.log(x); + let index; + index = exceptionsCustomInstances.url.indexOf(x); + if (index > -1) + exceptionsCustomInstances.url.splice(index, 1); + else { + index = exceptionsCustomInstances.regex.indexOf(x); + if (index > -1) + exceptionsCustomInstances.regex.splice(index, 1); + } + browser.storage.local.set({ exceptions: exceptionsCustomInstances }) + calcExceptionsCustomInstances(); + }); + } + } + calcExceptionsCustomInstances(); + document.getElementById("custom-exceptions-instance-form").addEventListener("submit", (event) => { + event.preventDefault(); + + let val + if (instanceType == 'url') { + if (nameCustomInstanceInput.validity.valid) { + let url = new URL(nameCustomInstanceInput.value); + val = `${url.protocol}//${url.host}` + if (!exceptionsCustomInstances.url.includes(val)) exceptionsCustomInstances.url.push(val) + } + } else if (instanceType == 'regex') { + val = nameCustomInstanceInput.value + if (val.trim() != '' && !exceptionsCustomInstances.regex.includes(val)) exceptionsCustomInstances.regex.push(val) + } + if (val) { + browser.storage.local.set({ exceptions: exceptionsCustomInstances }) + nameCustomInstanceInput.value = ''; + } + calcExceptionsCustomInstances(); + }) + + browser.storage.local.get('popupFrontends', + r => { + popupFrontends = r.popupFrontends; + for (const frontend of generalHelper.allPopupFrontends) + document.getElementById(frontend).checked = popupFrontends.includes(frontend); + } + ) + }) diff --git a/src/pages/options/widgets/general.pug b/src/pages/options/widgets/general.pug new file mode 100644 index 00000000..c1fcc459 --- /dev/null +++ b/src/pages/options/widgets/general.pug @@ -0,0 +1,167 @@ +section#general_page.option-block + .some-block.option-block + h1(data-localise="__MSG_general__") General + hr + + .some-block.option-block + h4(data-localise="__MSG_theme__") Theme + select#theme + option(value="DEFAULT" data-localise="__MSG_system__") System + option(value="light" data-localise="__MSG_light__") Light + option(value="dark" data-localise="__MSG_dark__") Dark + + .some-block.option-block + h4(data-localise="__MSG_autoRedirect__") + input#auto-redirect(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_exceptions__") + + form#custom-exceptions-instance-form + .some-block.option-block + .some-block(style="padding:0;") + input#exceptions-custom-instance(placeholder="https://www.google.com" type="url") + |  + select#exceptions-custom-instance-type + option(value="url") URL + option(value="regex") Regex + |  + button#exceptions-add-instance.add(type="submit") + svg(xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor") + path(d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z") + + #exceptions-custom-checklist.checklist + + .buttons.buttons-inline + a#update-instances.button.button-inline + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z") + x(data-localise="__MSG_updateInstances__") Update Instances + + |    + + label#import_settings_text.button.button-inline(for="import-settings") + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z") + |  + x(data-localise="__MSG_importSettings__") Import Settings + input#import-settings.button.button-inline(type="file" style="display:none;") + + |    + + a#export-settings.button.button-inline + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z") + |  + x(data-localise="__MSG_exportSettings__") Export Settings + + |    + + a#reset-settings.button.button-inline + svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M12,5V2L8,6l4,4V7c3.31,0,6,2.69,6,6c0,2.97-2.17,5.43-5,5.91v2.02c3.95-0.49,7-3.85,7-7.93C20,8.58,16.42,5,12,5z") + path(d="M6,13c0-1.65,0.67-3.15,1.76-4.24L6.34,7.34C4.9,8.79,4,10.79,4,13c0,4.08,3.05,7.44,7,7.93v-2.02 C8.17,18.43,6,15.97,6,13z") + x(data-localise="__MSG_resetSettings__") Reset Settings + hr + + .some-block.option-block + h4(data-localise="__MSG_customPopup__") Customize Popup + + #popup-frontends-checklist.checklist-popup + div + div + img(src="../../../assets/images/youtube-icon.png") + x(data-localise="__MSG_youtube__") YouTube + input#youtube(type="checkbox") + div + div + img(src="../../../assets/images/youtube-music-icon.png") + x(data-localise="__MSG_ytmusic__") YoutubeMusic + input#youtubeMusic(type="checkbox") + div + div + img(src="../../../assets/images/twitter-icon.png") + x(data-localise="__MSG_twitter__") Twitter + input#twitter(type="checkbox") + + div + div + img(src="../../../assets/images/instagram-icon.png") + x(data-localise="__MSG_instagram__") Instagram + input#instagram(type="checkbox") + + div + div + img(src="../../../assets/images/tiktok-icon.png") + x(data-localise="__MSG_tiktok__") TikTok + input#tikTok(type="checkbox") + + div + div + img(src="../../../assets/images/imgur-icon.png") + x(data-localise="__MSG_imgur__") Imgur + input#imgur(type="checkbox") + + div + div + img(src="../../../assets/images/reddit-icon.png") + x(data-localise="__MSG_reddit__") Reddit + input#reddit(type="checkbox") + + div + div + svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor") + path(d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z") + x(data-localise="__MSG_search__") Search + input#search(type="checkbox") + + div + div + svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor") + path(d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z") + x(data-localise="__MSG_translate__") Translate + input#translate(type="checkbox") + + div + div + svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor") + path(d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z") + x(data-localise="__MSG_maps__") Maps + input#maps(type="checkbox") + + div + div + img(src="../../../assets/images/wikipedia-icon.svg") + x(data-localise="__MSG_wikipedia__") Wikipedia + input#wikipedia(type="checkbox") + + div + div + svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor") + circle(cx="500" cy="500" r="500") + ellipse(ry="475" rx="250" cy="501" cx="1296") + ellipse(cx="1682" cy="502" rx="88" ry="424") + x(data-localise="__MSG_medium__") Medium + input#medium(type="checkbox") + + div + div + img(src="../../../assets/images/peertube-icon.svg") + x(data-localise="__MSG_peertube__") PeerTube + input#peertube(type="checkbox") + + div + div + img(src="../../../assets/images/lbry-icon.png") + x(data-localise="__MSG_lbry__") LBRY/Odysee + input#lbry(type="checkbox") + + div + div + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z") + x(data-localise="__MSG_sendFiles__") Send Files + input#sendTargets(type="checkbox") + + + script(type="module" src="./widgets/general.js") \ No newline at end of file diff --git a/src/pages/options/widgets/imgur.js b/src/pages/options/widgets/imgur.js new file mode 100644 index 00000000..036f33ed --- /dev/null +++ b/src/pages/options/widgets/imgur.js @@ -0,0 +1,52 @@ +import imgurHelper from "../../../assets/javascripts/imgur.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disableImgurElement = document.getElementById("disable-imgur"); +let protocolElement = document.getElementById("protocol") + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disableImgur: !disableImgurElement.checked, + imgurProtocol: protocolElement.value, + }); + changeProtocolSettings(protocolElement.value); +}) + +function changeProtocolSettings(protocol) { + let normalDiv = document.getElementsByClassName("normal")[0]; + let torDiv = document.getElementsByClassName("tor")[0]; + let i2pDiv = document.getElementsByClassName("i2p")[0]; + if (protocol == 'normal') { + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + i2pDiv.style.display = 'none'; + } + else if (protocol == 'tor') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + i2pDiv.style.display = 'none'; + } + else if (protocol == 'i2p') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'none'; + i2pDiv.style.display = 'block'; + } +} + +browser.storage.local.get( + [ + "disableImgur", + "imgurProtocol", + ], + r => { + disableImgurElement.checked = !r.disableImgur; + protocolElement.value = r.imgurProtocol; + changeProtocolSettings(r.imgurProtocol); + } +); + +utils.processDefaultCustomInstances('imgur', 'rimgo', 'normal', document); +utils.processDefaultCustomInstances('imgur', 'rimgo', 'tor', document); +utils.processDefaultCustomInstances('imgur', 'rimgo', 'i2p', document); + +utils.latency('imgur', 'rimgo', document, location) \ No newline at end of file diff --git a/src/pages/options/widgets/imgur.pug b/src/pages/options/widgets/imgur.pug new file mode 100644 index 00000000..45104cd3 --- /dev/null +++ b/src/pages/options/widgets/imgur.pug @@ -0,0 +1,32 @@ +section#imgur_page.option-block + .some-block.option-block + h1(data-localise="__MSG_imgur__") Imgur + hr + + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-imgur(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + option(value="i2p" data-localise="__MSG_i2p__") I2P + + #rimgo + hr + .normal + include ../../widgets/instances.pug + +instances('https://rimgo.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://rimgo.onion') + + .i2p + include ../../widgets/instances.pug + +instances('https://rimgo.onion') + + script(type="module" src="./widgets/imgur.js") \ No newline at end of file diff --git a/src/pages/options/widgets/instagram.js b/src/pages/options/widgets/instagram.js new file mode 100644 index 00000000..f04fc8c5 --- /dev/null +++ b/src/pages/options/widgets/instagram.js @@ -0,0 +1,42 @@ +import instagramHelper from "../../../assets/javascripts/instagram.js"; +import utils from "../../../assets/javascripts/utils.js"; + +const disable = document.getElementById("disable-bibliogram"); +const protocol = document.getElementById("protocol"); + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disableInstagram: disable.checked, + instagramProtocol: protocol.value, + }) + changeProtocolSettings(); +}) + +function changeProtocolSettings() { + let normalDiv = document.getElementsByClassName("normal")[0]; + let torDiv = document.getElementsByClassName("tor")[0]; + if (protocol.value == 'normal') { + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + } + else if (protocol.value == 'tor') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + } +} + +browser.storage.local.get( + [ + "disableInstagram", + "instagramProtocol" + ], + r => { + disable.checked = !r.disableInstagram; + protocol.value = r.instagramProtocol; + changeProtocolSettings(); + }) + +utils.processDefaultCustomInstances('instagram', 'bibliogram', 'normal', document); +utils.processDefaultCustomInstances('instagram', 'bibliogram', 'tor', document); + +utils.latency('instagram', 'bibliogram', document, location) \ No newline at end of file diff --git a/src/pages/options/widgets/instagram.pug b/src/pages/options/widgets/instagram.pug new file mode 100644 index 00000000..e5698b41 --- /dev/null +++ b/src/pages/options/widgets/instagram.pug @@ -0,0 +1,27 @@ +section#instagram_page.option-block + .some-block.option-block + h1(data-localise="__MSG_instagram__") Instagram + hr + + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-bibliogram(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #bibliogram + hr + .normal + include ../../widgets/instances.pug + +instances('https://bibliogram.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://bibliogram.onion') + + script(type="module" src="./widgets/instagram.js") \ No newline at end of file diff --git a/src/pages/options/widgets/lbry.js b/src/pages/options/widgets/lbry.js new file mode 100644 index 00000000..2aac362f --- /dev/null +++ b/src/pages/options/widgets/lbry.js @@ -0,0 +1,43 @@ +import lbryHelper from "../../../assets/javascripts/lbry.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disable = document.getElementById("disable-lbry"); +let protocol = document.getElementById("protocol") + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disableLbryTargets: !lbryHelper.checked, + lbryTargetsProtocol: protocol.value, + }); + changeProtocolSettings() +}) + +function changeProtocolSettings() { + let normalDiv = document.getElementsByClassName("normal")[0]; + let torDiv = document.getElementsByClassName("tor")[0]; + if (protocol.value == 'normal') { + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + } + else if (protocol.value == 'tor') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + } +} + +browser.storage.local.get( + [ + "disableLbryTargets", + "lbryTargetsProtocol" + ], + r => { + disable.checked = !r.disableLbryTargets; + protocol.value = r.lbryTargetsProtocol; + changeProtocolSettings(); + } +) + +utils.processDefaultCustomInstances('lbryTargets', 'librarian', 'normal', document); +utils.processDefaultCustomInstances('lbryTargets', 'librarian', 'tor', document); + +utils.latency('lbryTargets', 'librarian', document, location) \ No newline at end of file diff --git a/src/pages/options/widgets/lbry.pug b/src/pages/options/widgets/lbry.pug new file mode 100644 index 00000000..21c4f497 --- /dev/null +++ b/src/pages/options/widgets/lbry.pug @@ -0,0 +1,26 @@ +section#lbry_page.option-block + .some-block.option-block + h1(data-localise="__MSG_lbry__") LBRY/Odysee + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-lbry(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #librarian + hr + .normal + include ../../widgets/instances.pug + +instances('https://librarian.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://librarian.onion') + + script(type="module" src="./widgets/lbry.js") \ No newline at end of file diff --git a/src/pages/options/widgets/maps.js b/src/pages/options/widgets/maps.js new file mode 100644 index 00000000..ddfa8345 --- /dev/null +++ b/src/pages/options/widgets/maps.js @@ -0,0 +1,32 @@ +import mapsHelper from "../../../assets/javascripts/maps.js"; +import utils from "../../../assets/javascripts/utils.js"; + +const disable = document.getElementById("disable-osm"); +const frontend = document.getElementById("maps-frontend"); + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disableMaps: !disable.checked, + mapsFrontend: frontend.value, + }) + changeFrontendsSettings(); +}) + +const facilDiv = document.getElementById("facil") +function changeFrontendsSettings() { + if (frontend.value == 'facil') facilDiv.style.display = 'block'; + else if (frontend.value == 'osm') facilDiv.style.display = 'none'; +} + +browser.storage.local.get( + [ + "disableMaps", + "mapsFrontend", + ], + r => { + disable.checked = !r.disableMaps; + frontend.value = r.mapsFrontend; + changeFrontendsSettings(); + } +) +utils.processDefaultCustomInstances('maps', 'facil', 'normal', document); \ No newline at end of file diff --git a/src/pages/options/widgets/maps.pug b/src/pages/options/widgets/maps.pug new file mode 100644 index 00000000..b36c3521 --- /dev/null +++ b/src/pages/options/widgets/maps.pug @@ -0,0 +1,23 @@ +section#maps_page.option-block + .some-block.option-block + h1(data-localise="__MSG_maps__") Maps + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-osm(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_frontend__") Frontend + select#maps-frontend + option(value="osm") OpenStreetMap + option(value="facil") Facil Map + + #facil + hr + .normal + include ../../widgets/instances.pug + +instances('https://facilmap.com') + include ../../widgets/latency.pug + +latency() + + script(type="module" src="./widgets/maps.js") \ No newline at end of file diff --git a/src/pages/options/widgets/medium.js b/src/pages/options/widgets/medium.js new file mode 100644 index 00000000..085d6804 --- /dev/null +++ b/src/pages/options/widgets/medium.js @@ -0,0 +1,42 @@ +import mediumHelper from "../../../assets/javascripts/medium.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disable = document.getElementById("disable-medium"); +let protocol = document.getElementById("protocol") + +browser.storage.local.get( + [ + "disableMedium", + "mediumProtocol" + ], + r => { + disable.checked = !r.disableMedium; + protocol.value = r.mediumProtocol; + changeProtocolSettings(); + } +) +utils.processDefaultCustomInstances('medium', 'scribe', 'normal', document); +utils.processDefaultCustomInstances('medium', 'scribe', 'tor', document); + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disableMedium: !disable.checked, + mediumProtocol: protocol.value, + }) + changeProtocolSettings(); +}) + +function changeProtocolSettings() { + let normalDiv = document.getElementsByClassName("normal")[0]; + let torDiv = document.getElementsByClassName("tor")[0]; + if (protocol.value == 'normal') { + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + } + else if (protocol.value == 'tor') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + } +} + +utils.latency('medium', 'scribe', document, location) \ No newline at end of file diff --git a/src/pages/options/widgets/medium.pug b/src/pages/options/widgets/medium.pug new file mode 100644 index 00000000..10c18f6d --- /dev/null +++ b/src/pages/options/widgets/medium.pug @@ -0,0 +1,26 @@ +section#medium_page.option-block + .some-block.option-block + h1(data-localise="__MSG_medium__") Medium + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-medium(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #scribe + hr + .normal + include ../../widgets/instances.pug + +instances('https://scribe.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://scribe.onion') + + script(type="module" src="./widgets/medium.js") \ No newline at end of file diff --git a/src/pages/options/widgets/peertube.js b/src/pages/options/widgets/peertube.js new file mode 100644 index 00000000..f2cede89 --- /dev/null +++ b/src/pages/options/widgets/peertube.js @@ -0,0 +1,40 @@ +import peertubeHelper from "../../../assets/javascripts/peertube.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disable = document.getElementById("disable-peertube"); +let protocol = document.getElementById("protocol") +browser.storage.local.get( + [ + "disablePeertubeTargets", + "peertubeTargetsProtocol" + ], + r => { + disable.checked = !r.disablePeertubeTargets; + protocol.value = r.peertubeTargetsProtocol; + changeProtocolSettings(); + } +) +utils.processDefaultCustomInstances('peertube', 'simpleertube', 'normal', document); +utils.processDefaultCustomInstances('peertube', 'simpleertube', 'tor', document); + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disablePeertubeTargets: !disable.checked, + peertubeTargetsProtocol: protocol.value + }) + changeProtocolSettings(); +}) + +function changeProtocolSettings() { + const normalDiv = document.getElementsByClassName("normal")[0]; + const torDiv = document.getElementsByClassName("tor")[0]; + if (protocol.value == 'normal') { + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + } + else if (protocol.value == 'tor') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + } +} +utils.latency('peertube', 'simpleertube', document, location) \ No newline at end of file diff --git a/src/pages/options/widgets/peertube.pug b/src/pages/options/widgets/peertube.pug new file mode 100644 index 00000000..496fb2df --- /dev/null +++ b/src/pages/options/widgets/peertube.pug @@ -0,0 +1,26 @@ +section#peertube_page.option-block + .some-block.option-block + h1(data-localise="__MSG_peertube__") PeerTube + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-peertube(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #simpleertube + hr + .normal + include ../../widgets/instances.pug + +instances('https://simpleertube.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://simpleertube.onion') + + script(type="module" src="./widgets/peertube.js") \ No newline at end of file diff --git a/src/pages/options/widgets/reddit.js b/src/pages/options/widgets/reddit.js new file mode 100644 index 00000000..da4221aa --- /dev/null +++ b/src/pages/options/widgets/reddit.js @@ -0,0 +1,90 @@ +import redditHelper from "../../../assets/javascripts/reddit.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let libredditDivElement = document.getElementById("libreddit") +let tedditDivElement = document.getElementById("teddit") + +let disableRedditElement = document.getElementById("disable-reddit"); +let frontend = document.getElementById("reddit-frontend"); +let protocol = document.getElementById("protocol") + +document.addEventListener("change", () => { + browser.storage.local.set({ + disableReddit: !disableRedditElement.checked, + redditProtocol: protocol.value, + redditFrontend: frontend.value, + }); + changeFrontendsSettings(); + changeProtocolSettings(); +}) + +const libredditForm = libredditDivElement.getElementsByTagName('form')[0]; +const libredditCookies = libredditForm.getElementsByTagName('input')[0]; +libredditForm.addEventListener('submit', async event => { + event.preventDefault(); + const url = new URL(libredditCookies.value); + redditHelper.initLibredditCookies(url); +}); + +const tedditForm = tedditDivElement.getElementsByTagName('form')[0]; +const tedditCookies = tedditForm.getElementsByTagName('input')[0]; +tedditForm.addEventListener('submit', async event => { + event.preventDefault(); + const url = new URL(tedditCookies.value); + redditHelper.initTedditCookies(url); +}); + +function changeProtocolSettings() { + let normalLibredditDiv = libredditDivElement.getElementsByClassName("normal")[0]; + let torLibredditDiv = libredditDivElement.getElementsByClassName("tor")[0]; + + let normalTedditDiv = tedditDivElement.getElementsByClassName("normal")[0]; + let torTedditDiv = tedditDivElement.getElementsByClassName("tor")[0]; + if (protocol.value == 'normal') { + normalLibredditDiv.style.display = 'block'; + normalTedditDiv.style.display = 'block'; + torTedditDiv.style.display = 'none'; + torLibredditDiv.style.display = 'none'; + } + else if (protocol.value == 'tor') { + normalLibredditDiv.style.display = 'none'; + normalTedditDiv.style.display = 'none'; + torTedditDiv.style.display = 'block'; + torLibredditDiv.style.display = 'block'; + } +} +function changeFrontendsSettings() { + if (frontend.value == 'libreddit') { + libredditDivElement.style.display = 'block'; + tedditDivElement.style.display = 'none'; + } + else if (frontend.value == 'teddit') { + libredditDivElement.style.display = 'none'; + tedditDivElement.style.display = 'block'; + } +} + +browser.storage.local.get( + [ + "disableReddit", + "redditProtocol", + "redditFrontend", + + "enableLibredditCustomSettings", + ], + r => { + disableRedditElement.checked = !r.disableReddit + protocol.value = r.redditProtocol + frontend.value = r.redditFrontend + changeFrontendsSettings(); + changeProtocolSettings(); + } +) + +utils.processDefaultCustomInstances('reddit', 'libreddit', 'normal', document); +utils.processDefaultCustomInstances('reddit', 'libreddit', 'tor', document); +utils.processDefaultCustomInstances('reddit', 'teddit', 'normal', document); +utils.processDefaultCustomInstances('reddit', 'teddit', 'tor', document); + +utils.latency('reddit', 'libreddit', document, location, true) +utils.latency('reddit', 'teddit', document, location, true) \ No newline at end of file diff --git a/src/pages/options/widgets/reddit.pug b/src/pages/options/widgets/reddit.pug new file mode 100644 index 00000000..ae72b31f --- /dev/null +++ b/src/pages/options/widgets/reddit.pug @@ -0,0 +1,42 @@ +section#reddit_page.option-block + .some-block.option-block + h1(data-localise="__MSG_reddit__") Reddit + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-reddit(type="checkbox") + + .some-block.option-block + h4#frontend(data-localise="__MSG_frontend__") Frontend + select#reddit-frontend + option(value="libreddit") Libreddit + option(value="teddit") Teddit + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #libreddit + hr + .normal + include ../../widgets/instances.pug + +instances('https://libreddit.com') + include ../../widgets/latency.pug + +latency('libreddit') + .tor + include ../../widgets/instances.pug + +instances('https://libreddit.onion') + + #teddit + hr + .normal + include ../../widgets/instances.pug + +instances('https://teddit.com') + +latency('teddit') + .tor + include ../../widgets/instances.pug + +instances('https://teddit.onion') + + script(type="module" src="./widgets/reddit.js") \ No newline at end of file diff --git a/src/pages/options/widgets/search.js b/src/pages/options/widgets/search.js new file mode 100644 index 00000000..2506279a --- /dev/null +++ b/src/pages/options/widgets/search.js @@ -0,0 +1,142 @@ +import searchHelper from "../../../assets/javascripts/search.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let searxDiv = document.getElementById("searx"); +let searxngDiv = document.getElementById("searxng"); +let whoogleDiv = document.getElementById("whoogle"); + +let disable = document.getElementById("disable-search"); +let frontend = document.getElementById("search-frontend"); +let protocol = document.getElementById("protocol") + +const searxngForm = searxngDiv.getElementsByTagName('form')[0]; +const searxngCookies = searxngForm.getElementsByTagName('input')[0]; +searxngForm.addEventListener('submit', async event => { + event.preventDefault(); + const url = new URL(searxngCookies.value); + searchHelper.initSearxngCookies(url); +}); + +const searxForm = searxDiv.getElementsByTagName('form')[0]; +const searxCookies = searxForm.getElementsByTagName('input')[0]; +searxForm.addEventListener('submit', async event => { + event.preventDefault(); + const url = new URL(searxCookies.value); + searchHelper.initSearxCookies(url); +}); + +browser.storage.local.get( + [ + "disableSearch", + "searchFrontend", + "searchProtocol", + ], + r => { + disable.checked = !r.disableSearch; + frontend.value = r.searchFrontend; + protocol.value = r.searchProtocol; + + changeFrontendsSettings(); + changeProtocolSettings(); + } +); + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disableSearch: !disable.checked, + searchFrontend: frontend.value, + searchProtocol: protocol.value, + }); + changeFrontendsSettings(frontend.value); + changeProtocolSettings(protocol.value); +}) + +function changeFrontendsSettings() { + let SearxWhoogleElement = document.getElementById("searx-whoogle"); + if (frontend.value == 'searx') { + searxDiv.style.display = 'block'; + searxngDiv.style.display = 'none'; + whoogleDiv.style.display = 'none'; + SearxWhoogleElement.style.display = 'block'; + } + else if (frontend.value == 'searxng') { + searxDiv.style.display = 'none'; + searxngDiv.style.display = 'block'; + whoogleDiv.style.display = 'none'; + SearxWhoogleElement.style.display = 'block'; + } + else if (frontend.value == 'whoogle') { + searxDiv.style.display = 'none'; + searxngDiv.style.display = 'none'; + whoogleDiv.style.display = 'block'; + SearxWhoogleElement.style.display = 'block'; + } +} + +function changeProtocolSettings() { + let normalsearxDiv = searxDiv.getElementsByClassName("normal")[0]; + let torsearxDiv = searxDiv.getElementsByClassName("tor")[0]; + let i2psearxDiv = searxDiv.getElementsByClassName("i2p")[0]; + + let normalsearxngDiv = searxngDiv.getElementsByClassName("normal")[0]; + let torsearxngDiv = searxngDiv.getElementsByClassName("tor")[0]; + let i2psearxngDiv = searxngDiv.getElementsByClassName("i2p")[0]; + + let normalwhoogleDiv = whoogleDiv.getElementsByClassName("normal")[0]; + let torwhoogleDiv = whoogleDiv.getElementsByClassName("tor")[0]; + let i2pwhoogleDiv = whoogleDiv.getElementsByClassName("i2p")[0]; + + if (protocol.value == 'normal') { + normalsearxDiv.style.display = 'block'; + normalsearxngDiv.style.display = 'block'; + normalwhoogleDiv.style.display = 'block'; + + torsearxDiv.style.display = 'none'; + torsearxngDiv.style.display = 'none'; + torwhoogleDiv.style.display = 'none'; + + i2psearxDiv.style.display = 'none'; + i2psearxngDiv.style.display = 'none'; + i2pwhoogleDiv.style.display = 'none'; + } + else if (protocol.value == 'tor') { + normalsearxDiv.style.display = 'none'; + normalsearxngDiv.style.display = 'none'; + normalwhoogleDiv.style.display = 'none'; + + torsearxDiv.style.display = 'block'; + torsearxngDiv.style.display = 'block'; + torwhoogleDiv.style.display = 'block'; + + i2psearxDiv.style.display = 'none'; + i2psearxngDiv.style.display = 'none'; + i2pwhoogleDiv.style.display = 'none'; + } + else if (protocol.value == 'i2p') { + normalsearxDiv.style.display = 'none'; + normalsearxngDiv.style.display = 'none'; + normalwhoogleDiv.style.display = 'none'; + + torsearxDiv.style.display = 'none'; + torsearxngDiv.style.display = 'none'; + torwhoogleDiv.style.display = 'none'; + + i2psearxDiv.style.display = 'block'; + i2psearxngDiv.style.display = 'block'; + i2pwhoogleDiv.style.display = 'block'; + } +} + +utils.processDefaultCustomInstances('search', 'searx', 'normal', document); +utils.processDefaultCustomInstances('search', 'searx', 'tor', document); +utils.processDefaultCustomInstances('search', 'searx', 'i2p', document); +utils.processDefaultCustomInstances('search', 'searxng', 'normal', document); +utils.processDefaultCustomInstances('search', 'searxng', 'tor', document); +utils.processDefaultCustomInstances('search', 'searxng', 'i2p', document); +utils.processDefaultCustomInstances('search', 'whoogle', 'normal', document); +utils.processDefaultCustomInstances('search', 'whoogle', 'tor', document); +utils.processDefaultCustomInstances('search', 'whoogle', 'i2p', document); + +utils.latency('search', 'searx', document, location, true) +utils.latency('search', 'searxng', document, location, true) +utils.latency('search', 'whoogle', document, location, true) diff --git a/src/pages/options/widgets/search.pug b/src/pages/options/widgets/search.pug new file mode 100644 index 00000000..feea4b0d --- /dev/null +++ b/src/pages/options/widgets/search.pug @@ -0,0 +1,69 @@ + +section#search_page.option-block + .some-block.option-block + h1(data-localise="__MSG_search__") Search + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-search(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_frontend__") Frontend + select#search-frontend + option(value="searxng") SearXNG + option(value="searx") SearX + option(value="whoogle") Whoogle + + + #searx-whoogle + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + option(value="i2p" data-localise="__MSG_i2p__") I2P + + .some-block + h4(data-localise="__MSG_searchNote__") Note: To use Search to its full potential, make LibRedirect as the Default Search Engine + + #searx + hr + .normal + include ../../widgets/instances.pug + +instances('https://searx.com') + include ../../widgets/latency.pug + +latency('searx') + .tor + include ../../widgets/instances.pug + +instances('https://searx.onion') + .i2p + include ../../widgets/instances.pug + +instances('https://searx.i2p') + + #searxng + hr + .normal + include ../../widgets/instances.pug + +instances('https://searxng.com') + +latency('searxng') + .tor + include ../../widgets/instances.pug + +instances('https://searxng.onion') + .i2p + include ../../widgets/instances.pug + +instances('https://searxng.i2p') + + #whoogle + hr + .normal + include ../../widgets/instances.pug + +instances('https://whoogle.com') + +latency('whoogle') + .tor + include ../../widgets/instances.pug + +instances('https://whoogle.onion') + .i2p + include ../../widgets/instances.pug + +instances('https://whoogle.i2p') + + script(type="module" src="./widgets/search.js") \ No newline at end of file diff --git a/src/pages/options/widgets/sendTargets.js b/src/pages/options/widgets/sendTargets.js new file mode 100644 index 00000000..37e2588e --- /dev/null +++ b/src/pages/options/widgets/sendTargets.js @@ -0,0 +1,43 @@ +import sendTargetsHelper from "../../../assets/javascripts/sendTargets.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disable = document.getElementById("disable-sendTargets"); +let protocol = document.getElementById("protocol") + +browser.storage.local.get( + [ + "disableSendTarget", + "sendTargetsProtocol", + ], + r => { + disable.checked = !r.disableSendTarget; + protocol.value = r.sendTargetsProtocol; + changeProtocolSettings(); + } +) + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disableSendTarget: !disable.checked, + sendTargetsProtocol: protocol.value, + }) + changeProtocolSettings(); +}) + +function changeProtocolSettings() { + let normalDiv = document.getElementsByClassName("normal")[0]; + let torDiv = document.getElementsByClassName("tor")[0]; + if (protocol.value == 'normal') { + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + } + else if (protocol.value == 'tor') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + } +} + +utils.processDefaultCustomInstances('sendTargets', 'send', 'normal', document); +utils.processDefaultCustomInstances('sendTargets', 'send', 'tor', document); + +utils.latency('sendTargets', 'send', document, location) \ No newline at end of file diff --git a/src/pages/options/widgets/sendTargets.pug b/src/pages/options/widgets/sendTargets.pug new file mode 100644 index 00000000..c4a933d1 --- /dev/null +++ b/src/pages/options/widgets/sendTargets.pug @@ -0,0 +1,26 @@ +section#sendTargets_page.option-block + .some-block.option-block + h1(data-localise="__MSG_sendFiles__") Send Files + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-sendTargets(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #send + hr + .normal + include ../../widgets/instances.pug + +instances('https://send.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://send.onion') + + script(type="module" src="./widgets/sendTargets.js") \ No newline at end of file diff --git a/src/pages/options/widgets/tiktok.js b/src/pages/options/widgets/tiktok.js new file mode 100644 index 00000000..6b5702e1 --- /dev/null +++ b/src/pages/options/widgets/tiktok.js @@ -0,0 +1,53 @@ +import tiktokHelper from "../../../assets/javascripts/tiktok.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disable = document.getElementById("disable-tiktok"); +let protocol = document.getElementById("protocol") + +document.addEventListener("change", () => { + browser.storage.local.set({ + disableTiktok: !disable.checked, + tiktokProtocol: protocol.value, + }); + changeProtocolSettings(); +}) + +browser.storage.local.get( + [ + "disableTiktok", + "tiktokProtocol", + ], + r => { + disable.checked = !r.disableTiktok; + protocol.value = r.tiktokProtocol; + changeProtocolSettings(); + let normalDiv = document.getElementsByClassName("normal")[0]; + let torDiv = document.getElementsByClassName("tor")[0]; + if (r.tiktokProtocol == 'normal') { + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + } + else if (r.tiktokProtocol == 'tor') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + } + } +) + +function changeProtocolSettings() { + let normalDiv = document.getElementsByClassName("normal")[0]; + let torDiv = document.getElementsByClassName("tor")[0]; + if (protocol.value == 'normal') { + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + } + else if (protocol.value == 'tor') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + } +} + +utils.processDefaultCustomInstances('tiktok', 'proxiTok', 'normal', document); +utils.processDefaultCustomInstances('tiktok', 'proxiTok', 'tor', document); + +utils.latency('tiktok', 'proxiTok', document, location) \ No newline at end of file diff --git a/src/pages/options/widgets/tiktok.pug b/src/pages/options/widgets/tiktok.pug new file mode 100644 index 00000000..ec55671c --- /dev/null +++ b/src/pages/options/widgets/tiktok.pug @@ -0,0 +1,26 @@ +section#tiktok_page.option-block + .some-block.option-block + h1(data-localise="__MSG_tiktok__") TikTok + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-tiktok(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #proxiTok + hr + .normal + include ../../widgets/instances.pug + +instances('https://proxitok.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://proxitok.onion') + + script(type="module" src="./widgets/tiktok.js") diff --git a/src/pages/options/widgets/translate.js b/src/pages/options/widgets/translate.js new file mode 100644 index 00000000..3e1990f4 --- /dev/null +++ b/src/pages/options/widgets/translate.js @@ -0,0 +1,75 @@ +import translateHelper from "../../../assets/javascripts/translate/translate.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disable = document.getElementById("disable-simplyTranslate"); +let simplyTranslateDiv = document.getElementById("simplyTranslate"); +let lingvaDiv = document.getElementById("lingva"); +let frontend = document.getElementById("translate-frontend"); +let protocol = document.getElementById("protocol"); + + +function changeFrontendsSettings() { + if (frontend.value == 'simplyTranslate') { + simplyTranslateDiv.style.display = 'block'; + lingvaDiv.style.display = 'none'; + } + else if (frontend.value == 'lingva') { + simplyTranslateDiv.style.display = 'none'; + lingvaDiv.style.display = 'block'; + } +} + +function changeProtocolSettings() { + let normalSimplyTranslateDiv = document.getElementById("simplyTranslate").getElementsByClassName("normal")[0]; + let torSimplyTranslateDiv = document.getElementById("simplyTranslate").getElementsByClassName("tor")[0]; + + let normalLingvaDiv = document.getElementById("lingva").getElementsByClassName("normal")[0]; + let torLingvaDiv = document.getElementById("lingva").getElementsByClassName("tor")[0]; + + if (protocol.value == 'normal') { + normalSimplyTranslateDiv.style.display = 'block'; + normalLingvaDiv.style.display = 'block'; + torLingvaDiv.style.display = 'none'; + torSimplyTranslateDiv.style.display = 'none'; + } + else if (protocol.value == 'tor') { + normalSimplyTranslateDiv.style.display = 'none'; + normalLingvaDiv.style.display = 'none'; + torLingvaDiv.style.display = 'block'; + torSimplyTranslateDiv.style.display = 'block'; + } +} + +browser.storage.local.get( + [ + "translateDisable", + "translateFrontend", + "translateProtocol", + ], + r => { + disable.checked = !r.translateDisable; + frontend.value = r.translateFrontend; + protocol.value = r.translateProtocol; + changeFrontendsSettings(); + changeProtocolSettings(); + } +); + +document.addEventListener("change", () => { + browser.storage.local.set({ + translateDisable: !disable.checked, + translateFrontend: frontend.value, + translateProtocol: protocol.value, + }) + changeProtocolSettings(); + changeFrontendsSettings(); +}) + + +utils.processDefaultCustomInstances('translate', 'simplyTranslate', 'normal', document) +utils.processDefaultCustomInstances('translate', 'simplyTranslate', 'tor', document); +utils.processDefaultCustomInstances('translate', 'lingva', 'normal', document); +utils.processDefaultCustomInstances('translate', 'lingva', 'tor', document); + +utils.latency('translate', 'simplyTranslate', document, location, true) +utils.latency('translate', 'lingva', document, location, true) \ No newline at end of file diff --git a/src/pages/options/widgets/translate.pug b/src/pages/options/widgets/translate.pug new file mode 100644 index 00000000..a97a4245 --- /dev/null +++ b/src/pages/options/widgets/translate.pug @@ -0,0 +1,40 @@ +section#translate_page.option-block + .some-block.option-block + h1(data-localise="__MSG_translate__") Translate + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-simplyTranslate(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_frontend__") Frontend + select#translate-frontend + option(value="simplyTranslate") SimplyTranslate + option(value="lingva") Lingva + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + hr + #simplyTranslate + .normal + include ../../widgets/instances.pug + +instances('https://simplytranslate.org') + include ../../widgets/latency.pug + +latency('simplyTranslate') + .tor + include ../../widgets/instances.pug + +instances('http://hxecvvetgrznmprg.onion') + #lingva + .normal + include ../../widgets/instances.pug + +instances('https://lingvatranslate.com') + +latency('lingva') + .tor + include ../../widgets/instances.pug + +instances('http://tyzxppdeoojdnaux.onion') + + script(type="module" src="./widgets/translate.js") diff --git a/src/pages/options/widgets/twitter.js b/src/pages/options/widgets/twitter.js new file mode 100644 index 00000000..266fd027 --- /dev/null +++ b/src/pages/options/widgets/twitter.js @@ -0,0 +1,53 @@ +import twitterHelper from "../../../assets/javascripts/twitter.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disable = document.getElementById("disable-nitter"); +let protocol = document.getElementById("protocol"); + +let nitterDiv = document.getElementById('nitter'); + +const nitterForm = nitterDiv.getElementsByTagName('form')[0]; +const nitterCookies = nitterForm.getElementsByTagName('input')[0]; +nitterForm.addEventListener('submit', event => { + event.preventDefault(); + const url = new URL(nitterCookies.value); + twitterHelper.initNitterCookies(url); +}); + +browser.storage.local.get( + [ + "disableTwitter", + "twitterProtocol", + ], + r => { + disable.checked = !r.disableTwitter; + protocol.value = r.twitterProtocol; + changeProtocolSettings(); + } +) + +document.addEventListener("change", () => { + browser.storage.local.set({ + disableTwitter: !disable.checked, + twitterProtocol: protocol.value, + }); + changeProtocolSettings(); +}) + +function changeProtocolSettings() { + let normalDiv = nitterDiv.getElementsByClassName("normal")[0]; + let torDiv = nitterDiv.getElementsByClassName("tor")[0]; + if (protocol.value == 'normal') { + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + } + else if (protocol.value == 'tor') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + } +} + +utils.processDefaultCustomInstances('twitter', 'nitter', 'normal', document); +utils.processDefaultCustomInstances('twitter', 'nitter', 'tor', document) + +utils.latency('twitter', 'nitter', document, location) \ No newline at end of file diff --git a/src/pages/options/widgets/twitter.pug b/src/pages/options/widgets/twitter.pug new file mode 100644 index 00000000..af743dcd --- /dev/null +++ b/src/pages/options/widgets/twitter.pug @@ -0,0 +1,26 @@ +section#twitter_page.option-block + .some-block.option-block + h1(data-localise="__MSG_twitter__") Twitter + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-nitter(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #nitter + hr + .normal + include ../../widgets/instances.pug + +instances('https://nitter.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://nitter.onion') + + script(type="module" src="./widgets/twitter.js") diff --git a/src/pages/options/widgets/wikipedia.js b/src/pages/options/widgets/wikipedia.js new file mode 100644 index 00000000..6e847c8d --- /dev/null +++ b/src/pages/options/widgets/wikipedia.js @@ -0,0 +1,51 @@ +import wikipediaHelper from "../../../assets/javascripts/wikipedia.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disableWikipediaElement = document.getElementById("disable-wikipedia"); +let protocolElement = document.getElementById("protocol"); + +browser.storage.local.get( + [ + "disableWikipedia", + "wikipediaProtocol", + ], + r => { + disableWikipediaElement.checked = !r.disableWikipedia; + protocolElement.value = r.wikipediaProtocol; + changeProtocolSettings(r.wikipediaProtocol); + } +) + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disableWikipedia: !disableWikipediaElement.checked, + wikipediaProtocol: protocolElement.value, + }) + changeProtocolSettings(protocolElement.value) +}) + +function changeProtocolSettings(protocol) { + let normalDiv = document.getElementsByClassName("normal")[0]; + let torDiv = document.getElementsByClassName("tor")[0]; + let i2pDiv = document.getElementsByClassName("i2p")[0]; + if (protocol == 'normal') { + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + i2pDiv.style.display = 'none'; + } + else if (protocol == 'tor') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + i2pDiv.style.display = 'none'; + } + else if (protocol == 'i2p') { + normalDiv.style.display = 'none'; + torDiv.style.display = 'none'; + i2pDiv.style.display = 'block'; + } +} +utils.processDefaultCustomInstances('wikipedia', 'wikiless', 'normal', document); +utils.processDefaultCustomInstances('wikipedia', 'wikiless', 'tor', document); +utils.processDefaultCustomInstances('wikipedia', 'wikiless', 'i2p', document); + +utils.latency('wikipedia', 'wikiless', document, location) \ No newline at end of file diff --git a/src/pages/options/widgets/wikipedia.pug b/src/pages/options/widgets/wikipedia.pug new file mode 100644 index 00000000..79d1e323 --- /dev/null +++ b/src/pages/options/widgets/wikipedia.pug @@ -0,0 +1,32 @@ +section#wikipedia_page.option-block + .some-block.option-block + h1(data-localise="__MSG_wikipedia__") Wikipedia + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-wikipedia(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + option(value="i2p" data-localise="__MSG_i2p__") I2P + + #wikiless + hr + .normal + include ../../widgets/instances.pug + +instances('https://wikiless.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://wikiless.onion') + + .i2p + include ../../widgets/instances.pug + +instances('https://wikiless.i2p') + + script(type="module" src="./widgets/wikipedia.js") + \ No newline at end of file diff --git a/src/pages/options/widgets/youtube.js b/src/pages/options/widgets/youtube.js new file mode 100644 index 00000000..7826541b --- /dev/null +++ b/src/pages/options/widgets/youtube.js @@ -0,0 +1,161 @@ +import youtubeHelper from "../../../assets/javascripts/youtube/youtube.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disableYoutube = document.getElementById("disable-invidious"); +let youtubeFrontend = document.getElementById("youtube-frontend"); +let invidiousDiv = document.getElementById("invidious"); +let pipedDiv = document.getElementById("piped"); +let pipedMaterialDiv = document.getElementById("pipedMaterial"); +let freetubeYatteeDiv = document.getElementById("freetube-yatte"); +let youtubeEmbedFrontend = document.getElementById("youtube-embed-frontend"); +let OnlyEmbeddedVideo = document.getElementById("only-embed"); +let protoco = document.getElementById("protocol"); + +function changeFrontendsSettings() { + let frontend = youtubeFrontend.value; + + if (frontend == 'invidious') { + invidiousDiv.style.display = 'block'; + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'none'; + freetubeYatteeDiv.style.display = 'none'; + } + else if (frontend == 'piped') { + invidiousDiv.style.display = 'none'; + pipedDiv.style.display = 'block'; + pipedMaterialDiv.style.display = 'none'; + freetubeYatteeDiv.style.display = 'none'; + } + else if (frontend == 'pipedMaterial') { + invidiousDiv.style.display = 'none'; + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'block'; + freetubeYatteeDiv.style.display = 'none'; + } + else if (frontend == 'freetube' || frontend == 'yatte') { + invidiousDiv.style.display = 'none'; + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'none'; + freetubeYatteeDiv.style.display = 'block'; + changeYoutubeEmbedFrontendsSettings(); + } +} + +function changeYoutubeEmbedFrontendsSettings() { + if (youtubeEmbedFrontend.value == 'invidious') { + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'none'; + invidiousDiv.style.display = 'block'; + } + if (youtubeEmbedFrontend.value == 'piped') { + pipedDiv.style.display = 'block'; + pipedMaterialDiv.style.display = 'none'; + invidiousDiv.style.display = 'none'; + } + if (youtubeEmbedFrontend.value == 'pipedMaterial') { + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'block'; + invidiousDiv.style.display = 'none'; + } + else if (youtubeEmbedFrontend.value == 'youtube') { + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'none'; + invidiousDiv.style.display = 'none'; + } +} + +function changeProtocolSettings() { + const normalPipedDiv = document.getElementById('piped').getElementsByClassName("normal")[0]; + const torPipedDiv = document.getElementById('piped').getElementsByClassName("tor")[0]; + + const normalPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("normal")[0]; + const torPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("tor")[0]; + + const normalInvidiousDiv = document.getElementById('invidious').getElementsByClassName("normal")[0]; + const torInvidiousDiv = document.getElementById('invidious').getElementsByClassName("tor")[0]; + + if (protoco.value == 'normal') { + normalInvidiousDiv.style.display = 'block'; + torInvidiousDiv.style.display = 'none'; + + normalPipedDiv.style.display = 'block'; + torPipedDiv.style.display = 'none'; + + normalPipedMaterialDiv.style.display = 'block'; + torPipedMaterialDiv.style.display = 'none'; + } + else if (protoco.value == 'tor') { + normalInvidiousDiv.style.display = 'none'; + torInvidiousDiv.style.display = 'block'; + + normalPipedDiv.style.display = 'none'; + torPipedDiv.style.display = 'block'; + + normalPipedMaterialDiv.style.display = 'none'; + torPipedMaterialDiv.style.display = 'block'; + } +} + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disableYoutube: !disableYoutube.checked, + youtubeFrontend: youtubeFrontend.value, + youtubeEmbedFrontend: youtubeEmbedFrontend.value, + OnlyEmbeddedVideo: OnlyEmbeddedVideo.value, + youtubeProtocol: protoco.value, + }) + changeProtocolSettings(); + changeYoutubeEmbedFrontendsSettings(); + changeFrontendsSettings(); +}) + +browser.storage.local.get( + [ + "disableYoutube", + "OnlyEmbeddedVideo", + "youtubeRedirects", + "youtubeFrontend", + + "youtubeEmbedFrontend", + "youtubeProtocol", + ], + r => { + disableYoutube.checked = !r.disableYoutube; + OnlyEmbeddedVideo.value = r.OnlyEmbeddedVideo; + youtubeFrontend.value = r.youtubeFrontend; + protoco.value = r.youtubeProtocol; + + changeFrontendsSettings(); + changeProtocolSettings(); + + youtubeEmbedFrontend.value = youtubeEmbedFrontend.value + if (r.youtubeFrontend == "freetube" || r.youtubeFrontend == "yatte") changeYoutubeEmbedFrontendsSettings() + } +); + +const invidiousForm = invidiousDiv.getElementsByTagName('form')[0]; +const invidiousCookies = invidiousForm.getElementsByTagName('input')[0]; +invidiousForm.addEventListener('submit', async event => { + event.preventDefault(); + const url = new URL(invidiousCookies.value); + youtubeHelper.initInvidiousCookies(url); +}); + +// const pipedForm = pipedDiv.getElementsByTagName('form')[0]; +// const pipedCookies = pipedForm.getElementsByTagName('input')[0]; +// pipedForm.addEventListener('submit', async event => { +// event.preventDefault(); +// const url = new URL(pipedCookies.value); +// youtubeHelper.applyPipedLocalStorage(url); +// }); + +utils.processDefaultCustomInstances('youtube', 'invidious', 'normal', document); +utils.processDefaultCustomInstances('youtube', 'invidious', 'tor', document); +utils.processDefaultCustomInstances('youtube', 'pipedMaterial', 'normal', document); +utils.processDefaultCustomInstances('youtube', 'pipedMaterial', 'tor', document); +utils.processDefaultCustomInstances('youtube', 'piped', 'normal', document); +utils.processDefaultCustomInstances('youtube', 'piped', 'tor', document); + +utils.latency('youtube', 'invidious', document, location, true) +utils.latency('youtube', 'piped', document, location, true) +utils.latency('youtube', 'pipedMaterial', document, location, true) diff --git a/src/pages/options/widgets/youtube.pug b/src/pages/options/widgets/youtube.pug new file mode 100644 index 00000000..71bf104b --- /dev/null +++ b/src/pages/options/widgets/youtube.pug @@ -0,0 +1,73 @@ +section#youtube_page.option-block + .some-block.option-block + h1(data-localise="__MSG_youtube__") YouTube + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-invidious(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_frontend__") Frontend + select#youtube-frontend + option(value="invidious") Invidious + option(value="piped") Piped + option(value="pipedMaterial") Piped-Material + option(value="freetube") FreeTube + option(value="yatte") Yattee + + #freetube-yatte + .some-block.option-block + h4(data-localise="__MSG_embeddedVids__") Embedded Videos Frontend + select#youtube-embed-frontend + option(value="invidious") Invidious + option(value="piped") Piped + option(value="pipedMaterial") Piped-Material + option(value="youtube") Youtube + + #invidious-piped-pipedMaterial + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + .some-block.option-block + h4(data-localise="__MSG_redirectType__") Redirect Type + select#only-embed + option(value="both" data-localise="__MSG_both__") both + option(value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__") Only Embedded + option(value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__") Only Not Embedded + + #invidious + hr + .normal + include ../../widgets/instances.pug + +instances('https://invidious.com') + include ../../widgets/latency.pug + +latency('invidious') + .tor + include ../../widgets/instances.pug + +instances('https://invidious.onion') + + #piped + hr + .normal + include ../../widgets/instances.pug + +instances('https://piped.com') + +latency('piped') + .tor + include ../../widgets/instances.pug + +instances('https://piped.onion') + + #pipedMaterial + hr + .normal + include ../../widgets/instances.pug + +instances('https://piped-material.com') + +latency('pipedMaterial') + .tor + include ../../widgets/instances.pug + +instances('https://piped-material.onion') + + + script(type="module" src="./widgets/youtube.js") diff --git a/src/pages/options/widgets/youtubeMusic.js b/src/pages/options/widgets/youtubeMusic.js new file mode 100644 index 00000000..9a9bf8fb --- /dev/null +++ b/src/pages/options/widgets/youtubeMusic.js @@ -0,0 +1,23 @@ +import youtubeMusicHelper from "../../../assets/javascripts/youtubeMusic.js"; +import utils from "../../../assets/javascripts/utils.js"; + +let disableYoutubeMusicElement = document.getElementById("disable-beatbump"); + +browser.storage.local.get( + [ + "disableYoutubeMusic", + ], + r => { + disableYoutubeMusicElement.checked = !r.disableYoutubeMusic; + } +); + +document.addEventListener("change", async () => { + await browser.storage.local.set({ + disableYoutubeMusic: !disableYoutubeMusicElement.checked, + }) +}) + +utils.processDefaultCustomInstances('youtubeMusic', 'beatbump', 'normal', document); + +utils.latency('youtubeMusic', 'beatbump', document, location) \ No newline at end of file diff --git a/src/pages/options/widgets/youtubeMusic.pug b/src/pages/options/widgets/youtubeMusic.pug new file mode 100644 index 00000000..231b6caf --- /dev/null +++ b/src/pages/options/widgets/youtubeMusic.pug @@ -0,0 +1,17 @@ +section#youtubeMusic_page.option-block + .some-block.option-block + h1(data-localise="__MSG_ytmusic__") YouTube Music + hr + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-beatbump(type="checkbox") + + #beatbump + hr + .normal + include ../../widgets/instances.pug + +instances('https://beatbump.wewe') + include ../../widgets/latency.pug + +latency() + + script(type="module" src="./widgets/youtubeMusic.js") diff --git a/src/pages/options/wikipedia/wikipedia.html b/src/pages/options/wikipedia/wikipedia.html deleted file mode 100644 index fe735ac5..00000000 --- a/src/pages/options/wikipedia/wikipedia.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - Wikipedia - - - - - -
-
-

Wikipedia

-
-
-
-

Enable

- -
-
-

Protocol

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/wikipedia/wikipedia.js b/src/pages/options/wikipedia/wikipedia.js deleted file mode 100644 index c421c18a..00000000 --- a/src/pages/options/wikipedia/wikipedia.js +++ /dev/null @@ -1,53 +0,0 @@ -import wikipediaHelper from "../../../assets/javascripts/helpers/wikipedia.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disableWikipediaElement = document.getElementById("disable-wikipedia"); -let protocolElement = document.getElementById("protocol"); - -browser.storage.local.get( - [ - "disableWikipedia", - "wikipediaProtocol", - ], - r => { - disableWikipediaElement.checked = !r.disableWikipedia; - protocolElement.value = r.wikipediaProtocol; - changeProtocolSettings(r.wikipediaProtocol); - } -) - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableWikipedia: !disableWikipediaElement.checked, - wikipediaProtocol: protocolElement.value, - }) - changeProtocolSettings(protocolElement.value) -}) - -function changeProtocolSettings(protocol) { - let normalDiv = document.getElementsByClassName("normal")[0]; - let torDiv = document.getElementsByClassName("tor")[0]; - let i2pDiv = document.getElementsByClassName("i2p")[0]; - if (protocol == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - i2pDiv.style.display = 'none'; - } - else if (protocol == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - i2pDiv.style.display = 'none'; - } - else if (protocol == 'i2p') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'none'; - i2pDiv.style.display = 'block'; - } -} -utils.processDefaultCustomInstances('wikipedia', 'wikiless', 'normal', document); -utils.processDefaultCustomInstances('wikipedia', 'wikiless', 'tor', document); -utils.processDefaultCustomInstances('wikipedia', 'wikiless', 'i2p', document); - -window.onblur = wikipediaHelper.initWikilessCookies; - -utils.latency('wikipedia', 'wikiless', document, location) \ No newline at end of file diff --git a/src/pages/options/wikipedia/wikipedia.pug b/src/pages/options/wikipedia/wikipedia.pug deleted file mode 100644 index d08431db..00000000 --- a/src/pages/options/wikipedia/wikipedia.pug +++ /dev/null @@ -1,41 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title Wikipedia -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('wikipedia') - - section.option-block - .some-block.option-block - h1 Wikipedia - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-wikipedia(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - option(value="i2p" data-localise="__MSG_i2p__") I2P - - #wikiless - hr - .normal - include ../../widgets/instances.pug - +instances('https://wikiless.com') - include ../../widgets/latency.pug - +latency() - .tor - include ../../widgets/instances.pug - +instances('https://wikiless.onion') - - .i2p - include ../../widgets/instances.pug - +instances('https://wikiless.i2p') - - script(type="module" src="../init.js") - script(type="module" src="./wikipedia.js") diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html deleted file mode 100644 index 2938ccd1..00000000 --- a/src/pages/options/youtube/youtube.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - - YouTube - - - - - -
-
-

YouTube

-
-
-
-

Enable

- -
-
-

Frontend

- -
-
-
-

Embedded Videos Frontend

- -
-
-
-
-

Protocol

- -
-
-

Redirect Type

- -
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
-
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/youtube/youtube.js b/src/pages/options/youtube/youtube.js deleted file mode 100644 index 4f987849..00000000 --- a/src/pages/options/youtube/youtube.js +++ /dev/null @@ -1,161 +0,0 @@ -import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disableYoutube = document.getElementById("disable-invidious"); -let youtubeFrontend = document.getElementById("youtube-frontend"); -let invidiousDiv = document.getElementById("invidious"); -let pipedDiv = document.getElementById("piped"); -let pipedMaterialDiv = document.getElementById("pipedMaterial"); -let freetubeYatteeDiv = document.getElementById("freetube-yatte"); -let youtubeEmbedFrontend = document.getElementById("youtube-embed-frontend"); -let OnlyEmbeddedVideo = document.getElementById("only-embed"); -let protoco = document.getElementById("protocol"); - -function changeFrontendsSettings() { - let frontend = youtubeFrontend.value; - - if (frontend == 'invidious') { - invidiousDiv.style.display = 'block'; - pipedDiv.style.display = 'none'; - pipedMaterialDiv.style.display = 'none'; - freetubeYatteeDiv.style.display = 'none'; - } - else if (frontend == 'piped') { - invidiousDiv.style.display = 'none'; - pipedDiv.style.display = 'block'; - pipedMaterialDiv.style.display = 'none'; - freetubeYatteeDiv.style.display = 'none'; - } - else if (frontend == 'pipedMaterial') { - invidiousDiv.style.display = 'none'; - pipedDiv.style.display = 'none'; - pipedMaterialDiv.style.display = 'block'; - freetubeYatteeDiv.style.display = 'none'; - } - else if (frontend == 'freetube' || frontend == 'yatte') { - invidiousDiv.style.display = 'none'; - pipedDiv.style.display = 'none'; - pipedMaterialDiv.style.display = 'none'; - freetubeYatteeDiv.style.display = 'block'; - changeYoutubeEmbedFrontendsSettings(); - } -} - -function changeYoutubeEmbedFrontendsSettings() { - if (youtubeEmbedFrontend.value == 'invidious') { - pipedDiv.style.display = 'none'; - pipedMaterialDiv.style.display = 'none'; - invidiousDiv.style.display = 'block'; - } - if (youtubeEmbedFrontend.value == 'piped') { - pipedDiv.style.display = 'block'; - pipedMaterialDiv.style.display = 'none'; - invidiousDiv.style.display = 'none'; - } - if (youtubeEmbedFrontend.value == 'pipedMaterial') { - pipedDiv.style.display = 'none'; - pipedMaterialDiv.style.display = 'block'; - invidiousDiv.style.display = 'none'; - } - else if (youtubeEmbedFrontend.value == 'youtube') { - pipedDiv.style.display = 'none'; - pipedMaterialDiv.style.display = 'none'; - invidiousDiv.style.display = 'none'; - } -} - -function changeProtocolSettings() { - const normalPipedDiv = document.getElementById('piped').getElementsByClassName("normal")[0]; - const torPipedDiv = document.getElementById('piped').getElementsByClassName("tor")[0]; - - const normalPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("normal")[0]; - const torPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("tor")[0]; - - const normalInvidiousDiv = document.getElementById('invidious').getElementsByClassName("normal")[0]; - const torInvidiousDiv = document.getElementById('invidious').getElementsByClassName("tor")[0]; - - if (protoco.value == 'normal') { - normalInvidiousDiv.style.display = 'block'; - torInvidiousDiv.style.display = 'none'; - - normalPipedDiv.style.display = 'block'; - torPipedDiv.style.display = 'none'; - - normalPipedMaterialDiv.style.display = 'block'; - torPipedMaterialDiv.style.display = 'none'; - } - else if (protoco.value == 'tor') { - normalInvidiousDiv.style.display = 'none'; - torInvidiousDiv.style.display = 'block'; - - normalPipedDiv.style.display = 'none'; - torPipedDiv.style.display = 'block'; - - normalPipedMaterialDiv.style.display = 'none'; - torPipedMaterialDiv.style.display = 'block'; - } -} - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableYoutube: !disableYoutube.checked, - youtubeFrontend: youtubeFrontend.value, - youtubeEmbedFrontend: youtubeEmbedFrontend.value, - OnlyEmbeddedVideo: OnlyEmbeddedVideo.value, - youtubeProtocol: protoco.value, - }) - changeProtocolSettings(); - changeYoutubeEmbedFrontendsSettings(); - changeFrontendsSettings(); -}) - -browser.storage.local.get( - [ - "disableYoutube", - "OnlyEmbeddedVideo", - "youtubeRedirects", - "youtubeFrontend", - - "youtubeEmbedFrontend", - "youtubeProtocol", - ], - r => { - disableYoutube.checked = !r.disableYoutube; - OnlyEmbeddedVideo.value = r.OnlyEmbeddedVideo; - youtubeFrontend.value = r.youtubeFrontend; - protoco.value = r.youtubeProtocol; - - changeFrontendsSettings(); - changeProtocolSettings(); - - youtubeEmbedFrontend.value = youtubeEmbedFrontend.value - if (r.youtubeFrontend == "freetube" || r.youtubeFrontend == "yatte") changeYoutubeEmbedFrontendsSettings() - } -); - -const invidiousForm = invidiousDiv.getElementsByTagName('form')[0]; -const invidiousCookies = invidiousForm.getElementsByTagName('input')[0]; -invidiousForm.addEventListener('submit', async event => { - event.preventDefault(); - const url = new URL(invidiousCookies.value); - youtubeHelper.initInvidiousCookies(url); -}); - -// const pipedForm = pipedDiv.getElementsByTagName('form')[0]; -// const pipedCookies = pipedForm.getElementsByTagName('input')[0]; -// pipedForm.addEventListener('submit', async event => { -// event.preventDefault(); -// const url = new URL(pipedCookies.value); -// youtubeHelper.applyPipedLocalStorage(url); -// }); - -utils.processDefaultCustomInstances('youtube', 'invidious', 'normal', document); -utils.processDefaultCustomInstances('youtube', 'invidious', 'tor', document); -utils.processDefaultCustomInstances('youtube', 'pipedMaterial', 'normal', document); -utils.processDefaultCustomInstances('youtube', 'pipedMaterial', 'tor', document); -utils.processDefaultCustomInstances('youtube', 'piped', 'normal', document); -utils.processDefaultCustomInstances('youtube', 'piped', 'tor', document); - -utils.latency('youtube', 'invidious', document, location, true) -utils.latency('youtube', 'piped', document, location, true) -utils.latency('youtube', 'pipedMaterial', document, location, true) diff --git a/src/pages/options/youtube/youtube.pug b/src/pages/options/youtube/youtube.pug deleted file mode 100644 index 6d5d2469..00000000 --- a/src/pages/options/youtube/youtube.pug +++ /dev/null @@ -1,83 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title YouTube -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('youtube') - - section.option-block - .some-block.option-block - h1 YouTube - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-invidious(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_frontend__") Frontend - select#youtube-frontend - option(value="invidious") Invidious - option(value="piped") Piped - option(value="pipedMaterial") Piped-Material - option(value="freetube") FreeTube - option(value="yatte") Yattee - - #freetube-yatte - .some-block.option-block - h4(data-localise="__MSG_embeddedVids__") Embedded Videos Frontend - select#youtube-embed-frontend - option(value="invidious") Invidious - option(value="piped") Piped - option(value="pipedMaterial") Piped-Material - option(value="youtube") Youtube - - #invidious-piped-pipedMaterial - .some-block.option-block - h4(data-localise="__MSG_protocol__") Protocol - select#protocol - option(value="normal" data-localise="__MSG_normal__") Normal - option(value="tor" data-localise="__MSG_tor__") Tor - - .some-block.option-block - h4(data-localise="__MSG_redirectType") Redirect Type - select#only-embed - option(value="both" data-localise="__MSG_both__") both - option(value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__") Only Embedded - option(value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__") Only Not Embedded - - #invidious - hr - .normal - include ../../widgets/instances.pug - +instances('https://invidious.com') - include ../../widgets/latency.pug - +latency('invidious') - .tor - include ../../widgets/instances.pug - +instances('https://invidious.onion') - - #piped - hr - .normal - include ../../widgets/instances.pug - +instances('https://piped.com') - +latency('piped') - .tor - include ../../widgets/instances.pug - +instances('https://piped.onion') - - #pipedMaterial - hr - .normal - include ../../widgets/instances.pug - +instances('https://piped-material.com') - +latency('pipedMaterial') - .tor - include ../../widgets/instances.pug - +instances('https://piped-material.onion') - - - script(type="module" src="../init.js") - script(type="module" src="./youtube.js") diff --git a/src/pages/options/youtubeMusic/youtubeMusic.html b/src/pages/options/youtubeMusic/youtubeMusic.html deleted file mode 100644 index b77a2a88..00000000 --- a/src/pages/options/youtubeMusic/youtubeMusic.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - YouTube Music - - - - - -
-
-

YouTube Music

-
-
-
-

Enable

- -
-
-
-
-
-

Default Instances

-
-
-
-
-

Custom Instances

-
-
-
- - -
-
-
- - -
-
-
- - - \ No newline at end of file diff --git a/src/pages/options/youtubeMusic/youtubeMusic.js b/src/pages/options/youtubeMusic/youtubeMusic.js deleted file mode 100644 index 167630eb..00000000 --- a/src/pages/options/youtubeMusic/youtubeMusic.js +++ /dev/null @@ -1,23 +0,0 @@ -import youtubeMusicHelper from "../../../assets/javascripts/helpers/youtubeMusic.js"; -import utils from "../../../assets/javascripts/helpers/utils.js"; - -let disableYoutubeMusicElement = document.getElementById("disable-beatbump"); - -browser.storage.local.get( - [ - "disableYoutubeMusic", - ], - r => { - disableYoutubeMusicElement.checked = !r.disableYoutubeMusic; - } -); - -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableYoutubeMusic: !disableYoutubeMusicElement.checked, - }) -}) - -utils.processDefaultCustomInstances('youtubeMusic', 'beatbump', 'normal', document); - -utils.latency('youtubeMusic', 'beatbump', document, location) \ No newline at end of file diff --git a/src/pages/options/youtubeMusic/youtubeMusic.pug b/src/pages/options/youtubeMusic/youtubeMusic.pug deleted file mode 100644 index ad3271d4..00000000 --- a/src/pages/options/youtubeMusic/youtubeMusic.pug +++ /dev/null @@ -1,27 +0,0 @@ -doctype html -html(lang="en") - include ../../widgets/head.pug - title YouTube Music -script(type="module" src="../../../assets/javascripts/localise.js") -body.option(dir="auto") - include ../../widgets/links.pug - +links('youtubeMusic') - - section.option-block - .some-block.option-block - h1 YouTube Music - hr - .some-block.option-block - h4(data-localise="__MSG_enable__") Enable - input#disable-beatbump(type="checkbox") - - #beatbump - hr - .normal - include ../../widgets/instances.pug - +instances('https://beatbump.wewe') - include ../../widgets/latency.pug - +latency() - - script(type="module" src="../init.js") - script(type="module" src="./youtubeMusic.js") diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html index 3eb6ba19..5b00b084 100644 --- a/src/pages/popup/popup.html +++ b/src/pages/popup/popup.html @@ -8,35 +8,35 @@
-

YouTube

+

YouTube

-

YT Music

+

YT Music

-

Twitter

+

Twitter

-

Instagram

+

Instagram

-

TikTok

+

TikTok

-

Imgur

+

Imgur

-

Reddit

+

Reddit

-

Wikipedia

+

Wikipedia

@@ -45,63 +45,63 @@ -

Medium

+

Medium

-

PeerTube

+

PeerTube

-

LBRY

+

LBRY

-

Translate

+

Translate

-

Maps

+

Maps

-

Send Files

+

Send Files


-

Change Instance

+

Change Instance

-

Copy Raw

+

Copy Raw

-

Unify Settings

+

Unify Settings

-

Settings

+

Settings

diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index 73890b07..5d309f63 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -1,8 +1,42 @@ "use strict"; window.browser = window.browser || window.chrome; -import utils from "../../assets/javascripts/helpers/utils.js"; -import generalHelper from "../../assets/javascripts/helpers/general.js"; +import utils from "../../assets/javascripts/utils.js"; +import generalHelper from "../../assets/javascripts/general.js"; + +utils.unify(true).then(r => { + if (!r) document.getElementById('unify_div').style.display = 'none'; + else { + const unify = document.getElementById('unify'); + unify.addEventListener("click", () => + browser.runtime.sendMessage({ function: 'unify' }, + response => { + if (response && response.response) { + const textElement = document.getElementById('unify').getElementsByTagName('h4')[0] + const oldHtml = textElement.innerHTML; + textElement.innerHTML = browser.i18n.getMessage('unified'); + setTimeout(() => textElement.innerHTML = oldHtml, 1000); + } + }) + ); + } +}) + +utils.switchInstance(true).then(r => { + if (!r) document.getElementById("change_instance_div").style.display = 'none'; + else document.getElementById("change_instance").addEventListener("click", () => utils.switchInstance(false)); +}); + +utils.copyRaw(true).then(r => { + if (!r) document.getElementById('copy_raw_div').style.display = 'none'; + else { + const copy_raw = document.getElementById('copy_raw'); + copy_raw.addEventListener("click", () => utils.copyRaw(false, copy_raw)); + } +}) + +document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage()); + let disableTwitterElement = document.getElementById("disable-nitter"); let disableYoutubeElement = document.getElementById("disable-youtube"); @@ -37,6 +71,8 @@ browser.storage.local.get( "disablePeertubeTargets", "disableLbryTargets", "disableSendTarget", + + 'popupFrontends', ], r => { disableTwitterElement.checked = !r.disableTwitter; @@ -53,7 +89,13 @@ browser.storage.local.get( disableMediumElement.checked = !r.disableMedium; disablePeertubeElement.checked = !r.disablePeertubeTargets; disableLbryElement.checked = !r.disableLbryTargets; - disableSendTargetsElement.checked = r.disableSendTarget; + disableSendTargetsElement.checked = !r.disableSendTarget; + + for (const frontend of generalHelper.allPopupFrontends) + if (!r.popupFrontends.includes(frontend)) + document.getElementById(frontend).classList.add("hide") + else + document.getElementById(frontend).classList.remove("hide") } ) @@ -77,51 +119,6 @@ document.addEventListener("change", () => { }); }) -utils.switchInstance(true).then(r => { - if (!r) document.getElementById("change_instance_div").style.display = 'none'; - else document.getElementById("change_instance").addEventListener("click", () => utils.switchInstance(false)); -}); - -utils.copyRaw(true).then(r => { - if (!r) document.getElementById('copy_raw_div').style.display = 'none'; - else { - const copy_raw = document.getElementById('copy_raw'); - copy_raw.addEventListener("click", () => utils.copyRaw(false, copy_raw)); - } -}) - - -utils.unify(true).then(r => { - if (!r) document.getElementById('unify_div').style.display = 'none'; - else { - const unify = document.getElementById('unify'); - unify.addEventListener("click", () => - browser.runtime.sendMessage({ function: 'unify' }, - response => { - if (response && response.response) { - const textElement = document.getElementById('unify').getElementsByTagName('h4')[0] - const oldHtml = textElement.innerHTML; - textElement.innerHTML = 'Unified'; - setTimeout(() => textElement.innerHTML = oldHtml, 1000); - } - }) - ); - } -}) - -document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage()); - -browser.storage.local.get( - 'popupFrontends', - r => { - for (const frontend of generalHelper.allPopupFrontends) - if (!r.popupFrontends.includes(frontend)) - document.getElementById(frontend).classList.add("hide") - else - document.getElementById(frontend).classList.remove("hide") - } -); - for (const a of document.getElementsByTagName('a')) { a.addEventListener('click', e => { if (!a.classList.contains('button')) { diff --git a/src/pages/popup/popup.pug b/src/pages/popup/popup.pug index 94f65eae..a2c8de93 100644 --- a/src/pages/popup/popup.pug +++ b/src/pages/popup/popup.pug @@ -11,117 +11,116 @@ html(lang="en") #youtube.some-block a.title(href="https://youtube.com") img(src="../../assets/images/youtube-icon.png") - h4 YouTube + h4(data-localise="__MSG_youtube__") YouTube input#disable-youtube(type="checkbox") #youtubeMusic.some-block a.title(href="https://music.youtube.com") img(src="../../assets/images/youtube-music-icon.png") - h4 YT Music + h4(data-localise="__MSG_ytmusic__") YT Music input#disable-youtubeMusic(type="checkbox") #twitter.some-block a.title(href="https://twitter.com") img(src="../../assets/images/twitter-icon.png") - h4 Twitter + h4(data-localise="__MSG_twitter__") Twitter input#disable-nitter(type="checkbox") #instagram.some-block a.title(href="https://instagram.com") img(src="../../assets/images/instagram-icon.png") - h4 Instagram + h4(data-localise="__MSG_instagram__") Instagram input#disable-bibliogram(type="checkbox") #tikTok.some-block a.title(href="https://tiktok.com") img(src="../../assets/images/tiktok-icon.png") - h4 TikTok + h4(data-localise="__MSG_tiktok__") TikTok input#disable-tiktok(type="checkbox") #imgur.some-block a.title(href="https://imgur.com") img(src="../../assets/images/imgur-icon.png") - h4 Imgur + h4(data-localise="__MSG_imgur__") Imgur input#disable-imgur(type="checkbox") #reddit.some-block a.title(href="https://reddit.com") img(src="../../assets/images/reddit-icon.png") - h4 Reddit + h4(data-localise="__MSG_reddit__") Reddit input#disable-reddit(type="checkbox") #wikipedia.some-block a.title(href="https://wikipedia.com") img(src="../../assets/images/wikipedia-icon.svg") - h4 Wikipedia + h4(data-localise="__MSG_wikipedia__") Wikipedia input#disable-wikipedia(type="checkbox") #medium.some-block a.title(href="https://medium.com") +medium - h4 Medium + h4(data-localise="__MSG_medium__") Medium input#disable-medium(type="checkbox") #peertube.some-block a.title(href="https://search.joinpeertube.org") img(src="../../assets/images/peertube-icon.svg") - h4 PeerTube + h4(data-localise="__MSG_peertube__") PeerTube input#disable-peertube(type="checkbox") #lbry.some-block a.title(href="https://odysee.com/") img(src="../../assets/images/lbry-icon.png") - h4 LBRY + h4(data-localise="__MSG_lbry__") LBRY input#disable-lbry(type="checkbox") #search.some-block a.title(href="https://search.libredirect.invalid") +search - h4 Search + h4(data-localise="__MSG_search__") Search input#disable-search(type="checkbox") #translate.some-block a.title(href="https://translate.google.com") +translate - h4 Translate + h4(data-localise="__MSG_translate__") Translate input#disable-simplyTranslate(type="checkbox") #maps.some-block a.title(href="https://www.openstreetmap.org") +maps - h4 Maps + h4(data-localise="__MSG_maps__") Maps input#disable-osm(type="checkbox") #sendTargets.some-block a.title(href="https://send.libredirect.invalid") +send - h4 Send Files + h4(data-localise="__MSG_sendFiles__") Send Files input#disable-sendTargets(type="checkbox") hr #change_instance_div.some-block a#change_instance.title.button - h4 Change Instance + h4(data-localise="__MSG_switchInstance__") Change Instance +change_instance #copy_raw_div.some-block(title="Copy the original redirected link") a#copy_raw.title.button - h4 Copy Raw + h4(data-localise="__MSG_copyRaw__") Copy Raw +copy_raw #unify_div.some-block(title="Unify cookies across all selected instances") a#unify.title.button - h4 Unify Settings + h4(data-localise="__MSG_unifySettings__") Unify Settings +unify .some-block a#more-options.title.button - h4 Settings + h4(data-localise="__MSG_settings__") Settings +settings .space script(type="module" src="../options/init.js") - script(type="module" src="./popup.js") - //- script(src="../../assets/javascripts/localise.js") \ No newline at end of file + script(type="module" src="./popup.js") \ No newline at end of file diff --git a/src/pages/stylesheets/styles.css b/src/pages/stylesheets/styles.css index f4027c28..e04f638f 100644 --- a/src/pages/stylesheets/styles.css +++ b/src/pages/stylesheets/styles.css @@ -112,6 +112,7 @@ body.option { section.links div { margin: 20px 0; + width: max-content; } a { @@ -297,11 +298,6 @@ div.buttons-popup { margin-right: 5px; } -body.rtl { - margin-right: 0; - margin-left: 5px; -} - .button:hover svg { color: var(--active); } @@ -449,4 +445,8 @@ button { display: inline-block; cursor: pointer; border-radius: 5px; +} + +body div section { + display: none; } \ No newline at end of file diff --git a/src/pages/widgets/icons.pug b/src/pages/widgets/icons.pug index 60186693..89e207a0 100644 --- a/src/pages/widgets/icons.pug +++ b/src/pages/widgets/icons.pug @@ -37,7 +37,6 @@ mixin general svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor") path(d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z") - mixin unify svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") path(d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z") \ No newline at end of file diff --git a/src/pages/widgets/links.pug b/src/pages/widgets/links.pug index 97601966..7a04a991 100644 --- a/src/pages/widgets/links.pug +++ b/src/pages/widgets/links.pug @@ -1,67 +1,67 @@ include ../widgets/icons.pug mixin links(service) - section.links + section#links.links .title +general - a(href="../general/general.html" data-localise="__MSG_general__" class=service == "general" ? "selected" : "") General + a(href="#general" data-localise="__MSG_general__") General .title img(src="../../../assets/images/youtube-icon.png") - a(href="../youtube/youtube.html" data-localise="__MSG_youtube__" class=service == "youtube" ? "selected" : "") YouTube + a(href="#youtube" data-localise="__MSG_youtube__") YouTube .title img(src="../../../assets/images/youtube-music-icon.png") - a(href="../youtubeMusic/youtubeMusic.html" data-localise="__MSG_ytmusic__" class=service == "youtubeMusic" ? "selected" : "") YT Music + a(href="#youtubeMusic" data-localise="__MSG_ytmusic__") YT Music .title img(src="../../../assets/images/twitter-icon.png") - a(href="../twitter/twitter.html" class=service == "twitter" ? "selected" : "" data-localise="__MSG_twitter__") Twitter + a(href="#twitter" data-localise="__MSG_twitter__") Twitter .title img(src="../../../assets/images/instagram-icon.png") - a(href="../instagram/instagram.html" data-localise="__MSG_instagram__" class=service == "instagram" ? "selected" : "") Instagram + a(href="#instagram" data-localise="__MSG_instagram__") Instagram .title img(src="../../../assets/images/tiktok-icon.png") - a(href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__" class=service == "tiktok" ? "selected" : "") TikTok + a(href="#tiktok" data-localise="__MSG_tiktok__") TikTok .title img(src="../../../assets/images/reddit-icon.png") - a(href="../reddit/reddit.html" data-localise="__MSG_reddit__" class=service == "reddit" ? "selected" : "") Reddit + a(href="#reddit" data-localise="__MSG_reddit__") Reddit .title img(src="../../../assets/images/imgur-icon.png") - a(href="../imgur/imgur.html" data-localise="__MSG_imgur__" class=service == "imgur" ? "selected" : "") Imgur + a(href="#imgur" data-localise="__MSG_imgur__") Imgur .title img(src="../../../assets/images/wikipedia-icon.svg") - a(href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__" class=service == "wikipedia" ? "selected" : "") Wikipedia + a(href="#wikipedia" data-localise="__MSG_wikipedia__") Wikipedia .title +medium - a(href="../medium/medium.html" data-localise="__MSG_medium__" class=service == "medium" ? "selected" : "") Medium + a(href="#medium" data-localise="__MSG_medium__") Medium .title img(src="../../../assets/images/peertube-icon.svg") - a(href="../peertube/peertube.html" data-localise="__MSG_peertube__" class=service == "peertube" ? "selected" : "") PeerTube + a(href="#peertube" data-localise="__MSG_peertube__") PeerTube .title img(src="../../../assets/images/lbry-icon.png") - a(href="../lbry/lbry.html" data-localise="__MSG_lbry__" class=service == "lbry" ? "selected" : "") LBRY/Odysee + a(href="#lbry" data-localise="__MSG_lbry__") LBRY/Odysee .title +search - a(href="../search/search.html" data-localise="__MSG_search__" class=service == "search" ? "selected" : "") Search + a(href="#search" data-localise="__MSG_search__") Search .title +translate - a(href="../translate/translate.html" data-localise="__MSG_translate__" class=service == "translate" ? "selected" : "") Translate + a(href="#translate" data-localise="__MSG_translate__") Translate .title +maps - a(href="../maps/maps.html" data-localise="__MSG_maps__" class=service == "maps" ? "selected" : "") Maps + a(href="#maps" data-localise="__MSG_maps__") Maps .title +send - a(href="../sendTargets/sendTargets.html" data-localise="__MSG_sendFiles__" class=service == "sendTargets" ? "selected" : "") Send Files \ No newline at end of file + a(href="#sendTargets" data-localise="__MSG_sendFiles__") Send Files \ No newline at end of file -- cgit 1.4.1