From ab44fd04ffa1055bd17a3da02017e8de3da88af2 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Sun, 15 May 2022 18:44:28 +0300 Subject: Complete on supporting Unify #234 --- src/pages/background/background.js | 32 +- src/pages/options/general/general.html | 48 +- src/pages/options/general/general.js | 27 +- src/pages/options/general/general.pug | 8 - src/pages/options/imgur/imgur.html | 40 +- src/pages/options/instagram/instagram.html | 40 +- src/pages/options/instagram/instagram.js | 24 +- src/pages/options/lbry/lbry.html | 40 +- src/pages/options/lbry/lbry.js | 28 +- src/pages/options/maps/maps.html | 40 +- src/pages/options/maps/maps.js | 29 +- src/pages/options/medium/medium.html | 40 +- src/pages/options/medium/medium.js | 24 +- src/pages/options/peertube/peertube.html | 40 +- src/pages/options/peertube/peertube.js | 28 +- src/pages/options/reddit/reddit.html | 59 +- src/pages/options/reddit/reddit.js | 58 +- src/pages/options/reddit/reddit.pug | 16 - src/pages/options/search/search.html | 394 +------- src/pages/options/search/search.js | 133 +-- src/pages/options/search/search.pug | 333 ------- src/pages/options/sendTargets/sendTargets.html | 40 +- src/pages/options/sendTargets/sendTargets.js | 23 +- src/pages/options/tiktok/tiktok.html | 66 +- src/pages/options/tiktok/tiktok.js | 44 +- src/pages/options/tiktok/tiktok.pug | 21 - src/pages/options/translate/translate.html | 279 +----- src/pages/options/translate/translate.js | 80 +- src/pages/options/translate/translate.pug | 25 +- src/pages/options/twitter/twitter.html | 126 +-- src/pages/options/twitter/twitter.js | 118 +-- src/pages/options/twitter/twitter.pug | 87 +- src/pages/options/wikipedia/wikipedia.html | 40 +- src/pages/options/youtube/invidious.js | 177 ---- src/pages/options/youtube/piped.js | 152 --- src/pages/options/youtube/pipedMaterial.js | 125 --- src/pages/options/youtube/youtube.html | 1092 +--------------------- src/pages/options/youtube/youtube.js | 233 +++-- src/pages/options/youtube/youtube.pug | 647 ------------- src/pages/options/youtubeMusic/youtubeMusic.html | 40 +- src/pages/popup/popup.html | 291 +++--- src/pages/popup/popup.js | 108 ++- src/pages/popup/popup.pug | 123 +++ src/pages/stylesheets/styles.css | 6 - src/pages/widgets/captions_options.pug | 130 --- src/pages/widgets/from-to.pug | 108 --- src/pages/widgets/icons.pug | 44 + src/pages/widgets/links.pug | 25 +- 48 files changed, 1044 insertions(+), 4687 deletions(-) delete mode 100644 src/pages/options/youtube/invidious.js delete mode 100644 src/pages/options/youtube/piped.js delete mode 100644 src/pages/options/youtube/pipedMaterial.js create mode 100644 src/pages/popup/popup.pug delete mode 100644 src/pages/widgets/captions_options.pug delete mode 100644 src/pages/widgets/from-to.pug create mode 100644 src/pages/widgets/icons.pug (limited to 'src/pages') diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 7bf960c9..f7d05913 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -93,29 +93,17 @@ browser.webRequest.onBeforeRequest.addListener( if (youtubeMusicHelper.isYoutubeMusic(url, initiator)) newUrl = youtubeMusicHelper.redirect(url, details.type) if (!newUrl) newUrl = twitterHelper.redirect(url, initiator); - if (!newUrl) newUrl = instagramHelper.redirect(url, details.type, initiator); - if (!newUrl) newUrl = await mapsHelper.redirect(url, initiator); - if (!newUrl) newUrl = redditHelper.redirect(url, details.type, initiator); - if (!newUrl) newUrl = mediumHelper.redirect(url, details.type, initiator); - if (!newUrl) newUrl = imgurHelper.redirect(url, details.type, initiator); - if (!newUrl) newUrl = tiktokHelper.redirect(url, details.type, initiator); - if (!newUrl) newUrl = sendTargetsHelper.redirect(url, details.type, initiator); - if (!newUrl) newUrl = peertubeHelper.redirect(url, details.type, initiator); - if (!newUrl) newUrl = lbryHelper.redirect(url, details.type, initiator); - if (!newUrl) newUrl = translateHelper.redirect(url); - if (!newUrl) newUrl = searchHelper.redirect(url) - if (!newUrl) newUrl = wikipediaHelper.redirect(url); if ( @@ -198,7 +186,6 @@ browser.webRequest.onResponseStarted.addListener( details => { if (!generalHelper.getAutoRedirect()) return null; - console.log('details.statusCode', details.statusCode); if (details.type == 'main_frame' && (details.statusCode == 502 || details.statusCode == 503 || details.statusCode == 504)) { // if (details.type == 'main_frame' && details.statusCode >= 200) { // console.log("statusCode", details.statusCode); @@ -226,10 +213,10 @@ browser.tabs.onUpdated.addListener( let url; try { url = new URL(changeInfo.url); } catch (_) { return } - if (youtubeHelper.isPipedorInvidious(url, 'main_frame', 'piped')) youtubeHelper.initPipedLocalStorage(tabId); - if (youtubeHelper.isPipedorInvidious(url, 'main_frame', 'pipedMaterial')) youtubeHelper.initPipedMaterialLocalStorage(tabId); - if (translateHelper.isTranslateRedirects(url, 'main_frame', 'lingva')) translateHelper.initLingvaLocalStorage(tabId); - if (instagramHelper.isBibliogram(url)) instagramHelper.initBibliogramCookies(url); + let result = await youtubeHelper.initPipedLocalStorage(url, tabId); + // if (youtubeHelper.isPipedorInvidious(url, 'main_frame', 'pipedMaterial')) youtubeHelper.initPipedMaterialLocalStorage(tabId); + // if (translateHelper.isTranslateRedirects(url, 'main_frame', 'lingva')) translateHelper.initLingvaLocalStorage(tabId); + // if (instagramHelper.isBibliogram(url)) instagramHelper.initBibliogramCookies(url); // if (changeInfo.url && youtubeHelper.isPipedorInvidious(url, 'main_frame', 'pipedMaterial')) youtubeHelper.initPipedMaterialLocalStorage(tabId); } ); @@ -237,27 +224,16 @@ browser.tabs.onUpdated.addListener( async function changeWholeInstance(url) { await wholeInit(); let newUrl = youtubeHelper.switchInstance(url); - if (!newUrl) newUrl = twitterHelper.switchInstance(url); - if (!newUrl) newUrl = instagramHelper.switchInstance(url); - if (!newUrl) newUrl = redditHelper.switchInstance(url); - if (!newUrl) newUrl = searchHelper.switchInstance(url); - if (!newUrl) newUrl = translateHelper.switchInstance(url); - if (!newUrl) newUrl = mediumHelper.switchInstance(url); - if (!newUrl) newUrl = sendTargetsHelper.switchInstance(url); - if (!newUrl) newUrl = peertubeHelper.switchInstance(url); - if (!newUrl) newUrl = imgurHelper.switchInstance(url); - if (!newUrl) newUrl = wikipediaHelper.switchInstance(url); - return newUrl; } diff --git a/src/pages/options/general/general.html b/src/pages/options/general/general.html index c8a8b3fc..51011816 100644 --- a/src/pages/options/general/general.html +++ b/src/pages/options/general/general.html @@ -11,9 +11,9 @@
@@ -62,14 +62,6 @@ -
-

Apply Theme to sites

- -
-
-

Always use Preferred Instances

- -

Auto Redirect of offline instances

diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js index 2fab94fb..89302d5c 100644 --- a/src/pages/options/general/general.js +++ b/src/pages/options/general/general.js @@ -57,20 +57,10 @@ resetSettingsElement.addEventListener("click", } ); -let alwaysUsePreferredElement = document.getElementById("always-use-preferred") -alwaysUsePreferredElement.addEventListener("change", - event => generalHelper.setAlwaysUsePreferred(event.target.checked) -); - let autoRedirectElement = document.getElementById("auto-redirect") autoRedirectElement.addEventListener("change", event => generalHelper.setAutoRedirect(event.target.checked) ); - -let applyThemeToSitesElement = document.getElementById("apply-theme-to-sites") -applyThemeToSitesElement.addEventListener("change", - event => generalHelper.setApplyThemeToSites(event.target.checked) -); let themeElement = document.getElementById("theme"); themeElement.addEventListener("change", event => { const value = event.target.options[theme.selectedIndex].value; @@ -96,10 +86,8 @@ for (const frontend of generalHelper.allPopupFrontends) ) generalHelper.init().then(() => { - alwaysUsePreferredElement.checked = generalHelper.getAlwaysUsePreferred(); autoRedirectElement.checked = generalHelper.getAutoRedirect(); themeElement.value = generalHelper.getTheme(); - applyThemeToSitesElement.checked = generalHelper.getApplyThemeToSites(); instanceTypeElement.addEventListener("change", event => { instanceType = event.target.options[instanceTypeElement.selectedIndex].value @@ -117,13 +105,14 @@ generalHelper.init().then(() => { function calcExceptionsCustomInstances() { document.getElementById("exceptions-custom-checklist").innerHTML = [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex].map( - (x) => `
${x} + (x) => `
+ ${x} +

` ).join('\n'); diff --git a/src/pages/options/general/general.pug b/src/pages/options/general/general.pug index b5b46d5f..13e18be6 100644 --- a/src/pages/options/general/general.pug +++ b/src/pages/options/general/general.pug @@ -14,14 +14,6 @@ body.option(dir="auto") option(value="light" data-localise="__MSG_light__") Light option(value="dark" data-localise="__MSG_dark__") Dark - .some-block.option-block - h4(data-localise="__MSG_applyTheme__") Apply Theme to sites - input#apply-theme-to-sites(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_alwaysPref__") Always use Preferred Instances - input#always-use-preferred(type="checkbox") - .some-block.option-block h4(data-localise="__MSG_autoRedirect__") Auto Redirect of offline instances input#auto-redirect(type="checkbox") diff --git a/src/pages/options/imgur/imgur.html b/src/pages/options/imgur/imgur.html index 4b529e07..d537acff 100644 --- a/src/pages/options/imgur/imgur.html +++ b/src/pages/options/imgur/imgur.html @@ -12,9 +12,9 @@
diff --git a/src/pages/options/instagram/instagram.html b/src/pages/options/instagram/instagram.html index 866e5ed7..b03040b7 100644 --- a/src/pages/options/instagram/instagram.html +++ b/src/pages/options/instagram/instagram.html @@ -12,9 +12,9 @@
diff --git a/src/pages/options/instagram/instagram.js b/src/pages/options/instagram/instagram.js index 6b29d869..39d11426 100644 --- a/src/pages/options/instagram/instagram.js +++ b/src/pages/options/instagram/instagram.js @@ -1,25 +1,25 @@ import instagramHelper from "../../../assets/javascripts/helpers/instagram.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; -let disableInstagramElement = document.getElementById("disable-bibliogram"); -let protocolElement = document.getElementById("protocol"); +const disable = document.getElementById("disable-bibliogram"); +const protocol = document.getElementById("protocol"); document.addEventListener("change", async () => { await browser.storage.local.set({ - disableInstagram: disableInstagramElement.checked, - instagramProtocol: protocolElement.value, + disableInstagram: disable.checked, + instagramProtocol: protocol.value, }) - changeProtocolSettings(protocolElement.value); + changeProtocolSettings(); }) -function changeProtocolSettings(protocol) { +function changeProtocolSettings() { let normalDiv = document.getElementsByClassName("normal")[0]; let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol == 'normal') { + if (protocol.value == 'normal') { normalDiv.style.display = 'block'; torDiv.style.display = 'none'; } - else if (protocol == 'tor') { + else if (protocol.value == 'tor') { normalDiv.style.display = 'none'; torDiv.style.display = 'block'; } @@ -31,11 +31,9 @@ browser.storage.local.get( "instagramProtocol" ], r => { - disableInstagramElement.checked = !r.disableInstagram; - - let protocol = r.instagramProtocol; - protocolElement.value = protocol; - changeProtocolSettings(protocol); + disable.checked = !r.disableInstagram; + protocol.value = r.instagramProtocol; + changeProtocolSettings(); }) commonHelper.processDefaultCustomInstances('instagram', 'bibliogram', 'normal', document); diff --git a/src/pages/options/lbry/lbry.html b/src/pages/options/lbry/lbry.html index a5167f21..4e3c1316 100644 --- a/src/pages/options/lbry/lbry.html +++ b/src/pages/options/lbry/lbry.html @@ -12,9 +12,9 @@
diff --git a/src/pages/options/lbry/lbry.js b/src/pages/options/lbry/lbry.js index f1cb49da..fcac7bd8 100644 --- a/src/pages/options/lbry/lbry.js +++ b/src/pages/options/lbry/lbry.js @@ -1,25 +1,25 @@ import lbryHelper from "../../../assets/javascripts/helpers/lbry.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; -let disableLbryElement = document.getElementById("disable-lbry"); -let protocolElement = document.getElementById("protocol") +let disable = document.getElementById("disable-lbry"); +let protocol = document.getElementById("protocol") document.addEventListener("change", async () => { await browser.storage.local.set({ disableLbryTargets: !lbryHelper.checked, - lbryTargetsProtocol: protocolElement.value, + lbryTargetsProtocol: protocol.value, }); - changeProtocolSettings(protocolElement.value) + changeProtocolSettings() }) -function changeProtocolSettings(protocol) { +function changeProtocolSettings() { let normalDiv = document.getElementsByClassName("normal")[0]; let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol == 'normal') { + if (protocol.value == 'normal') { normalDiv.style.display = 'block'; torDiv.style.display = 'none'; } - else if (protocol == 'tor') { + else if (protocol.value == 'tor') { normalDiv.style.display = 'none'; torDiv.style.display = 'block'; } @@ -31,14 +31,14 @@ browser.storage.local.get( "lbryTargetsProtocol" ], r => { - disableLbryElement.checked = !r.disableLbryTargets; + disable.checked = !r.disableLbryTargets; + protocol.value = r.lbryTargetsProtocol; + changeProtocolSettings(); + } +) - let protocol = r.lbryTargetsProtocol; - protocolElement.value = protocol; - changeProtocolSettings(protocol); - }) -commonHelper.processDefaultCustomInstances('lbry', 'librarian', 'normal', document); -commonHelper.processDefaultCustomInstances('lbry', 'librarian', 'tor', document); +commonHelper.processDefaultCustomInstances('lbryTargets', 'librarian', 'normal', document); +commonHelper.processDefaultCustomInstances('lbryTargets', 'librarian', 'tor', document); let latencyElement = document.getElementById("latency"); let latencyLabel = document.getElementById("latency-label"); diff --git a/src/pages/options/maps/maps.html b/src/pages/options/maps/maps.html index b1a38063..d7961b31 100644 --- a/src/pages/options/maps/maps.html +++ b/src/pages/options/maps/maps.html @@ -12,9 +12,9 @@
diff --git a/src/pages/options/maps/maps.js b/src/pages/options/maps/maps.js index 3f2df54d..7e18def3 100644 --- a/src/pages/options/maps/maps.js +++ b/src/pages/options/maps/maps.js @@ -1,35 +1,32 @@ import mapsHelper from "../../../assets/javascripts/helpers/maps.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; -let disableMapsElement = document.getElementById("disable-osm"); -let mapsFrontendElement = document.getElementById("maps-frontend"); +const disable = document.getElementById("disable-osm"); +const frontend = document.getElementById("maps-frontend"); document.addEventListener("change", async () => { await browser.storage.local.set({ - disableMaps: !disableMapsElement.checked, - mapsFrontend: mapsFrontendElement.value, + disableMaps: !disable.checked, + mapsFrontend: frontend.value, }) - changeFrontendsSettings(mapsFrontendElement.value); + changeFrontendsSettings(); }) -let facilDivElement = document.getElementById("facil") -function changeFrontendsSettings(frontend) { - if (frontend == 'facil') { - facilDivElement.style.display = 'block'; - } - else if (frontend == 'osm') { - facilDivElement.style.display = 'none'; - } +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 => { - disableMapsElement.checked = !r.disableMaps; - mapsFrontendElement.value = r.mapsFrontend; - changeFrontendsSettings(r.mapsFrontend); + disable.checked = !r.disableMaps; + frontend.value = r.mapsFrontend; + changeFrontendsSettings(); } ) commonHelper.processDefaultCustomInstances('maps', 'facil', 'normal', document); diff --git a/src/pages/options/medium/medium.html b/src/pages/options/medium/medium.html index 6f863f01..136081d7 100644 --- a/src/pages/options/medium/medium.html +++ b/src/pages/options/medium/medium.html @@ -12,9 +12,9 @@
diff --git a/src/pages/options/medium/medium.js b/src/pages/options/medium/medium.js index 753a8d72..786f8f17 100644 --- a/src/pages/options/medium/medium.js +++ b/src/pages/options/medium/medium.js @@ -1,8 +1,8 @@ import mediumHelper from "../../../assets/javascripts/helpers/medium.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; -let disableMediumElement = document.getElementById("disable-medium"); -let protocolElement = document.getElementById("protocol") +let disable = document.getElementById("disable-medium"); +let protocol = document.getElementById("protocol") browser.storage.local.get( [ @@ -10,11 +10,9 @@ browser.storage.local.get( "mediumProtocol" ], r => { - disableMediumElement.checked = !r.disableMedium; - - let protocol = r.mediumProtocol; - protocolElement.value = protocol; - changeProtocolSettings(protocol); + disable.checked = !r.disableMedium; + protocol.value = r.mediumProtocol; + changeProtocolSettings(); } ) commonHelper.processDefaultCustomInstances('medium', 'scribe', 'normal', document); @@ -22,20 +20,20 @@ commonHelper.processDefaultCustomInstances('medium', 'scribe', 'tor', document); document.addEventListener("change", async () => { await browser.storage.local.set({ - disableMedium: !disableMediumElement.checked, - mediumProtocol: protocolElement.value, + disableMedium: !disable.checked, + mediumProtocol: protocol.value, }) - changeProtocolSettings(protocolElement.value); + changeProtocolSettings(); }) -function changeProtocolSettings(protocol) { +function changeProtocolSettings() { let normalDiv = document.getElementsByClassName("normal")[0]; let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol == 'normal') { + if (protocol.value == 'normal') { normalDiv.style.display = 'block'; torDiv.style.display = 'none'; } - else if (protocol == 'tor') { + else if (protocol.value == 'tor') { normalDiv.style.display = 'none'; torDiv.style.display = 'block'; } diff --git a/src/pages/options/peertube/peertube.html b/src/pages/options/peertube/peertube.html index e7ebe99b..d5ded94c 100644 --- a/src/pages/options/peertube/peertube.html +++ b/src/pages/options/peertube/peertube.html @@ -12,9 +12,9 @@
diff --git a/src/pages/options/peertube/peertube.js b/src/pages/options/peertube/peertube.js index 3e2abb2f..818e3fec 100644 --- a/src/pages/options/peertube/peertube.js +++ b/src/pages/options/peertube/peertube.js @@ -1,19 +1,17 @@ import peertubeHelper from "../../../assets/javascripts/helpers/peertube.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; -let disablePeertubeElement = document.getElementById("disable-peertube"); -let protocolElement = document.getElementById("protocol") +let disable = document.getElementById("disable-peertube"); +let protocol = document.getElementById("protocol") browser.storage.local.get( [ "disablePeertubeTargets", "peertubeTargetsProtocol" ], r => { - disablePeertubeElement.checked = !r.disablePeertubeTargets; - - let protocol = r.peertubeTargetsProtocol; - protocolElement.value = protocol; - changeProtocolSettings(protocol); + disable.checked = !r.disablePeertubeTargets; + protocol.value = r.peertubeTargetsProtocol; + changeProtocolSettings(); } ) commonHelper.processDefaultCustomInstances('peertube', 'simpleertube', 'normal', document); @@ -21,20 +19,20 @@ commonHelper.processDefaultCustomInstances('peertube', 'simpleertube', 'tor', do document.addEventListener("change", async () => { await browser.storage.local.set({ - disablePeertubeTargets: !disablePeertubeElement.checked, - peertubeTargetsProtocol: protocolElement.value + disablePeertubeTargets: !disable.checked, + peertubeTargetsProtocol: protocol.value }) - changeProtocolSettings(protocolElement.value); + changeProtocolSettings(); }) -function changeProtocolSettings(protocol) { - let normalDiv = document.getElementsByClassName("normal")[0]; - let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol == 'normal') { +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 == 'tor') { + else if (protocol.value == 'tor') { normalDiv.style.display = 'none'; torDiv.style.display = 'block'; } diff --git a/src/pages/options/reddit/reddit.html b/src/pages/options/reddit/reddit.html index e3fc40d9..876369f9 100644 --- a/src/pages/options/reddit/reddit.html +++ b/src/pages/options/reddit/reddit.html @@ -12,9 +12,9 @@
@@ -73,26 +73,7 @@
-
-

Bypass "Open in Reddit"

- -
-
-
-

Unify cookies across selected instances

-
-
-
- - -
-

diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js index 65ad284c..52399649 100644 --- a/src/pages/options/reddit/reddit.js +++ b/src/pages/options/reddit/reddit.js @@ -5,19 +5,17 @@ let libredditDivElement = document.getElementById("libreddit") let tedditDivElement = document.getElementById("teddit") let disableRedditElement = document.getElementById("disable-reddit"); -let redditFrontendElement = document.getElementById("reddit-frontend"); -let protocolElement = document.getElementById("protocol") -let bypassWatchOnRedditElement = document.getElementById("bypass-watch-on-reddit") +let frontend = document.getElementById("reddit-frontend"); +let protocol = document.getElementById("protocol") -document.addEventListener("change", async () => { - await browser.storage.local.set({ +document.addEventListener("change", () => { + browser.storage.local.set({ disableReddit: !disableRedditElement.checked, - bypassWatchOnReddit: bypassWatchOnRedditElement.checked, - redditProtocol: protocolElement.value, - redditFrontend: redditFrontendElement.value, + redditProtocol: protocol.value, + redditFrontend: frontend.value, }); - changeFrontendsSettings(redditFrontendElement.value); - changeProtocolSettings(protocolElement.value); + changeFrontendsSettings(); + changeProtocolSettings(); }) const libredditForm = libredditDivElement.getElementsByTagName('form')[0]; @@ -26,50 +24,49 @@ 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(protocol) { +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 == 'normal') { + if (protocol.value == 'normal') { normalLibredditDiv.style.display = 'block'; normalTedditDiv.style.display = 'block'; torTedditDiv.style.display = 'none'; torLibredditDiv.style.display = 'none'; } - else if (protocol == 'tor') { + else if (protocol.value == 'tor') { normalLibredditDiv.style.display = 'none'; normalTedditDiv.style.display = 'none'; torTedditDiv.style.display = 'block'; torLibredditDiv.style.display = 'block'; } } -function changeFrontendsSettings(frontend) { - let frontendElement = document.getElementById("frontend"); - if (frontend == 'libreddit') { - frontendElement.innerHTML = 'Frontend'; +function changeFrontendsSettings() { + if (frontend.value == 'libreddit') { libredditDivElement.style.display = 'block'; tedditDivElement.style.display = 'none'; } - else if (frontend == 'teddit') { - frontendElement.innerHTML = 'Frontend'; + else if (frontend.value == 'teddit') { libredditDivElement.style.display = 'none'; tedditDivElement.style.display = 'block'; } - else if (frontend == 'old') { - frontendElement.innerHTML = `Frontend: This isn't a fully private frontend`; - libredditDivElement.style.display = 'none'; - tedditDivElement.style.display = 'none'; - } } browser.storage.local.get( [ "disableReddit", - "bypassWatchOnReddit", "redditProtocol", "redditFrontend", @@ -77,11 +74,10 @@ browser.storage.local.get( ], r => { disableRedditElement.checked = !r.disableReddit - bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit - protocolElement.value = r.redditProtocol - redditFrontendElement.value = r.redditFrontend - changeFrontendsSettings(r.redditFrontend); - changeProtocolSettings(r.redditProtocol); + protocol.value = r.redditProtocol + frontend.value = r.redditFrontend + changeFrontendsSettings(); + changeProtocolSettings(); } ) diff --git a/src/pages/options/reddit/reddit.pug b/src/pages/options/reddit/reddit.pug index 7262a7f4..ba23df83 100644 --- a/src/pages/options/reddit/reddit.pug +++ b/src/pages/options/reddit/reddit.pug @@ -24,24 +24,8 @@ body.option(dir="auto") option(value="normal" data-localise="__MSG_normal__") Normal option(value="tor" data-localise="__MSG_tor__") Tor - .some-block.option-block - h4(data-localise="__MSG_bypassReddit__") Bypass "Open in Reddit" - input#bypass-watch-on-reddit(type="checkbox") - #libreddit hr - .some-block.option-block - h4 Unify cookies across selected instances - form - .some-block.option-block - input(type="url" placeholder="https://libreddit.com") - button.add(type="submit") - 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") - rect(fill="none" height="24" width="24") - path(d="M18,2H9C7.9,2,7,2.9,7,4v12c0,1.1,0.9,2,2,2h9c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2z M18,16H9V4h9V16z M3,15v-2h2v2H3z M3,9.5h2v2H3V9.5z M10,20h2v2h-2V20z M3,18.5v-2h2v2H3z M5,22c-1.1,0-2-0.9-2-2h2V22z M8.5,22h-2v-2h2V22z M13.5,22L13.5,22l0-2h2 v0C15.5,21.1,14.6,22,13.5,22z M5,6L5,6l0,2H3v0C3,6.9,3.9,6,5,6z") - - hr - .normal include ../../widgets/instances.pug +instances('https://libreddit.com') diff --git a/src/pages/options/search/search.html b/src/pages/options/search/search.html index 45fed601..46914d19 100644 --- a/src/pages/options/search/search.html +++ b/src/pages/options/search/search.html @@ -12,9 +12,9 @@
@@ -154,361 +154,7 @@
-
-

Enable Custom Settings (will use cookies)

- -

-
-
-

General

-
-
-

Default categories

-
-
-
-
- General -
- -
-
-
- Images -
- -
-
-
- Videos -
- -
-
-
- News -
- -
-
-
- Maps -
- -
-
-
- Music -
- -
-
-
- It -
- -
-
-
- Science -
- -
-
-
- Files -
- -
-
-
- Social Media -
- -
-
-
-

Search language

- -
-
-

Autocomplete

- -
-
-

SafeSearch

- -
-
-

Hostname replace

- -
-
-

Open Access DOI rewrite

- -
-
-

Open Access DOI resolver

- -
-
-

Engine tokens

- -
-
-
-

User Interface

-
-
-

Interface language

- -
-
-

Theme

- -
-
-

Theme style

- -
-
-

Results on new tabs

- -
-
-

Infinite scroll

- -
-
-

Search on category select

- -
-
-

Vim-like hotkeys

- -
-
-
-

Privacy

-
-
-

HTTP Method

- -
-
-

Image proxy

- -
-
-

Query in the page's title

- -
-
-

Tracker URL remover

- -
-
-

Default Instances

diff --git a/src/pages/options/search/search.js b/src/pages/options/search/search.js index 0cbb79f7..47f27c0a 100644 --- a/src/pages/options/search/search.js +++ b/src/pages/options/search/search.js @@ -2,116 +2,70 @@ import searchHelper from "../../../assets/javascripts/helpers/search.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; let searxDiv = document.getElementById("searx"); - let searxngDiv = document.getElementById("searxng"); -let searxngCustomSettings = document.getElementById("enable-searxng-custom-settings"); - -let searxngCustomSettingsDiv = searxngDiv.getElementsByClassName('custom-settings')[0] - let whoogleDiv = document.getElementById("whoogle"); -let disableSearchElement = document.getElementById("disable-search"); -let searchFrontendElement = document.getElementById("search-frontend"); -let protocolElement = document.getElementById("protocol") - -let customSettingsDivElement = document.getElementsByClassName("custom-settings"); - -let checkboxes_xpath = document.evaluate( - "//div[@id='searxng']//input[@type='checkbox']", - document, null, XPathResult.ANY_TYPE, null, -); -const inputChecked = []; -let checkbox = checkboxes_xpath.iterateNext(); -while (checkbox) { - inputChecked.push(checkbox); - checkbox = checkboxes_xpath.iterateNext(); -} - -let textInputs_xpath = document.evaluate( - "//div[@id='searxng']//input[@type='text']", - document, null, XPathResult.ANY_TYPE, null, -); -const inputValues = []; -let textInput = textInputs_xpath.iterateNext(); -while (textInput) { - inputValues.push(textInput); - textInput = textInputs_xpath.iterateNext(); -} -inputValues.push(...searxngCustomSettingsDiv.getElementsByTagName('select')); +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", - "searxngCustomSettings" ], r => { - disableSearchElement.checked = !r.disableSearch; - - searchFrontendElement.value = r.searchFrontend; - changeFrontendsSettings(r.searchFrontend); - - protocolElement.value = r.searchProtocol; - changeProtocolSettings(r.searchProtocol); + disable.checked = !r.disableSearch; + frontend.value = r.searchFrontend; + protocol.value = r.searchProtocol; - - searxngCustomSettings.checked = r.searxngCustomSettings - changeCustomSettings() + changeFrontendsSettings(); + changeProtocolSettings(); } ); -for (const element of inputChecked) { - let k = `searxng_${element.className}` - browser.storage.local.get(k, r => element.checked = r[k]) -} -for (const element of inputValues) { - let k = `searxng_${element.className}` - browser.storage.local.get(k, r => element.value = r[k]) -} - -searxngCustomSettingsDiv.addEventListener("change", async () => { - for (const element of inputChecked) - browser.storage.local.set({ [`searxng_${element.className}`]: element.checked }) - - for (const element of inputValues) - browser.storage.local.set({ [`searxng_${element.className}`]: element.value }); -}) - document.addEventListener("change", async () => { await browser.storage.local.set({ - disableSearch: !disableSearchElement.checked, - searchFrontend: searchFrontendElement.value, - searchProtocol: protocolElement.value, - searxngCustomSettings: searxngCustomSettings.checked, + disableSearch: !disable.checked, + searchFrontend: frontend.value, + searchProtocol: protocol.value, }); - changeFrontendsSettings(searchFrontendElement.value); - changeProtocolSettings(protocolElement.value); - changeCustomSettings(); + changeFrontendsSettings(frontend.value); + changeProtocolSettings(protocol.value); }) -function changeCustomSettings() { - if (searxngCustomSettings.checked) - for (const item of customSettingsDivElement) item.style.display = 'block'; - else - for (const item of customSettingsDivElement) item.style.display = 'none'; -} - -function changeFrontendsSettings(frontend) { +function changeFrontendsSettings() { let SearxWhoogleElement = document.getElementById("searx-whoogle"); - if (frontend == 'searx') { + if (frontend.value == 'searx') { searxDiv.style.display = 'block'; searxngDiv.style.display = 'none'; whoogleDiv.style.display = 'none'; SearxWhoogleElement.style.display = 'block'; } - else if (frontend == 'searxng') { + else if (frontend.value == 'searxng') { searxDiv.style.display = 'none'; searxngDiv.style.display = 'block'; whoogleDiv.style.display = 'none'; SearxWhoogleElement.style.display = 'block'; } - else if (frontend == 'whoogle') { + else if (frontend.value == 'whoogle') { searxDiv.style.display = 'none'; searxngDiv.style.display = 'none'; whoogleDiv.style.display = 'block'; @@ -119,7 +73,7 @@ function changeFrontendsSettings(frontend) { } } -function changeProtocolSettings(protocol) { +function changeProtocolSettings() { let normalsearxDiv = searxDiv.getElementsByClassName("normal")[0]; let torsearxDiv = searxDiv.getElementsByClassName("tor")[0]; let i2psearxDiv = searxDiv.getElementsByClassName("i2p")[0]; @@ -132,35 +86,41 @@ function changeProtocolSettings(protocol) { let torwhoogleDiv = whoogleDiv.getElementsByClassName("tor")[0]; let i2pwhoogleDiv = whoogleDiv.getElementsByClassName("i2p")[0]; - if (protocol == 'normal') { + 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 == 'tor') { + 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 == 'i2p') { + 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'; @@ -232,9 +192,4 @@ latencyWhoogleElement.addEventListener("click", latencyWhoogleElement.removeEventListener("click", reloadWindow); }); } -); - -window.onblur = () => { - searchHelper.initSearxCookies(); - searchHelper.initSearxngCookies(); -} \ No newline at end of file +); \ No newline at end of file diff --git a/src/pages/options/search/search.pug b/src/pages/options/search/search.pug index 78825611..3bdc6d7e 100644 --- a/src/pages/options/search/search.pug +++ b/src/pages/options/search/search.pug @@ -46,340 +46,7 @@ body.option(dir="auto") +instances('https://searx.i2p') #searxng - .some-block.option-block - h4(data-localise="__MSG_enableCustomSettings__") Enable Custom Settings (will use cookies) - input#enable-searxng-custom-settings(type="checkbox") hr - .custom-settings - .some-block.option-block - h2 General - - .some-block.option-block - h4(data-localise="") Default categories - - .checklist-popup - div - div - svg(viewBox="0 0 512 512" aria-hidden="true") - path(d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32") - path(fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M338.29 338.29L448 448") - |General - input.category_general(type="checkbox") - - div - div - svg(viewBox="0 0 512 512" aria-hidden="true") - rect(x="48" y="80" width="416" height="352" rx="48" ry="48" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32") - circle(cx="336" cy="176" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32") - path(d="M304 335.79l-90.66-90.49a32 32 0 00-43.87-1.3L48 352M224 432l123.34-123.34a32 32 0 0143.11-2L464 368" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") - |Images - - input.category_images(type="checkbox") - - div - div - svg(viewBox="0 0 512 512" aria-hidden="true") - path(d="M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32") - |Videos - input.category_videos(type="checkbox") - - div - div - svg(viewBox="0 0 512 512" aria-hidden="true") - path(d="M368 415.86V72a24.07 24.07 0 00-24-24H72a24.07 24.07 0 00-24 24v352a40.12 40.12 0 0040 40h328" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32") - path(d="M416 464h0a48 48 0 01-48-48V128h72a24 24 0 0124 24v264a48 48 0 01-48 48z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32") - path(fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M240 128h64M240 192h64M112 256h192M112 320h192M112 384h192") - path(d="M176 208h-64a16 16 0 01-16-16v-64a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16z") - |News - input.category_news(type="checkbox") - - div - div - svg(viewBox="0 0 512 512" aria-hidden="true") - path(d="M256 48c-79.5 0-144 61.39-144 137 0 87 96 224.87 131.25 272.49a15.77 15.77 0 0025.5 0C304 409.89 400 272.07 400 185c0-75.61-64.5-137-144-137z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") - circle(cx="256" cy="192" r="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") - |Maps - input.category_map(type="checkbox") - - div - div - svg(viewBox="0 0 512 512" aria-hidden="true") - path(d="M192 218v-6c0-14.84 10-27 24.24-30.59l174.59-46.68A20 20 0 01416 154v22" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") - path(d="M416 295.94v80c0 13.91-8.93 25.59-22 30l-22 8c-25.9 8.72-52-10.42-52-38h0a33.37 33.37 0 0123-32l51-18.15c13.07-4.4 22-15.94 22-29.85V58a10 10 0 00-12.6-9.61L204 102a16.48 16.48 0 00-12 16v226c0 13.91-8.93 25.6-22 30l-52 18c-13.88 4.68-22 17.22-22 32h0c0 27.58 26.52 46.55 52 38l22-8c13.07-4.4 22-16.08 22-30v-80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") - |Music - input.category_music(type="checkbox") - - div - div - svg(class="ion-icon-big" viewBox="0 0 512 512" aria-hidden="true") - path(d="M434.8 137.65l-149.36-68.1c-16.19-7.4-42.69-7.4-58.88 0L77.3 137.65c-17.6 8-17.6 21.09 0 29.09l148 67.5c16.89 7.7 44.69 7.7 61.58 0l148-67.5c17.52-8 17.52-21.1-.08-29.09zM160 308.52l-82.7 37.11c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.89 7.69 44.69 7.69 61.58 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-79.94-38.47" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") - path(d="M160 204.48l-82.8 37.16c-17.6 8-17.6 21.1 0 29.1l148 67.49c16.89 7.7 44.69 7.7 61.58 0l148-67.49c17.7-8 17.7-21.1.1-29.1L352 204.48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") - |It - input.category_it(type="checkbox") - - div - div - svg(class="ion-icon-big" viewBox="0 0 512 512" aria-hidden="true") - path(fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M32 192L256 64l224 128-224 128L32 192z") - path(fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M112 240v128l144 80 144-80V240M480 368V192M256 320v128") - |Science - input.category_science(type="checkbox") - - div - div - svg(viewBox="0 0 512 512" aria-hidden="true") - path(d="M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32") - path(fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M48 272h144M320 272h144M192 272a64 64 0 00128 0M144 144h224M128 208h256") - |Files - input.category_files(type="checkbox") - - div - div - svg(viewBox="0 0 512 512" aria-hidden="true") - path(d="M402 168c-2.93 40.67-33.1 72-66 72s-63.12-31.32-66-72c-3-42.31 26.37-72 66-72s69 30.46 66 72z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") - path(d="M336 304c-65.17 0-127.84 32.37-143.54 95.41-2.08 8.34 3.15 16.59 11.72 16.59h263.65c8.57 0 13.77-8.25 11.72-16.59C463.85 335.36 401.18 304 336 304z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32") - path(d="M200 185.94c-2.34 32.48-26.72 58.06-53 58.06s-50.7-25.57-53-58.06C91.61 152.15 115.34 128 147 128s55.39 24.77 53 57.94z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") - path(d="M206 306c-18.05-8.27-37.93-11.45-59-11.45-52 0-102.1 25.85-114.65 76.2-1.65 6.66 2.53 13.25 9.37 13.25H154" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32") - |Social Media - input.category_social_media(type="checkbox") - - .some-block.option-block - h4(data-localise="") Search language - select.language - option(value="all") Default language - option(value="af-ZA") 🇿🇦 Afrikaans (Suid-Afrika) - option(value="ca-ES") 🇪🇸 Català (Espanya) - option(value="da-DK") 🇩🇰 Dansk (Danmark) - option(value="de") 🌐 Deutsch - option(value="de-AT") 🇦🇹 Deutsch (Österreich) - option(value="de-CH") 🇨🇭 Deutsch (Schweiz) - option(value="de-DE") 🇩🇪 Deutsch (Deutschland) - option(value="et-EE") 🇪🇪 Eesti (Eesti) - option(value="en") 🌐 English - option(value="en-AU") 🇦🇺 English (Australia) - option(value="en-CA") 🇨🇦 English (Canada) - option(value="en-GB") 🇬🇧 English (United Kingdom) - option(value="en-IE") 🇮🇪 English (Ireland) - option(value="en-MY") 🇲🇾 English (Malaysia) - option(value="en-NZ") 🇳🇿 English (New Zealand) - option(value="en-US") 🇺🇸 English (United States) - option(value="es") 🌐 Español - option(value="es-AR") 🇦🇷 Español (Argentina) - option(value="es-CL") 🇨🇱 Español (Chile) - option(value="es-ES") 🇪🇸 Español (España) - option(value="es-MX") 🇲🇽 Español (México) - option(value="fil-PH") 🇵🇭 Filipino (Pilipinas) - option(value="fr") 🌐 Français - option(value="fr-BE") 🇧🇪 Français (Belgique) - option(value="fr-CA") 🇨🇦 Français (Canada) - option(value="fr-CH") 🇨🇭 Français (Suisse) - option(value="fr-FR") 🇫🇷 Français (France) - option(value="hr-HR") 🇭🇷 Hrvatski (Hrvatska) - option(value="id-ID") 🇮🇩 Indonesia (Indonesia) - option(value="it-IT") 🇮🇹 Italiano (Italia) - option(value="sw-TZ") 🇹🇿 Kiswahili (Tanzania) - option(value="lv-LV") 🇱🇻 Latviešu (Latvija) - option(value="lt-LT") 🇱🇹 Lietuvių (Lietuva) - option(value="hu-HU") 🇭🇺 Magyar (Magyarország) - option(value="nl") 🌐 Nederlands - option(value="nl-BE") 🇧🇪 Nederlands (België) - option(value="nl-NL") 🇳🇱 Nederlands (Nederland) - option(value="no-NO") 🇳🇴 Norsk - option(value="pl-PL") 🇵🇱 Polski (Polska) - option(value="pt") 🌐 Português - option(value="pt-BR") 🇧🇷 Português (Brasil) - option(value="pt-PT") 🇵🇹 Português (Portugal) - option(value="ro-RO") 🇷🇴 Română (România) - option(value="sk-SK") 🇸🇰 Slovenčina (Slovensko) - option(value="sl-SI") 🇸🇮 Slovenščina (Slovenija) - option(value="fi-FI") 🇫🇮 Suomi (Suomi) - option(value="sv-SE") 🇸🇪 Svenska (Sverige) - option(value="vi-VN") 🇻🇳 Tiếng Việt (Việt Nam) - option(value="tr-TR") 🇹🇷 Türkçe (Türkiye) - option(value="is-IS") 🇮🇸 Íslenska (Ísland) - option(value="cs-CZ") 🇨🇿 Čeština (Česko) - option(value="el-GR") 🇬🇷 Ελληνικά (Ελλάδα) - option(value="be-BY") 🇧🇾 Беларуская (Беларусь) - option(value="bg-BG") 🇧🇬 Български (България) - option(value="ru-RU") 🇷🇺 Русский (Россия) - option(value="sr-RS") 🇷🇸 Српски (Србија) - option(value="uk-UA") 🇺🇦 Українська (Україна) - option(value="he-IL") 🇮🇱 עברית (ישראל) - option(value="ar-EG") 🇪🇬 العربية (مصر) - option(value="fa-IR") 🇮🇷 فارسی (ایران) - option(value="hi-IN") 🇮🇳 हिन्दी (भारत) - option(value="th-TH") 🇹🇭 ไทย (ไทย) - option(value="zh") 🌐 中文 - option(value="zh-CN") 🇨🇳 中文 (中国) - option(value="zh-HK") 🇭🇰 中文 (中國香港) - option(value="zh-TW") 🇹🇼 中文 (台灣) - option(value="ja-JP") 🇯🇵 日本語 (日本) - option(value="ko-KR") 🇰🇷 한국어 (대한민국) - - .some-block.option-block - h4(data-localise="") Autocomplete - select.autocomplete - option(value="") - - option(value="dbpedia") dbpedia - option(value="duckduckgo") duckduckgo - option(value="google") google - option(value="seznam") seznam - option(value="startpage") startpage - option(value="swisscows") swisscows - option(value="qwant") qwant - option(value="wikipedia") wikipedia - option(value="brave") brave - - .some-block.option-block - h4(data-localise="") SafeSearch - select.safesearch - option(value="2") Strict - option(value="1") Moderate - option(value="0") None - - .some-block.option-block - h4(data-localise="") Hostname replace - input.hostname_replace(type="checkbox") - - .some-block.option-block - h4(data-localise="") Open Access DOI rewrite - input.oa_doi_rewrite(type="checkbox") - - .some-block.option-block - h4(data-localise="") Open Access DOI resolver - select.doi_resolver - option(value="oadoi.org") oadoi.org - https://oadoi.org/ - option(value="doi.org") doi.org - https://doi.org/ - option(value="doai.io") doai.io - https://dissem.in/ - option(value="sci-hub.se") sci-hub.se - https://sci-hub.se/ - option(value="sci-hub.do") sci-hub.do - https://sci-hub.do/ - option(value="scihubtw.tw") scihubtw.tw - https://scihubtw.tw/ - option(value="sci-hub.st") sci-hub.st - https://sci-hub.st/ - option(value="sci-hub.bar") sci-hub.bar - https://sci-hub.bar/ - option(value="sci-hub.it.nf") sci-hub.it.nf - https://sci-hub.it.nf/ - - .some-block.option-block - h4(data-localise="") Engine tokens - input.tokens(type="text") - - hr - - .some-block.option-block - h2 User Interface - - .some-block.option-block - h4(data-localise="") Interface language - select.locale - option(value="ar") العربية (Arabic) - option(value="bg") Български (Bulgarian) - option(value="bo") བོད་སྐད་ (Tibetan) - option(value="ca") Català (Catalan) - option(value="cs") Čeština (Czech) - option(value="cy") Cymraeg (Welsh) - option(value="da") Dansk (Danish) - option(value="de") Deutsch (German) - option(value="el-GR") Ελληνικά, Ελλάδα (Greek, Greece) - option(value="en" selected="selected") English - option(value="eo") Esperanto - option(value="es") Español (Spanish) - option(value="et") Eesti (Estonian) - option(value="eu") Euskara (Basque) - option(value="fa-IR") فارسی, ایران (Persian, Iran) - option(value="fi") Suomi (Finnish) - option(value="fil") Filipino - option(value="fr") Français (French) - option(value="gl") Galego (Galician) - option(value="he") עברית (Hebrew) - option(value="hr") Hrvatski (Croatian) - option(value="hu") Magyar (Hungarian) - option(value="ia") Interlingua - option(value="id") Indonesia (Indonesian) - option(value="it") Italiano (Italian) - option(value="ja") 日本語 (Japanese) - option(value="ko") 한국어 (Korean) - option(value="lt") Lietuvių (Lithuanian) - option(value="nb-NO") Norsk bokmål, Norge (Norwegian bokmål, Norway) - option(value="nl") Nederlands (Dutch) - option(value="nl-BE") Vlaams (Dutch, Belgium) - option(value="oc") Occitan - option(value="pl") Polski (Polish) - option(value="pt") Português (Portuguese) - option(value="pt-BR") Português, Brasil (Portuguese, Brazil) - option(value="ro") Română (Romanian) - option(value="ru") Русский (Russian) - option(value="sk") Slovenčina (Slovak) - option(value="sl") Slovenščina (Slovenian) - option(value="sr") Српски (Serbian) - option(value="sv") Svenska (Swedish) - option(value="ta") தமிழ் (Tamil) - option(value="te") తెలుగు (Telugu) - option(value="tr") Türkçe (Turkish) - option(value="uk") Українська (Ukrainian) - option(value="vi") Tiếng việt (Vietnamese) - option(value="zh-Hans-CN") 中文, 中国 (Chinese, China) - option(value="zh-Hant-TW") 中文, 台灣 (Chinese, Taiwan) - - .some-block.option-block - h4(data-localise="") Theme - select.theme - option(value="simple") simple - - .some-block.option-block - h4(data-localise="") Theme style - select.simple_style - option(value="auto") auto - option(value="light") light - option(value="dark") dark - - .some-block.option-block - h4(data-localise="") Results on new tabs - select.results_on_new_tab - option(value="1") On - option(value="0") Off - - .some-block.option-block - h4(data-localise="") Infinite scroll - select.infinite_scroll - option(value="1") On - option(value="0") Off - - .some-block.option-block - h4(data-localise="") Search on category select - input.search_on_category_select(type="checkbox") - - .some-block.option-block - h4(data-localise="") Vim-like hotkeys - input.vim_hotkeys(type="checkbox") - - hr - - .some-block.option-block - h2 Privacy - - .some-block.option-block - h4(data-localise="") HTTP Method - select.method - option(value="POST") POST - option(value="GET") GET - - .some-block.option-block - h4(data-localise="") Image proxy - select.image_proxy - option(value="1") Enabled - option(value="0") Disabled - - .some-block.option-block - h4(data-localise="") Query in the page's title - select.query_in_title - option(value="1") Enabled - option(value="") Disabled - - .some-block.option-block - h4(data-localise="") Tracker URL remover - input.tracker_url_remover(type="checkbox") - - hr - .normal include ../../widgets/instances.pug +instances('https://searxng.com') diff --git a/src/pages/options/sendTargets/sendTargets.html b/src/pages/options/sendTargets/sendTargets.html index 873a35ef..7a684175 100644 --- a/src/pages/options/sendTargets/sendTargets.html +++ b/src/pages/options/sendTargets/sendTargets.html @@ -12,9 +12,9 @@
diff --git a/src/pages/options/sendTargets/sendTargets.js b/src/pages/options/sendTargets/sendTargets.js index 236d6799..057ae864 100644 --- a/src/pages/options/sendTargets/sendTargets.js +++ b/src/pages/options/sendTargets/sendTargets.js @@ -1,8 +1,8 @@ import sendTargetsHelper from "../../../assets/javascripts/helpers/sendTargets.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; -let disableSendTargetsElement = document.getElementById("disable-sendTargets"); -let protocolElement = document.getElementById("protocol") +let disable = document.getElementById("disable-sendTargets"); +let protocol = document.getElementById("protocol") browser.storage.local.get( [ @@ -10,29 +10,28 @@ browser.storage.local.get( "sendTargetsProtocol", ], r => { - disableSendTargetsElement.checked = !r.disableSendTarget; - - protocolElement.value = r.sendTargetsProtocol; - changeProtocolSettings(r.sendTargetsProtocol); + disable.checked = !r.disableSendTarget; + protocol.value = r.sendTargetsProtocol; + changeProtocolSettings(); } ) document.addEventListener("change", async () => { await browser.storage.local.set({ - disableSendTarget: !disableSendTargetsElement.checked, - sendTargetsProtocol: protocolElement.value, + disableSendTarget: !disable.checked, + sendTargetsProtocol: protocol.value, }) - changeProtocolSettings(protocolElement.value); + changeProtocolSettings(); }) -function changeProtocolSettings(protocol) { +function changeProtocolSettings() { let normalDiv = document.getElementsByClassName("normal")[0]; let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol == 'normal') { + if (protocol.value == 'normal') { normalDiv.style.display = 'block'; torDiv.style.display = 'none'; } - else if (protocol == 'tor') { + else if (protocol.value == 'tor') { normalDiv.style.display = 'none'; torDiv.style.display = 'block'; } diff --git a/src/pages/options/tiktok/tiktok.html b/src/pages/options/tiktok/tiktok.html index 5f969d82..9b5932fc 100644 --- a/src/pages/options/tiktok/tiktok.html +++ b/src/pages/options/tiktok/tiktok.html @@ -12,9 +12,9 @@
@@ -66,34 +66,8 @@
-
-

Enable Custom Settings (will use cookies)

- -

-
-
-

General

-
-
-

Theme

- -
-
-

Api

-
-
-

Legacy mode

- -
-

Default Instances

diff --git a/src/pages/options/tiktok/tiktok.js b/src/pages/options/tiktok/tiktok.js index 56cf93dc..8055fc95 100644 --- a/src/pages/options/tiktok/tiktok.js +++ b/src/pages/options/tiktok/tiktok.js @@ -4,24 +4,12 @@ import commonHelper from "../../../assets/javascripts/helpers/common.js"; let disable = document.getElementById("disable-tiktok"); let protocol = document.getElementById("protocol") -let enableCustomSettings = document.getElementById("enable-custom-settings"); -let customSettingsDiv = document.getElementsByClassName("custom-settings"); - -let theme = document.getElementById('proxiTok').getElementsByClassName('theme')[0]; -let api_legacy = document.getElementById('proxiTok').getElementsByClassName('api-legacy')[0]; - -document.addEventListener("change", async () => { - await browser.storage.local.set({ +document.addEventListener("change", () => { + browser.storage.local.set({ disableTiktok: !disable.checked, tiktokProtocol: protocol.value, - - enableTiktokCustomSettings: enableCustomSettings.checked, - - proxiTokTheme: theme.value, - proxiTokApiLegacy: api_legacy.value, - }); - changeProtocolSettings(protocol.value); + changeProtocolSettings(); }) window.onblur = tiktokHelper.initProxiTokCookies; @@ -30,16 +18,11 @@ browser.storage.local.get( [ "disableTiktok", "tiktokProtocol", - - "enableTiktokCustomSettings", - - "proxiTokTheme", - "proxiTokApiLegacy", ], r => { disable.checked = !r.disableTiktok; protocol.value = r.tiktokProtocol; - changeProtocolSettings(r.tiktokProtocol); + changeProtocolSettings(); let normalDiv = document.getElementsByClassName("normal")[0]; let torDiv = document.getElementsByClassName("tor")[0]; if (r.tiktokProtocol == 'normal') { @@ -50,33 +33,20 @@ browser.storage.local.get( normalDiv.style.display = 'none'; torDiv.style.display = 'block'; } - - enableCustomSettings.checked = r.enableTiktokCustomSettings; - if (r.enableTiktokCustomSettings) - customSettingsDiv.style.display = 'block'; - else - customSettingsDiv.style.display = 'none'; - - theme.value = r.proxiTokTheme; - api_legacy.value = r.proxiTokApiLegacy; } ) -function changeProtocolSettings(protocol) { +function changeProtocolSettings() { let normalDiv = document.getElementsByClassName("normal")[0]; let torDiv = document.getElementsByClassName("tor")[0]; - if (protocol == 'normal') { + if (protocol.value == 'normal') { normalDiv.style.display = 'block'; torDiv.style.display = 'none'; } - else if (protocol == 'tor') { + else if (protocol.value == 'tor') { normalDiv.style.display = 'none'; torDiv.style.display = 'block'; } - if (enableCustomSettings.checked) - for (const item of customSettingsDiv) item.style.display = 'block'; - else - for (const item of customSettingsDiv) item.style.display = 'none'; } commonHelper.processDefaultCustomInstances('tiktok', 'proxiTok', 'normal', document); diff --git a/src/pages/options/tiktok/tiktok.pug b/src/pages/options/tiktok/tiktok.pug index 31ae18df..528f6ae2 100644 --- a/src/pages/options/tiktok/tiktok.pug +++ b/src/pages/options/tiktok/tiktok.pug @@ -17,30 +17,9 @@ body.option(dir="auto") 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_enableCustomSettings__") Enable Custom Settings (will use cookies) - input#enable-custom-settings(type="checkbox") #proxiTok hr - .custom-settings - .some-block.option-block - h2 General - .some-block.option-block - h4(data-localise="__MSG_theme__") Theme - select.theme - option(value="default") Default - option(value="card") Card - - .some-block.option-block - h2 Api - .some-block.option-block - h4(data-localise="__MSG_legacyMode__") Legacy mode - select.api-legacy - option(value="on") On - option(value="off") Off - .normal include ../../widgets/instances.pug +instances('https://proxitok.com') diff --git a/src/pages/options/translate/translate.html b/src/pages/options/translate/translate.html index 1d4db028..249ce0b1 100644 --- a/src/pages/options/translate/translate.html +++ b/src/pages/options/translate/translate.html @@ -12,9 +12,9 @@
@@ -75,243 +75,6 @@

-
-

From

- -
-
-

To

- -
-
-

Engine

- -

Default Instances

@@ -362,7 +125,7 @@
-
+

Default Instances

diff --git a/src/pages/options/translate/translate.js b/src/pages/options/translate/translate.js index 3338f8ce..55a2d74f 100644 --- a/src/pages/options/translate/translate.js +++ b/src/pages/options/translate/translate.js @@ -1,51 +1,38 @@ import translateHelper from "../../../assets/javascripts/helpers/translate/translate.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; -let disableElement = document.getElementById("disable-simplyTranslate"); -let simplyTranslateDivElement = document.getElementById("simplyTranslate"); -let lingvaDivElement = document.getElementById("lingva"); -let translateFrontendElement = document.getElementById("translate-frontend"); -let protocolElement = document.getElementById("protocol"); +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(frontend) { - if (frontend == 'simplyTranslate') { - simplyTranslateDivElement.style.display = 'block'; - lingvaDivElement.style.display = 'none'; + +function changeFrontendsSettings() { + if (frontend.value == 'simplyTranslate') { + simplyTranslateDiv.style.display = 'block'; + lingvaDiv.style.display = 'none'; } - else if (frontend == 'lingva') { - simplyTranslateDivElement.style.display = 'none'; - lingvaDivElement.style.display = 'block'; + else if (frontend.value == 'lingva') { + simplyTranslateDiv.style.display = 'none'; + lingvaDiv.style.display = 'block'; } } -document.addEventListener("change", async () => { - await browser.storage.local.set({ - translateDisable: !disableElement.checked, - translateFrontend: translateFrontendElement.value, - translateProtocol: protocolElement.value, - translateFrom: fromElement.value, - translateTo: toElement.value, - simplyTranslateEngine: simplyTranslateEngineElement.value, - }) - changeProtocolSettings(protocolElement.value); - changeFrontendsSettings(translateFrontendElement.value); -}) - - -function changeProtocolSettings(protocol) { +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 == 'normal') { + if (protocol.value == 'normal') { normalSimplyTranslateDiv.style.display = 'block'; normalLingvaDiv.style.display = 'block'; torLingvaDiv.style.display = 'none'; torSimplyTranslateDiv.style.display = 'none'; } - else if (protocol == 'tor') { + else if (protocol.value == 'tor') { normalSimplyTranslateDiv.style.display = 'none'; normalLingvaDiv.style.display = 'none'; torLingvaDiv.style.display = 'block'; @@ -53,35 +40,32 @@ function changeProtocolSettings(protocol) { } } -let fromElement = document.getElementsByClassName("from")[0]; -let toElement = document.getElementsByClassName("to")[0]; -let simplyTranslateElement = document.getElementById("simplyTranslate") -let simplyTranslateEngineElement = simplyTranslateElement.getElementsByClassName("engine")[0]; - browser.storage.local.get( [ "translateDisable", "translateFrontend", "translateProtocol", - "translateFrom", - "translateTo", - "simplyTranslateEngine", ], r => { - disableElement.checked = !r.translateDisable; - - translateFrontendElement.value = r.translateFrontend; - changeFrontendsSettings(r.translateFrontend); - - protocolElement.value = r.translateProtocol; - changeProtocolSettings(r.translateProtocol); - - fromElement.value = r.translateFrom; - toElement.value = r.translateTo; - simplyTranslateEngineElement.value = r.simplyTranslateEngine; + 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(); +}) + + commonHelper.processDefaultCustomInstances('translate', 'simplyTranslate', 'normal', document) commonHelper.processDefaultCustomInstances('translate', 'simplyTranslate', 'tor', document); commonHelper.processDefaultCustomInstances('translate', 'lingva', 'normal', document); diff --git a/src/pages/options/translate/translate.pug b/src/pages/options/translate/translate.pug index f6a192c4..42afcdf1 100644 --- a/src/pages/options/translate/translate.pug +++ b/src/pages/options/translate/translate.pug @@ -25,28 +25,7 @@ body.option(dir="auto") option(value="tor" data-localise="__MSG_tor__") Tor hr - #simplyTranslate - .some-block.option-block - h4(data-localise="__MSG_from__") From - select.from - option(value="auto") Auto - include ../../widgets/from-to.pug - - .some-block.option-block - h4(data-localise="__MSG_to__") To - select.to - include ../../widgets/from-to.pug - - .some-block.option-block - h4(data-localise="__MSG_engine__") Engine - select.engine - option(value="google") Google - option(value="libre") Libre - option(value="deepl") Deepl - option(value="iciba") ICIBA - option(value="reverso") Reverso - .normal include ../../widgets/instances.pug +instances('https://simplytranslate.org') @@ -55,9 +34,7 @@ body.option(dir="auto") .tor include ../../widgets/instances.pug +instances('http://hxecvvetgrznmprg.onion') - - #lingva - + #lingva .normal include ../../widgets/instances.pug +instances('https://lingvatranslate.com') diff --git a/src/pages/options/twitter/twitter.html b/src/pages/options/twitter/twitter.html index 204e729d..2bd204aa 100644 --- a/src/pages/options/twitter/twitter.html +++ b/src/pages/options/twitter/twitter.html @@ -12,9 +12,9 @@
@@ -64,92 +64,10 @@
-
-

Bypass "Open in Twitter"

- -
-
-

Enable Custom Settings (will use cookies)

- -
-
-
-
-

Display

-
-
-

Theme

- -
-
-

Infinite scrolling (experimental, requires JavaScript)

- -
-
-

Make profile sidebar stick to top

- -
-
-

Support bidirectional text (makes clicking on tweets harder)

- -
-
-

Hide tweet stats (replies, retweets, likes)

- -
-
-

Hide profile banner

- -
-
-

Hide pinned tweets

- -
-
-

Hide tweet replies

- -
-
-

Square profile pictures

- -
-
-
-

Media

-
-
-

Enable mp4 video playback (only for gifs)

- -
-
-

Enable hls video streaming (requires JavaScript)

- -
-
-

Proxy video streaming through the server (might be slow)

- -
-
-

Mute videos by default

- -
-
-

Autoplay gifs

- -
-
+
+

Default Instances

diff --git a/src/pages/options/twitter/twitter.js b/src/pages/options/twitter/twitter.js index 2fcf63c5..c23007f9 100644 --- a/src/pages/options/twitter/twitter.js +++ b/src/pages/options/twitter/twitter.js @@ -1,124 +1,54 @@ import twitterHelper from "../../../assets/javascripts/helpers/twitter.js"; import commonHelper from "../../../assets/javascripts/helpers/common.js"; -let disableTwitterElement = document.getElementById("disable-nitter"); -let customSettingsDivElement = document.getElementsByClassName("custom-settings"); -let protocolElement = document.getElementById("protocol"); -let enableYoutubeCustomSettingsElement = document.getElementById("enable-twitter-custom-settings"); -let bypassWatchOnTwitterElement = document.getElementById("bypass-watch-on-twitter"); +let disable = document.getElementById("disable-nitter"); +let protocol = document.getElementById("protocol"); -let theme = document.getElementById('nitter').getElementsByClassName("theme")[0]; -let infiniteScroll = document.getElementById('nitter').getElementsByClassName("infiniteScroll")[0]; -let stickyProfile = document.getElementById('nitter').getElementsByClassName('stickyProfile')[0]; -let bidiSupport = document.getElementById('nitter').getElementsByClassName('bidiSupport')[0]; -let hideTweetStats = document.getElementById('nitter').getElementsByClassName('hideTweetStats')[0]; -let hideBanner = document.getElementById('nitter').getElementsByClassName('hideBanner')[0]; -let hidePins = document.getElementById('nitter').getElementsByClassName('hidePins')[0]; -let hideReplies = document.getElementById('nitter').getElementsByClassName('hideReplies')[0]; -let squareAvatars = document.getElementById('nitter').getElementsByClassName('squareAvatars')[0]; -let mp4Playback = document.getElementById('nitter').getElementsByClassName('mp4Playback')[0]; -let hlsPlayback = document.getElementById('nitter').getElementsByClassName('hlsPlayback')[0]; -let proxyVideos = document.getElementById('nitter').getElementsByClassName('proxyVideos')[0]; -let muteVideos = document.getElementById('nitter').getElementsByClassName('muteVideos')[0]; -let autoplayGifs = document.getElementById('nitter').getElementsByClassName('autoplayGifs')[0]; -let nitterElement = document.getElementById("nitter"); +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", - "enableTwitterCustomSettings", - "bypassWatchOnTwitter", - "nitterTheme", - "nitterInfiniteScroll", - "nitterStickyProfile", - "nitterBidiSupport", - "nitterHideTweetStats", - "nitterHideBanner", - "nitterHidePins", - "nitterHideReplies", - "nitterSquareAvatars", - "nitterMp4Playback", - "nitterHlsPlayback", - "nitterProxyVideos", - "nitterMuteVideos", - "nitterAutoplayGifs", ], r => { - disableTwitterElement.checked = !r.disableTwitter; - enableYoutubeCustomSettingsElement.checked = r.enableTwitterCustomSettings; - bypassWatchOnTwitterElement.checked = r.bypassWatchOnTwitter; - protocolElement.value = r.twitterProtocol; - changeProtocolSettings(r.twitterProtocol); - - // Display - theme.value = r.nitterTheme; - infiniteScroll.checked = r.nitterInfiniteScroll; - stickyProfile.checked = r.nitterStickyProfile; - bidiSupport.checked = r.nitterBidiSupport; - hideTweetStats.checked = r.nitterHideTweetStats; - hideBanner.checked = r.nitterHideBanner; - hidePins.checked = r.nitterHidePins; - hideReplies.checked = r.nitterHideReplies; - squareAvatars.checked = r.nitterSquareAvatars; - - // Media - mp4Playback.checked = r.nitterMp4Playback; - hlsPlayback.checked = r.nitterHlsPlayback; - proxyVideos.checked = r.nitterProxyVideos; - muteVideos.checked = r.nitterMuteVideos; - autoplayGifs.checked = r.nitterAutoplayGifs; + disable.checked = !r.disableTwitter; + protocol.value = r.twitterProtocol; + changeProtocolSettings(); } ) -document.addEventListener("change", async () => { - await browser.storage.local.set({ - disableTwitter: !disableTwitterElement.checked, - twitterProtocol: protocolElement.value, - enableTwitterCustomSettings: enableYoutubeCustomSettingsElement.checked, - bypassWatchOnTwitter: bypassWatchOnTwitterElement.checked, - - // Display - nitterTheme: theme.value, - nitterInfiniteScroll: infiniteScroll.checked, - nitterStickyProfile: stickyProfile.checked, - nitterBidiSupport: bidiSupport.checked, - nitterHideTweetStats: hideTweetStats.checked, - nitterHideBanner: hideBanner.checked, - nitterHidePins: hidePins.checked, - nitterHideReplies: hideReplies.checked, - nitterSquareAvatars: squareAvatars.checked, - - // Media - nitterMp4Playback: mp4Playback.checked, - nitterHlsPlayback: hlsPlayback.checked, - nitterProxyVideos: proxyVideos.checked, - nitterMuteVideos: muteVideos.checked, - nitterAutoplayGifs: autoplayGifs.checked, +document.addEventListener("change", () => { + browser.storage.local.set({ + disableTwitter: !disable.checked, + twitterProtocol: protocol.value, }); - changeProtocolSettings(protocolElement.value); + changeProtocolSettings(); }) -function changeProtocolSettings(protocol) { - let normalDiv = nitterElement.getElementsByClassName("normal")[0]; - let torDiv = nitterElement.getElementsByClassName("tor")[0]; - if (protocol == 'normal') { +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 == 'tor') { + else if (protocol.value == 'tor') { normalDiv.style.display = 'none'; torDiv.style.display = 'block'; } - if (enableYoutubeCustomSettingsElement.checked) - for (const item of customSettingsDivElement) item.style.display = 'block'; - else - for (const item of customSettingsDivElement) item.style.display = 'none'; } commonHelper.processDefaultCustomInstances('twitter', 'nitter', 'normal', document); commonHelper.processDefaultCustomInstances('twitter', 'nitter', 'tor', document) -window.onblur = twitterHelper.initNitterCookies; let latencyElement = document.getElementById("latency"); let latencyLabel = document.getElementById("latency-label"); diff --git a/src/pages/options/twitter/twitter.pug b/src/pages/options/twitter/twitter.pug index 230aefd1..af7b7f19 100644 --- a/src/pages/options/twitter/twitter.pug +++ b/src/pages/options/twitter/twitter.pug @@ -17,90 +17,9 @@ body.option(dir="auto") 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.option-block - h4(data-localise="__MSG_bypassTwitter__") Bypass "Open in Twitter" - input#bypass-watch-on-twitter(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_enableCustomNitter__") Enable Custom Settings (will use cookies) - input#enable-twitter-custom-settings(type="checkbox") - - #nitter - .custom-settings - .some-block.option-block - h2 Display - - .some-block.option-block - h4(data-localise="__MSG_theme__") Theme - select.theme - option(value="Auto") Auto - option(value="Auto (Twitter)") Auto (Twitter) - option(value="Black") Black - option(value="Mastodon") Mastodon - option(value="Nitter") Nitter - option(value="Pleroma") Pleroma - option(value="Twitter") Twitter - option(value="Twitter Dark") Twitter Dark - - .some-block.option-block - h4(data-localise="__MSG_infiniteScroll__") Infinite scrolling (experimental, requires JavaScript) - input.infiniteScroll(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_stickyProfile__") Make profile sidebar stick to top - input.stickyProfile(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_bidiSupport__") Support bidirectional text (makes clicking on tweets harder) - input.bidiSupport(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_hideTweetStats__") Hide tweet stats (replies, retweets, likes) - input.hideTweetStats(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_hideBanner__") Hide profile banner - input.hideBanner(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_hidePins__") Hide pinned tweets - input.hidePins(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_hideReplies__") Hide tweet replies - input.hideReplies(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_squareAvatars__") Square profile pictures - input.squareAvatars(type="checkbox") - - hr - - .some-block.option-block - h2 Media - - .some-block.option-block - h4(data-localise="__MSG_mp4Playback__") Enable mp4 video playback (only for gifs) - input.mp4Playback(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_hlsPlayback__") Enable hls video streaming (requires JavaScript) - input.hlsPlayback(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_proxyVideos__") Proxy video streaming through the server (might be slow) - input.proxyVideos(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_muteVideos__") Mute videos by default - input.muteVideos(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_autoplayGifs__") Autoplay gifs - input.autoplayGifs(type="checkbox") + #nitter + hr .normal include ../../widgets/instances.pug +instances('https://nitter.com') @@ -112,7 +31,7 @@ body.option(dir="auto") .i2p include ../../widgets/instances.pug +instances('https://nitter.i2p') - + script(type="module" src="../init.js") script(type="module" src="./twitter.js") diff --git a/src/pages/options/wikipedia/wikipedia.html b/src/pages/options/wikipedia/wikipedia.html index e09aef9d..c8475f02 100644 --- a/src/pages/options/wikipedia/wikipedia.html +++ b/src/pages/options/wikipedia/wikipedia.html @@ -12,9 +12,9 @@
diff --git a/src/pages/options/youtube/invidious.js b/src/pages/options/youtube/invidious.js deleted file mode 100644 index fb1ddff7..00000000 --- a/src/pages/options/youtube/invidious.js +++ /dev/null @@ -1,177 +0,0 @@ -import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js"; -import commonHelper from "../../../assets/javascripts/helpers/common.js"; - -let invidious = document.getElementById('invidious'); -let alwaysProxy = invidious.getElementsByClassName("local")[0]; -let playerStyle = invidious.getElementsByClassName("player_style")[0]; -let quality = invidious.getElementsByClassName("quality")[0]; -let videoLoop = invidious.getElementsByClassName("video_loop")[0]; -let continueAutoplay = invidious.getElementsByClassName("continue_autoplay")[0]; -let invidiousContinue = invidious.getElementsByClassName("continue")[0]; -let youtubeListen = invidious.getElementsByClassName("listen")[0]; -let speed = invidious.getElementsByClassName("speed")[0]; -let qualityDash = invidious.getElementsByClassName("quality_dash")[0]; -let relatedVideo = invidious.getElementsByClassName("related_videos")[0]; -let annotations = invidious.getElementsByClassName("annotations")[0]; -let extendDesc = invidious.getElementsByClassName("extend_desc")[0]; -let vrMode = invidious.getElementsByClassName("vr_mode")[0]; -let savePlayerPos = invidious.getElementsByClassName("save_player_pos")[0]; -let comments0 = invidious.getElementsByClassName("comments[0]")[0]; -let comments1 = invidious.getElementsByClassName("comments[1]")[0]; -let captions0 = invidious.getElementsByClassName("captions[0]")[0]; -let captions1 = invidious.getElementsByClassName("captions[1]")[0]; -let captions2 = invidious.getElementsByClassName("captions[2]")[0]; -let autoplay = invidious.getElementsByClassName("youtubeAutoplay")[0]; -let volume = invidious.getElementsByClassName("volume")[0]; -let volumeValue = invidious.getElementsByClassName("volume-value")[0]; -let region = invidious.getElementsByClassName("region")[0]; -let darkMode = invidious.getElementsByClassName("dark_mode")[0]; -let thin_mode = invidious.getElementsByClassName("thin_mode")[0]; -let default_home = invidious.getElementsByClassName("default_home")[0]; -let feed_menu0 = invidious.getElementsByClassName("feed_menu[0]")[0]; -let feed_menu1 = invidious.getElementsByClassName("feed_menu[1]")[0]; - -volume.addEventListener("input", () => volumeValue.textContent = `${volume.value}%`); - -invidious.addEventListener("change", async _ => { - browser.storage.local.get( - [ - "invidiousComments", - "invidiousCaptions", - "invidiousFeedMenuList", - ], - async r => { - let commentsList = r.invidiousComments; - commentsList[0] = comments0.value; - commentsList[1] = comments1.value; - - let captionsList = r.invidiousCaptions; - captionsList[0] = captions0.value; - captionsList[1] = captions1.value; - captionsList[2] = captions2.value; - - let feedMenuList = r.invidiousFeedMenuList; - feedMenuList[0] = feed_menu0.value; - feedMenuList[1] = feed_menu1.value; - - await browser.storage.local.set({ - invidiousAlwaysProxy: alwaysProxy.checked, - youtubeAutoplay: autoplay.checked, - invidiousPlayerStyle: playerStyle.value, - invidiousQuality: quality.value, - invidiousVideoLoop: videoLoop.checked, - invidiousContinueAutoplay: continueAutoplay.checked, - invidiousContinue: invidiousContinue.checked, - youtubeListen: youtubeListen.checked, - invidiousSpeed: speed.value, - invidiousQualityDash: qualityDash.value, - youtubeVolume: volume.value, - invidiousComments: commentsList, - invidiousCaptions: captionsList, - invidiousRelatedVideos: relatedVideo.checked, - invidiousAnnotations: annotations.checked, - invidiousExtendDesc: extendDesc.checked, - invidiousVrMode: vrMode.checked, - invidiousSavePlayerPos: savePlayerPos.checked, - - invidiousRegion: region.value, - invidiousDarkMode: darkMode.value, - invidiousThinMode: thin_mode.checked, - invidiousDefaultHome: default_home.value, - invidiousFeedMenuList: feedMenuList, - }); - } - ) -}); - -browser.storage.local.get( - [ - "youtubeListen", - "youtubeVolume", - "youtubeAutoplay", - "invidiousQuality", - "invidiousAlwaysProxy", - "invidiousQuality", - "invidiousPlayerStyle", - "invidiousVideoLoop", - "invidiousContinueAutoplay", - "invidiousContinue", - "invidiousSpeed", - "invidiousQualityDash", - "invidiousComments", - "invidiousCaptions", - "invidiousRelatedVideos", - "invidiousAnnotations", - "invidiousExtendDesc", - "invidiousVrMode", - "invidiousSavePlayerPos", - "invidiousRegion", - "invidiousDarkMode", - "invidiousThinMode", - "invidiousDefaultHome", - "invidiousFeedMenuList", - ], - r => { - videoLoop.checked = r.invidiousVideoLoop; - autoplay.checked = r.youtubeAutoplay; - playerStyle.value = r.invidiousPlayerStyle; - - continueAutoplay.checked = r.invidiousContinueAutoplay; - invidiousContinue.checked = r.invidiousContinue; - alwaysProxy.checked = r.invidiousAlwaysProxy; - youtubeListen.checked = r.youtubeListen; - - speed.value = r.invidiousSpeed; - quality.value = r.invidiousQuality; - qualityDash.value = r.invidiousQualityDash; - - volume.value = r.youtubeVolume; - volumeValue.textContent = `${r.youtubeVolume}%`; - - comments0.value = r.invidiousComments[0]; - comments1.value = r.invidiousComments[1]; - - captions0.value = r.invidiousCaptions[0]; - captions1.value = r.invidiousCaptions[1]; - captions2.value = r.invidiousCaptions[2]; - - relatedVideo.checked = r.invidiousRelatedVideos; - annotations.checked = r.invidiousAnnotations; - extendDesc.checked = r.invidiousExtendDesc; - vrMode.checked = r.invidiousVrMode; - savePlayerPos.checked = r.invidiousSavePlayerPos; - - region.value = r.invidiousRegion; - darkMode.value = r.invidiousDarkMode; - thin_mode.checked = r.invidiousThinMode; - default_home.value = r.invidiousDefaultHome; - - feed_menu0.value = r.invidiousFeedMenuList[0]; - feed_menu1.value = r.invidiousFeedMenuList[1]; - - - } -) - -commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document); -commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'tor', document); - - -let latencyInvidiousElement = document.getElementById("latency-invidious"); -let latencyInvidiousLabel = document.getElementById("latency-invidious-label"); -latencyInvidiousElement.addEventListener("click", - async () => { - let reloadWindow = () => location.reload(); - latencyInvidiousElement.addEventListener("click", reloadWindow); - await youtubeHelper.init(); - let redirects = youtubeHelper.getRedirects(); - const oldHtml = latencyInvidiousLabel.innerHTML; - latencyInvidiousLabel.innerHTML = '...'; - commonHelper.testLatency(latencyInvidiousLabel, redirects.invidious.normal).then(r => { - browser.storage.local.set({ invidiousLatency: r }); - latencyInvidiousLabel.innerHTML = oldHtml; - commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document); - latencyInvidiousElement.removeEventListener("click", reloadWindow); - }); - } -); \ No newline at end of file diff --git a/src/pages/options/youtube/piped.js b/src/pages/options/youtube/piped.js deleted file mode 100644 index d8ebe2a4..00000000 --- a/src/pages/options/youtube/piped.js +++ /dev/null @@ -1,152 +0,0 @@ -import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js"; -import commonHelper from "../../../assets/javascripts/helpers/common.js"; - -let piped = document.getElementById('piped'); - -let pipedListen = piped.getElementsByClassName("listen")[0]; -let pipedQuality = piped.getElementsByClassName("quality")[0]; -let pipedBufferGoal = piped.getElementsByClassName("bufferGoal")[0]; -let pipedRegion = piped.getElementsByClassName("region")[0]; -let pipedHomepage = piped.getElementsByClassName("homepage")[0]; -let pipedComments = piped.getElementsByClassName("comments")[0]; -let pipedMinimizeDescription = piped.getElementsByClassName("minimizeDescription")[0]; -let pipedWatchHistory = piped.getElementsByClassName("watchHistory")[0]; -let pipedDisableLBRY = piped.getElementsByClassName("disableLBRY")[0]; -let pipedProxyLBRY = piped.getElementsByClassName("proxyLBRY")[0]; - -let pipedSelectedSkipSponsor = piped.getElementsByClassName("selectedSkip-sponsor")[0]; -let pipedSelectedSkipIntro = piped.getElementsByClassName("selectedSkip-intro")[0]; -let pipedSelectedSkipOutro = piped.getElementsByClassName("selectedSkip-outro")[0]; -let pipedSelectedSkipPreview = piped.getElementsByClassName("selectedSkip-preview")[0]; -let pipedSelectedSkipInteraction = piped.getElementsByClassName("selectedSkip-interaction")[0]; -let pipedSelectedSkipSelfpromo = piped.getElementsByClassName("selectedSkip-selfpromo")[0]; -let pipedSelectedSkipMusicOfftopic = piped.getElementsByClassName("selectedSkip-music_offtopic")[0]; -let pipedSelectedSkipPoiHighlight = piped.getElementsByClassName("selectedSkip-poi_highlight")[0]; -let pipedSelectedSkipFiller = piped.getElementsByClassName("selectedSkip-filler")[0]; - -let pipedDdlTheme = piped.getElementsByClassName("ddlTheme")[0]; -let pipedSponsorblock = piped.getElementsByClassName("sponsorblock")[0]; -let pipedEnabledCodecs = piped.getElementsByClassName("enabledCodecs")[0]; -let autoplay = piped.getElementsByClassName("youtubeAutoplay")[0]; - -let volume = piped.getElementsByClassName("volume")[0]; -let volumeValue = piped.getElementsByClassName("volume-value")[0]; - -volume.addEventListener("input", () => volumeValue.textContent = `${volume.value}%`); -function selectSkipModify(value, boolean) { - if (boolean && !selectSkip.includes(value)) { - selectSkip.push(value); - } - else if (!boolean) { - let i = selectSkip.indexOf(value); - if (i > -1) selectSkip.splice(i, 1); - } -} -let selectSkip = []; -piped.addEventListener("change", async () => { - let pipedEnabledCodecsResult = []; - for (const opt of pipedEnabledCodecs.options) - if (opt.selected) pipedEnabledCodecsResult.push(opt.value); - - selectSkipModify('sponsor', pipedSelectedSkipSponsor.checked); - selectSkipModify('intro', pipedSelectedSkipIntro.checked); - selectSkipModify('outro', pipedSelectedSkipOutro.checked); - selectSkipModify('preview', pipedSelectedSkipPreview.checked); - selectSkipModify('interaction', pipedSelectedSkipInteraction.checked); - selectSkipModify('selfpromo', pipedSelectedSkipSelfpromo.checked); - selectSkipModify('music_offtopic', pipedSelectedSkipMusicOfftopic.checked); - selectSkipModify('poi_highlight', pipedSelectedSkipPoiHighlight.checked); - selectSkipModify('filler', pipedSelectedSkipFiller.checked); - - await browser.storage.local.set({ - pipedQuality: pipedQuality.value, - pipedBufferGoal: pipedBufferGoal.value, - pipedRegion: pipedRegion.value, - pipedHomepage: pipedHomepage.value, - pipedComments: pipedComments.checked, - pipedMinimizeDescription: pipedMinimizeDescription.checked, - youtubeAutoplay: autoplay.checked, - pipedWatchHistory: pipedWatchHistory.checked, - pipedDisableLBRY: pipedDisableLBRY.checked, - pipedProxyLBRY: pipedProxyLBRY.checked, - youtubeVolume: volume.value, - pipedSponsorblock: pipedSponsorblock.checked, - pipedDdlTheme: pipedDdlTheme.value, - pipedEnabledCodecs: pipedEnabledCodecsResult, - youtubeListen: pipedListen.checked, - pipedSelectedSkip: selectSkip, - }); -}); - -await browser.storage.local.get( - [ - "youtubeVolume", - "youtubeAutoplay", - "youtubeListen", - - "pipedBufferGoal", - "pipedComments", - "pipedDisableLBRY", - "pipedEnabledCodecs", - "pipedHomepage", - "pipedMinimizeDescription", - "pipedProxyLBRY", - "pipedQuality", - "pipedRegion", - "pipedSelectedSkip", - "pipedSponsorblock", - "pipedDdlTheme", - "pipedWatchHistory", - ], - r => { - pipedSponsorblock.checked = r.pipedSponsorblock; - pipedDdlTheme.value = r.pipedDdlTheme; - selectSkip = r.pipedSelectedSkip; - pipedSelectedSkipSponsor.checked = selectSkip.includes('sponsor'); - pipedSelectedSkipIntro.checked = selectSkip.includes('intro'); - pipedSelectedSkipOutro.checked = selectSkip.includes('outro'); - pipedSelectedSkipPreview.checked = selectSkip.includes('preview'); - autoplay.checked = r.youtubeAutoplay; - pipedSelectedSkipInteraction.checked = selectSkip.includes('interaction'); - pipedSelectedSkipSelfpromo.checked = selectSkip.includes('selfpromo'); - pipedSelectedSkipMusicOfftopic.checked = selectSkip.includes('music_offtopic'); - pipedSelectedSkipPoiHighlight.checked = selectSkip.includes('poi_highlight'); - pipedSelectedSkipFiller.checked = selectSkip.includes('filler'); - pipedListen.checked = r.youtubeListen; - pipedQuality.value = r.pipedQuality; - pipedBufferGoal.value = r.pipedBufferGoal; - pipedRegion.value = r.pipedRegion; - pipedHomepage.value = r.pipedHomepage; - pipedComments.checked = r.pipedComments; - pipedMinimizeDescription.checked = r.pipedMinimizeDescription; - pipedWatchHistory.checked = r.pipedWatchHistory; - pipedEnabledCodecs.value = r.pipedEnabledCodecs; - pipedDisableLBRY.checked = r.pipedDisableLBRY; - pipedProxyLBRY.checked = r.pipedProxyLBRY; - - volume.value = r.youtubeVolume; - volumeValue.textContent = `${r.youtubeVolume}%`; - } -); - -commonHelper.processDefaultCustomInstances('youtube', 'piped', 'normal', document); -commonHelper.processDefaultCustomInstances('youtube', 'piped', 'tor', document); - -let latencyPipedElement = document.getElementById("latency-piped"); -let latencyPipedLabel = document.getElementById("latency-piped-label"); -latencyPipedElement.addEventListener("click", - async () => { - let reloadWindow = () => location.reload(); - latencyPipedElement.addEventListener("click", reloadWindow); - await youtubeHelper.init(); - let redirects = youtubeHelper.getRedirects(); - const oldHtml = latencyPipedLabel.innerHTML; - latencyPipedLabel.innerHTML = '...'; - commonHelper.testLatency(latencyPipedLabel, redirects.piped.normal).then(r => { - browser.storage.local.set({ pipedLatency: r }); - latencyPipedLabel.innerHTML = oldHtml; - commonHelper.processDefaultCustomInstances('youtube', 'piped', 'normal', document); - latencyPipedElement.removeEventListener("click", reloadWindow); - }); - } -); diff --git a/src/pages/options/youtube/pipedMaterial.js b/src/pages/options/youtube/pipedMaterial.js deleted file mode 100644 index 3dc0e677..00000000 --- a/src/pages/options/youtube/pipedMaterial.js +++ /dev/null @@ -1,125 +0,0 @@ -import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js"; -import commonHelper from "../../../assets/javascripts/helpers/common.js"; - -let pipedMaterialElement = document.getElementById('pipedMaterial'); -let listenElement = pipedMaterialElement.getElementsByClassName("listen")[0]; -let disableLBRYElement = pipedMaterialElement.getElementsByClassName("disableLBRY")[0]; -let proxyLBRYElement = pipedMaterialElement.getElementsByClassName("proxyLBRY")[0]; -let sponsorblockElement = pipedMaterialElement.getElementsByClassName("sponsorblock")[0]; -let skipToLastPointElement = pipedMaterialElement.getElementsByClassName("skipToLastPoint")[0]; - -let selectedSkipSponsorElement = pipedMaterialElement.getElementsByClassName("selectedSkip-sponsor")[0]; -let selectedSkipIntroElement = pipedMaterialElement.getElementsByClassName("selectedSkip-intro")[0]; -let selectedSkipOutroElement = pipedMaterialElement.getElementsByClassName("selectedSkip-outro")[0]; -let selectedSkipPreviewElement = pipedMaterialElement.getElementsByClassName("selectedSkip-preview")[0]; -let selectedSkipInteractionElement = pipedMaterialElement.getElementsByClassName("selectedSkip-interaction")[0]; -let selectedSkipSelfpromoElement = pipedMaterialElement.getElementsByClassName("selectedSkip-selfpromo")[0]; -let selectedSkipMusicOfftopicElement = pipedMaterialElement.getElementsByClassName("selectedSkip-music_offtopic")[0]; - -let autoplayElement = pipedMaterialElement.getElementsByClassName("youtubeAutoplay")[0]; - -let volumeElement = pipedMaterialElement.getElementsByClassName("volume")[0]; -let volumeValueElement = pipedMaterialElement.getElementsByClassName("volume-value")[0]; - -volumeElement.addEventListener("input", () => volumeValueElement.textContent = `${volumeElement.value}%`); - -let selectSkip = []; -function selectSkipModify(value, boolean) { - if (boolean && !selectSkip.includes(value)) { - selectSkip.push(value); - } - else if (!boolean) { - let i = selectSkip.indexOf(value); - if (i > -1) selectSkip.splice(i, 1); - } -} -pipedMaterialElement.addEventListener("change", async () => { - console.log("changed piped settings"); - - selectSkipModify('sponsors', selectedSkipSponsorElement.checked); - selectSkipModify('intro', selectedSkipIntroElement.checked); - selectSkipModify('outro', selectedSkipOutroElement.checked); - selectSkipModify('preview', selectedSkipPreviewElement.checked); - selectSkipModify('interaction', selectedSkipInteractionElement.checked); - selectSkipModify('selfpromo', selectedSkipSelfpromoElement.checked); - selectSkipModify('music_offtopic', selectedSkipMusicOfftopicElement.checked); - - await browser.storage.local.set({ - youtubeListen: listenElement.checked, - pipedDisableLBRY: disableLBRYElement.checked, - pipedProxyLBRY: proxyLBRYElement.checked, - pipedSponsorblock: sponsorblockElement.checked, - pipedSkipToLastPoint: skipToLastPointElement.checked, - pipedSelectedSkipSponsor: selectedSkipSponsorElement.checked, - pipedSelectedSkipIntro: selectedSkipIntroElement.checked, - pipedSelectedSkipOutro: selectedSkipOutroElement.checked, - youtubeAutoplay: autoplayElement.checked, - youtubeVolume: volumeElement.value, - pipedSelectedSkipPreview: selectedSkipPreviewElement.checked, - pipedSelectedSkipInteraction: selectedSkipInteractionElement.checked, - pipedSelectedSkipSelfpromo: selectedSkipSelfpromoElement.checked, - pipedSelectedSkipMusicOfftopic: selectedSkipMusicOfftopicElement.checked, - - pipedSponsorblock: sponsorblockElement.checked, - pipedMaterialSkipToLastPoint: skipToLastPointElement.checked, - pipedSelectedSkip: selectSkip, - }); - init(); -}); - -browser.storage.local.get( - [ - "youtubeAutoplay", - "youtubeVolume", - "youtubeListen", - - "pipedDisableLBRY", - "pipedProxyLBRY", - "pipedSelectedSkip", - "pipedSponsorblock", - - "pipedMaterialSkipToLastPoint", - ], - r => { - autoplayElement.checked = r.youtubeAutoplay; - - listenElement.checked = r.youtubeListen; - disableLBRYElement.checked = r.pipedDisableLBRY; - proxyLBRYElement.checked = r.pipedProxyLBRY; - sponsorblockElement.checked = r.pipedSponsorblock; - skipToLastPointElement.checked = r.pipedMaterialSkipToLastPoint; - - selectSkip = r.pipedSelectedSkip; - selectedSkipSponsorElement.checked = selectSkip.includes('sponsors'); - selectedSkipIntroElement.checked = selectSkip.includes('intro'); - selectedSkipOutroElement.checked = selectSkip.includes('outro'); - selectedSkipPreviewElement.checked = selectSkip.includes('preview'); - selectedSkipInteractionElement.checked = selectSkip.includes('interaction'); - selectedSkipSelfpromoElement.checked = selectSkip.includes('selfpromo'); - selectedSkipMusicOfftopicElement.checked = selectSkip.includes('music_offtopic'); - - volumeElement.value = r.youtubeVolume; - volumeValueElement.textContent = `${r.youtubeVolume}%`; - }); - -commonHelper.processDefaultCustomInstances('youtube' ,'pipedMaterial', 'normal', document); -commonHelper.processDefaultCustomInstances('youtube' ,'pipedMaterial', 'tor', document); - -let latencyPipedMaterialElement = document.getElementById("latency-pipedMaterial"); -let latencyPipedMaterialLabel = document.getElementById("latency-pipedMaterial-label"); -latencyPipedMaterialElement.addEventListener("click", - async () => { - let reloadWindow = () => location.reload(); - latencyPipedMaterialElement.addEventListener("click", reloadWindow); - await youtubeHelper.init(); - let redirects = youtubeHelper.getRedirects(); - const oldHtml = latencyPipedMaterialLabel.innerHTML; - latencyPipedMaterialLabel.innerHTML = '...'; - commonHelper.testLatency(latencyPipedMaterialLabel, redirects.pipedMaterial.normal).then(r => { - browser.storage.local.set({ pipedMaterialLatency: r }); - latencyPipedMaterialLabel.innerHTML = oldHtml; - commonHelper.processDefaultCustomInstances('youtube' ,'pipedMaterial', 'normal', document); - latencyPipedMaterialElement.removeEventListener("click", reloadWindow); - }); - } -); \ No newline at end of file diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html index 04d6df46..6dfb9f7f 100644 --- a/src/pages/options/youtube/youtube.html +++ b/src/pages/options/youtube/youtube.html @@ -12,9 +12,9 @@
@@ -69,7 +69,6 @@
-

Embedded Videos Frontend

@@ -80,7 +79,6 @@
-
@@ -98,680 +96,8 @@
-
-

Bypass "Watch On YouTube"

- -
-
-

Enable Custom Settings (will use cookies and localStorage)

- -
-
-
-
-

Always loop

- -
-
-

Autoplay Video

- -
-
-

Play next by default

- -
-
-

Autoplay next video

- -
-
-

Always proxy videos

- -
-
-

Listen by default

- -
-
-

Default speed

- -
-
-

Preferred video quality

- -
-
-

Preferred DASH video quality

- -
-
-

- Volume:--% -

- -
-
-

Default comments

- -
-
-

- -
-
-

Default captions

- -
-
-

- -
-
-

- -
-
-

Show related videos

- -
-
-

Show annotations by default

- -
-
-

Automatically extend video description

- -
-
-

Interactive 360 degree videos (requires WebGL)

- -
-
-

Save playback position

- -
-
-

Select country

- -
-
-

Player Style

- -
-
-

Theme

- -
-
-

Thin mode

- -
-
-

Default homepage

- -
-
-

Feed menu

-   - -
-

@@ -825,323 +151,6 @@

-
-
-
-

- Volume:--% -

- -
-
-

Enable Sponsorblock

- -
-
-

Skip Sponsors

- -
-
-

Skip Intermission/Intro Animation

- -
-
-

Skip Endcards/Credits

- -
-
-

Skip Preview/Recap

- -
-
-

Skip Interaction Reminder (Subscribe)

- -
-
-

Skip Unpaid/Self Promotion(Subscribe)

- -
-
-

Skip Music: Non-Music Section(Subscribe)

- -
-
-

Skip Highlight(Subscribe)

- -
-
-

Skip Filler Tangent

- -
-
-

Theme

- -
-
-

Autoplay Video

- -
-
-

Audio Only

- -
-
-

Default Quality

- -
-
-

Buffering Goal (in seconds)

- -
-
-

Country Selection

- -
-
-

Default Homepage

- -
-
-

Show Comments

- -
-
-

Minimize Description by default

- -
-
-

Store Watch History

- -
-
-

Enabled Codecs (Multiple)

- -
-
-

Disable LBRY for Streaming

- -
-
-

Enable Proxy for LBRY

- -
-

Default Instances

@@ -1194,67 +203,6 @@

-
-
-

Autoplay Video

- -
-
-

- Volume:--% -

- -
-
-

Audio Only

- -
-
-

Disable LBRY

- -
-
-

Proxy LBRY videos

- -
-
-

Enable Sponsorblock

- -
-
-

Skip to the last watched point when encountering a video already seen

- -
-
-

Skip Sponsors

- -
-
-

Skip Intermission/Intro Animation

- -
-
-

Skip Endcards/Credits

- -
-
-

Skip Preview/Recap

- -
-
-

Skip Interaction Reminder (Subscribe)

- -
-
-

Skip Unpaid/Self Promotion

- -
-
-

Skip Music: Non-Music Section

- -
-
-

Default Instances

diff --git a/src/pages/options/youtube/youtube.js b/src/pages/options/youtube/youtube.js index 71ae4777..07d9ba1d 100644 --- a/src/pages/options/youtube/youtube.js +++ b/src/pages/options/youtube/youtube.js @@ -1,79 +1,80 @@ import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js"; - -let disableYoutubeElement = document.getElementById("disable-invidious"); -let youtubeFrontendElement = document.getElementById("youtube-frontend"); -let invidiousDivElement = document.getElementById("invidious"); -let pipedDivElement = document.getElementById("piped"); -let pipedMaterialDivElement = document.getElementById("pipedMaterial"); -let freetubeYatteeDivElement = document.getElementById("freetube-yatte"); -let customSettingsDivElement = document.getElementsByClassName("custom-settings"); -let youtubeEmbedFrontendElement = document.getElementById("youtube-embed-frontend"); -let enableYoutubeCustomSettingsElement = document.getElementById("enable-youtube-custom-settings"); -let OnlyEmbeddedVideoElement = document.getElementById("only-embed"); -let bypassWatchOnYoutubeElement = document.getElementById("bypass-watch-on-youtube"); -let protocolElement = document.getElementById("protocol"); +import commonHelper from "../../../assets/javascripts/helpers/common.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 = youtubeFrontendElement.value; - - if (enableYoutubeCustomSettingsElement.checked) - for (const item of customSettingsDivElement) item.style.display = 'block'; - else - for (const item of customSettingsDivElement) item.style.display = 'none'; + let frontend = youtubeFrontend.value; if (frontend == 'invidious') { - invidiousDivElement.style.display = 'block'; - pipedDivElement.style.display = 'none'; - pipedMaterialDivElement.style.display = 'none'; - freetubeYatteeDivElement.style.display = 'none'; + invidiousDiv.style.display = 'block'; + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'none'; + freetubeYatteeDiv.style.display = 'none'; } else if (frontend == 'piped') { - invidiousDivElement.style.display = 'none'; - pipedDivElement.style.display = 'block'; - pipedMaterialDivElement.style.display = 'none'; - freetubeYatteeDivElement.style.display = 'none'; + invidiousDiv.style.display = 'none'; + pipedDiv.style.display = 'block'; + pipedMaterialDiv.style.display = 'none'; + freetubeYatteeDiv.style.display = 'none'; } else if (frontend == 'pipedMaterial') { - invidiousDivElement.style.display = 'none'; - pipedDivElement.style.display = 'none'; - pipedMaterialDivElement.style.display = 'block'; - freetubeYatteeDivElement.style.display = 'none'; + invidiousDiv.style.display = 'none'; + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'block'; + freetubeYatteeDiv.style.display = 'none'; } else if (frontend == 'freetube' || frontend == 'yatte') { - invidiousDivElement.style.display = 'none'; - pipedDivElement.style.display = 'none'; - pipedMaterialDivElement.style.display = 'none'; - freetubeYatteeDivElement.style.display = 'block'; - changeYoutubeEmbedFrontendsSettings(youtubeHelper.getYoutubeEmbedFrontend()); + invidiousDiv.style.display = 'none'; + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'none'; + freetubeYatteeDiv.style.display = 'block'; + changeYoutubeEmbedFrontendsSettings(); } } -function changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend) { - if (youtubeEmbedFrontend == 'invidious') { - pipedDivElement.style.display = 'none'; - invidiousDivElement.style.display = 'block'; +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 == 'piped') { - pipedDivElement.style.display = 'block'; - invidiousDivElement.style.display = 'none'; + if (youtubeEmbedFrontend.value == 'pipedMaterial') { + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'block'; + invidiousDiv.style.display = 'none'; } - else if (youtubeEmbedFrontend == 'youtube') { - pipedDivElement.style.display = 'none'; - invidiousDivElement.style.display = 'none'; + else if (youtubeEmbedFrontend.value == 'youtube') { + pipedDiv.style.display = 'none'; + pipedMaterialDiv.style.display = 'none'; + invidiousDiv.style.display = 'none'; } } -function changeProtocolSettings(protocol) { - let normalPipedDiv = document.getElementById('piped').getElementsByClassName("normal")[0]; - let torPipedDiv = document.getElementById('piped').getElementsByClassName("tor")[0]; +function changeProtocolSettings() { + const normalPipedDiv = document.getElementById('piped').getElementsByClassName("normal")[0]; + const torPipedDiv = document.getElementById('piped').getElementsByClassName("tor")[0]; - let normalPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("normal")[0]; - let torPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("tor")[0]; + const normalPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("normal")[0]; + const torPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("tor")[0]; - let normalInvidiousDiv = document.getElementById('invidious').getElementsByClassName("normal")[0]; - let torInvidiousDiv = document.getElementById('invidious').getElementsByClassName("tor")[0]; + const normalInvidiousDiv = document.getElementById('invidious').getElementsByClassName("normal")[0]; + const torInvidiousDiv = document.getElementById('invidious').getElementsByClassName("tor")[0]; - if (protocol == 'normal') { + if (protoco.value == 'normal') { normalInvidiousDiv.style.display = 'block'; torInvidiousDiv.style.display = 'none'; @@ -83,7 +84,7 @@ function changeProtocolSettings(protocol) { normalPipedMaterialDiv.style.display = 'block'; torPipedMaterialDiv.style.display = 'none'; } - else if (protocol == 'tor') { + else if (protoco.value == 'tor') { normalInvidiousDiv.style.display = 'none'; torInvidiousDiv.style.display = 'block'; @@ -97,56 +98,118 @@ function changeProtocolSettings(protocol) { document.addEventListener("change", async () => { await browser.storage.local.set({ - disableYoutube: !disableYoutubeElement.checked, - youtubeFrontend: youtubeFrontendElement.value, - youtubeEmbedFrontend: youtubeEmbedFrontendElement.value, - enableYoutubeCustomSettings: enableYoutubeCustomSettingsElement.checked, - OnlyEmbeddedVideo: OnlyEmbeddedVideoElement.value, - bypassWatchOnYoutube: bypassWatchOnYoutubeElement.checked, - youtubeProtocol: protocolElement.value, + disableYoutube: !disableYoutube.checked, + youtubeFrontend: youtubeFrontend.value, + youtubeEmbedFrontend: youtubeEmbedFrontend.value, + OnlyEmbeddedVideo: OnlyEmbeddedVideo.value, + youtubeProtocol: protoco.value, }) - changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontendElement.value); - changeProtocolSettings(protocolElement.value); + changeProtocolSettings(); + changeYoutubeEmbedFrontendsSettings(); changeFrontendsSettings(); }) browser.storage.local.get( [ "disableYoutube", - "enableYoutubeCustomSettings", "OnlyEmbeddedVideo", "youtubeRedirects", "youtubeFrontend", - "alwaysUsePreferred", "youtubeEmbedFrontend", "youtubeProtocol", - "bypassWatchOnYoutube", ], r => { - disableYoutubeElement.checked = !r.disableYoutube; - enableYoutubeCustomSettingsElement.checked = r.enableYoutubeCustomSettings; + disableYoutube.checked = !r.disableYoutube; + OnlyEmbeddedVideo.value = r.OnlyEmbeddedVideo; + youtubeFrontend.value = r.youtubeFrontend; + protoco.value = r.youtubeProtocol; - OnlyEmbeddedVideoElement.value = r.OnlyEmbeddedVideo; - bypassWatchOnYoutubeElement.checked = r.bypassWatchOnYoutube; - - let frontend = r.youtubeFrontend; - youtubeFrontendElement.value = frontend; changeFrontendsSettings(); + changeProtocolSettings(); - let protocol = r.youtubeProtocol; - protocolElement.value = protocol; - changeProtocolSettings(protocol); + youtubeEmbedFrontend.value = youtubeEmbedFrontend.value + if (r.youtubeFrontend == "freetube" || r.youtubeFrontend == "yatte") changeYoutubeEmbedFrontendsSettings() + } +); - let youtubeEmbedFrontend = r.youtubeEmbedFrontend; - youtubeEmbedFrontendElement.value = youtubeEmbedFrontend - if (frontend == "freetube" || frontend == "yatte") { - changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend) - }; +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.initPipedLocalStorage(url); +// }); + +commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document); +commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'tor', document); +commonHelper.processDefaultCustomInstances('youtube', 'pipedMaterial', 'normal', document); +commonHelper.processDefaultCustomInstances('youtube', 'pipedMaterial', 'tor', document); +commonHelper.processDefaultCustomInstances('youtube', 'piped', 'normal', document); +commonHelper.processDefaultCustomInstances('youtube', 'piped', 'tor', document); + + +let latencyInvidiousElement = document.getElementById("latency-invidious"); +let latencyInvidiousLabel = document.getElementById("latency-invidious-label"); +latencyInvidiousElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyInvidiousElement.addEventListener("click", reloadWindow); + await youtubeHelper.init(); + let redirects = youtubeHelper.getRedirects(); + const oldHtml = latencyInvidiousLabel.innerHTML; + latencyInvidiousLabel.innerHTML = '...'; + commonHelper.testLatency(latencyInvidiousLabel, redirects.invidious.normal).then(r => { + browser.storage.local.set({ invidiousLatency: r }); + latencyInvidiousLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document); + latencyInvidiousElement.removeEventListener("click", reloadWindow); + }); } ); +let latencyPipedMaterialElement = document.getElementById("latency-pipedMaterial"); +let latencyPipedMaterialLabel = document.getElementById("latency-pipedMaterial-label"); +latencyPipedMaterialElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyPipedMaterialElement.addEventListener("click", reloadWindow); + await youtubeHelper.init(); + let redirects = youtubeHelper.getRedirects(); + const oldHtml = latencyPipedMaterialLabel.innerHTML; + latencyPipedMaterialLabel.innerHTML = '...'; + commonHelper.testLatency(latencyPipedMaterialLabel, redirects.pipedMaterial.normal).then(r => { + browser.storage.local.set({ pipedMaterialLatency: r }); + latencyPipedMaterialLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances('youtube', 'pipedMaterial', 'normal', document); + latencyPipedMaterialElement.removeEventListener("click", reloadWindow); + }); + } +); -window.onblur = () => { - youtubeHelper.initInvidiousCookies(); -} \ No newline at end of file +let latencyPipedElement = document.getElementById("latency-piped"); +let latencyPipedLabel = document.getElementById("latency-piped-label"); +latencyPipedElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyPipedElement.addEventListener("click", reloadWindow); + await youtubeHelper.init(); + let redirects = youtubeHelper.getRedirects(); + const oldHtml = latencyPipedLabel.innerHTML; + latencyPipedLabel.innerHTML = '...'; + commonHelper.testLatency(latencyPipedLabel, redirects.piped.normal).then(r => { + browser.storage.local.set({ pipedLatency: r }); + latencyPipedLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances('youtube', 'piped', 'normal', document); + latencyPipedElement.removeEventListener("click", reloadWindow); + }); + } +); diff --git a/src/pages/options/youtube/youtube.pug b/src/pages/options/youtube/youtube.pug index be88aac8..45c7f173 100644 --- a/src/pages/options/youtube/youtube.pug +++ b/src/pages/options/youtube/youtube.pug @@ -21,8 +21,6 @@ body.option(dir="auto") option(value="freetube") FreeTube option(value="yatte") Yattee - hr - #freetube-yatte .some-block.option-block h4(data-localise="__MSG_embeddedVids__") Embedded Videos Frontend @@ -31,7 +29,6 @@ body.option(dir="auto") option(value="piped") Piped option(value="pipedMaterial") Piped-Material option(value="youtube") Youtube - hr #invidious-piped-pipedMaterial .some-block.option-block @@ -47,278 +44,7 @@ body.option(dir="auto") option(value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__") Only Embedded option(value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__") Only Not Embedded - .some-block.option-block - h4(data-localise="__MSG_bypassYoutube__") Bypass "Watch On YouTube" - input#bypass-watch-on-youtube(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_enableCustom__") Enable Custom Settings (will use cookies and localStorage) - input#enable-youtube-custom-settings(type="checkbox") - #invidious - .custom-settings - hr - .some-block.option-block - h4(data-localise="__MSG_alwaysLoop__") Always loop - input.video_loop(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_autoplayVid__") Autoplay Video - input.youtubeAutoplay(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_playNext__") Play next by default - input.continue(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_autoplayNext__") Autoplay next video - input.continue_autoplay(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_alwaysProxy__") Always proxy videos - input.local(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_listenByDefault__") Listen by default - input.listen(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_defaultSpeed__") Default speed - select.speed - option 2.0 - option 1.75 - option 1.5 - option 1.25 - option 1.0 - option 0.75 - option 0.5 - option 0.25 - - .some-block.option-block - h4(data-localise="__MSG_prefQuality__") Preferred video quality - select.quality - option(value="hd720") 720p - option(value="medium") 480p - option(value="dash" data-localise="__MSG_dash__") DASH (adaptive quality) - - .some-block.option-block - h4(data-localise="__MSG_prefDashQuality__") Preferred DASH video quality - select.quality_dash - option(value="auto" data-localise="__MSG_auto__") Auto - option(value="best" data-localise="__MSG_best__") Best - option(value="4320p") 4320p - option(value="2160p") 2160p - option(value="1440p") 1440p - option(value="1080p") 1080p - option(value="720p") 720p - option(value="480p") 480p - option(value="360p") 360p - option(value="240p") 240p - option(value="144p") 144p - option(value="worst" data-localise="__MSG_worst__") Worst - - .some-block.option-block - h4 - x(data-localise="__MSG_volume__") Volume: - span.volume-value --% - input.volume(type="range" min="0" max="100" step="1") - - .some-block.option-block - h4(data-localise="__MSG_defaultComments__") Default comments - select(class="comments[0]") - option(value="" data-localise="__MSG_none__") none - option(value="youtube") YouTube - option(value="reddit") Reddit - .some-block.option-block - h4 - select(class="comments[1]") - option(value="" data-localise="__MSG_none__") none - option(value="youtube") YouTube - option(value="reddit") Reddit - - .some-block.option-block - h4(data-localise="__MSG_defaultCaptions__") Default captions - select(class="captions[0]") - include ../../widgets/captions_options.pug - - .some-block.option-block - h4 - select(class="captions[1]") - include ../../widgets/captions_options.pug - - .some-block.option-block - h4 - select(class="captions[2]") - include ../../widgets/captions_options.pug - - .some-block.option-block - h4(data-localise="__MSG_showRelated__") Show related videos - input.related_videos(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_showAnnotations__") Show annotations by default - input.annotations(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_autoExtendDesc__") Automatically extend video description - input.extend_desc(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_interactive360__") Interactive 360 degree videos (requires WebGL) - input.vr_mode(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_savePlaybackPos__") Save playback position - input.save_player_pos(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_region__") Select country - select.region - option(value="AE") AE - option(value="AR") AR - option(value="AT") AT - option(value="AU") AU - option(value="AZ") AZ - option(value="BA") BA - option(value="BD") BD - option(value="BE") BE - option(value="BG") BG - option(value="BH") BH - option(value="BO") BO - option(value="BR") BR - option(value="BY") BY - option(value="CA") CA - option(value="CH") CH - option(value="CL") CL - option(value="CO") CO - option(value="CR") CR - option(value="CY") CY - option(value="CZ") CZ - option(value="DE") DE - option(value="DK") DK - option(value="DO") DO - option(value="DZ") DZ - option(value="EC") EC - option(value="EE") EE - option(value="EG") EG - option(value="ES") ES - option(value="FI") FI - option(value="FR") FR - option(value="GB") GB - option(value="GE") GE - option(value="GH") GH - option(value="GR") GR - option(value="GT") GT - option(value="HK") HK - option(value="HN") HN - option(value="HR") HR - option(value="HU") HU - option(value="ID") ID - option(value="IE") IE - option(value="IL") IL - option(value="IN") IN - option(value="IQ") IQ - option(value="IS") IS - option(value="IT") IT - option(value="JM") JM - option(value="JO") JO - option(value="JP") JP - option(value="KE") KE - option(value="KR") KR - option(value="KW") KW - option(value="KZ") KZ - option(value="LB") LB - option(value="LI") LI - option(value="LK") LK - option(value="LT") LT - option(value="LU") LU - option(value="LV") LV - option(value="LY") LY - option(value="MA") MA - option(value="ME") ME - option(value="MK") MK - option(value="MT") MT - option(value="MX") MX - option(value="MY") MY - option(value="NG") NG - option(value="NI") NI - option(value="NL") NL - option(value="NO") NO - option(value="NP") NP - option(value="NZ") NZ - option(value="OM") OM - option(value="PA") PA - option(value="PE") PE - option(value="PG") PG - option(value="PH") PH - option(value="PK") PK - option(value="PL") PL - option(value="PR") PR - option(value="PT") PT - option(value="PY") PY - option(value="QA") QA - option(value="RO") RO - option(value="RS") RS - option(value="RU") RU - option(value="SA") SA - option(value="SE") SE - option(value="SG") SG - option(value="SI") SI - option(value="SK") SK - option(value="SN") SN - option(value="SV") SV - option(value="TH") TH - option(value="TN") TN - option(value="TR") TR - option(value="TW") TW - option(value="TZ") TZ - option(value="UA") UA - option(value="UG") UG - option(value="US") US - option(value="UY") UY - option(value="VE") VE - option(value="VN") VN - option(value="YE") YE - option(value="ZA") ZA - option(value="ZW") ZW - - .some-block.option-block - h4(data-localise="__MSG_playerStyle__") Player Style - select.player_style - option(value="invidious" data-localise="__MSG_invidious__") Invidious - option(value="youtube" data-localise="__MSG_youtube__") YouTube - - .some-block.option-block - h4(data-localise="__MSG_theme__") Theme - select.dark_mode - option(value="") auto - option(value="light") light - option(value="dark") dark - - .some-block.option-block - h4(data-localise="__MSG_thin_mode__") Thin mode - input.thin_mode(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_default_home__") Default homepage - select.default_home - option(value="") Search - option(value="Popular") Popular - option(value="Trending") Trending - - .some-block.option-block - h4(data-localise="__MSG_feedMenu__") Feed menu - select(class="feed_menu[0]") - option(value="") Search - option(value="Popular") Popular - option(value="Trending") Trending - - |  - - select(class="feed_menu[1]") - option(value="") Search - option(value="Popular") Popular - option(value="Trending") Trending hr .normal include ../../widgets/instances.pug @@ -331,318 +57,6 @@ body.option(dir="auto") #piped hr - .custom-settings - hr - .some-block.option-block - h4 - x(data-localise="__MSG_volume__") Volume: - span.volume-value --% - input.volume(type="range" min="0" max="100" step="1") - - .some-block.option-block - h4(data-localise="__MSG_enableSponsorBlock__") Enable Sponsorblock - input.sponsorblock(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipSponsors__") Skip Sponsors - input.selectedSkip-sponsor(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipIntermission__") Skip Intermission/Intro Animation - input.selectedSkip-intro(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skripEndcars__") Skip Endcards/Credits - input.selectedSkip-outro(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skripPreview__") Skip Preview/Recap - input.selectedSkip-preview(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipReminder__") Skip Interaction Reminder (Subscribe) - input.selectedSkip-interaction(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipUnpaidPromo__") Skip Unpaid/Self Promotion(Subscribe) - input.selectedSkip-selfpromo(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipMusic__") Skip Music: Non-Music Section(Subscribe) - input.selectedSkip-music_offtopic(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipHighlight__") Skip Highlight(Subscribe) - input.selectedSkip-poi_highlight(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipFiller__") Skip Filler Tangent - input.selectedSkip-filler(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_theme__") Theme - select.ddlTheme - option(value="auto") Auto - option(value="dark") Dark - option(value="light") Light - - .some-block.option-block - h4(data-localise="__MSG_autoplayVid__") Autoplay Video - input.youtubeAutoplay(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_audioOnly__") Audio Only - input.listen(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_defaultQuality__") Default Quality - select.quality - option(value="0") Auto - option(value="144") 144p - option(value="240") 240p - option(value="360") 360p - option(value="480") 480p - option(value="720") 720p - option(value="1080") 1080p - option(value="1440") 1440p - option(value="2160") 2160p - option(value="4320") 4320p - - .some-block.option-block - h4(data-localise="__MSG_bufferingGoal__") Buffering Goal (in seconds) - input.bufferGoal(type="number" min="10") - - .some-block.option-block - h4(data-localise="__MSG_countrySelection__") Country Selection - select.region - option(value="AF") Afghanistan - option(value="AL") Albania - option(value="DZ") Algeria - option(value="AD") Andorra - option(value="AO") Angola - option(value="AG") Antigua and Barbuda - option(value="AR") Argentina - option(value="AM") Armenia - option(value="AU") Australia - option(value="AT") Austria - option(value="AZ") Azerbaijan - option(value="BS") Bahamas - option(value="BH") Bahrain - option(value="BD") Bangladesh - option(value="BB") Barbados - option(value="BY") Belarus - option(value="BE") Belgium - option(value="BZ") Belize - option(value="BJ") Benin - option(value="BT") Bhutan - option(value="BO") Bolivia (Plurinational State of) - option(value="BA") Bosnia and Herzegovina - option(value="BW") Botswana - option(value="BR") Brazil - option(value="BN") Brunei Darussalam - option(value="BG") Bulgaria - option(value="BF") Burkina Faso - option(value="BI") Burundi - option(value="CV") Cabo Verde - option(value="KH") Cambodia - option(value="CM") Cameroon - option(value="CA") Canada - option(value="CF") Central African Republic - option(value="TD") Chad - option(value="CL") Chile - option(value="CN") China - option(value="CO") Colombia - option(value="KM") Comoros - option(value="CG") Congo - option(value="CD") Congo, Democratic Republic of the - option(value="CR") Costa Rica - option(value="CI") Côte d'Ivoire - option(value="HR") Croatia - option(value="CU") Cuba - option(value="CY") Cyprus - option(value="CZ") Czechia - option(value="DK") Denmark - option(value="DJ") Djibouti - option(value="DM") Dominica - option(value="DO") Dominican Republic - option(value="EC") Ecuador - option(value="EG") Egypt - option(value="SV") El Salvador - option(value="GQ") Equatorial Guinea - option(value="ER") Eritrea - option(value="EE") Estonia - option(value="SZ") Eswatini - option(value="ET") Ethiopia - option(value="FJ") Fiji - option(value="FI") Finland - option(value="FR") France - option(value="GA") Gabon - option(value="GM") Gambia - option(value="GE") Georgia - option(value="DE") Germany - option(value="GH") Ghana - option(value="GR") Greece - option(value="GD") Grenada - option(value="GT") Guatemala - option(value="GN") Guinea - option(value="GW") Guinea-Bissau - option(value="GY") Guyana - option(value="HT") Haiti - option(value="HN") Honduras - option(value="HU") Hungary - option(value="IS") Iceland - option(value="IN") India - option(value="ID") Indonesia - option(value="IR") Iran (Islamic Republic of) - option(value="IQ") Iraq - option(value="IE") Ireland - option(value="IL") Israel - option(value="IT") Italy - option(value="JM") Jamaica - option(value="JP") Japan - option(value="JO") Jordan - option(value="KZ") Kazakhstan - option(value="KE") Kenya - option(value="KI") Kiribati - option(value="KP") Korea (Democratic People's Republic of) - option(value="KR") Korea, Republic of - option(value="KW") Kuwait - option(value="KG") Kyrgyzstan - option(value="LA") Lao People's Democratic Republic - option(value="LV") Latvia - option(value="LB") Lebanon - option(value="LS") Lesotho - option(value="LR") Liberia - option(value="LY") Libya - option(value="LI") Liechtenstein - option(value="LT") Lithuania - option(value="LU") Luxembourg - option(value="MG") Madagascar - option(value="MW") Malawi - option(value="MY") Malaysia - option(value="MV") Maldives - option(value="ML") Mali - option(value="MT") Malta - option(value="MH") Marshall Islands - option(value="MR") Mauritania - option(value="MU") Mauritius - option(value="MX") Mexico - option(value="FM") Micronesia (Federated States of) - option(value="MD") Moldova, Republic of - option(value="MC") Monaco - option(value="MN") Mongolia - option(value="ME") Montenegro - option(value="MA") Morocco - option(value="MZ") Mozambique - option(value="MM") Myanmar - option(value="NA") Namibia - option(value="NR") Nauru - option(value="NP") Nepal - option(value="NL") Netherlands - option(value="NZ") New Zealand - option(value="NI") Nicaragua - option(value="NE") Niger - option(value="NG") Nigeria - option(value="MK") North Macedonia - option(value="NO") Norway - option(value="OM") Oman - option(value="PK") Pakistan - option(value="PW") Palau - option(value="PA") Panama - option(value="PG") Papua New Guinea - option(value="PY") Paraguay - option(value="PE") Peru - option(value="PH") Philippines - option(value="PL") Poland - option(value="PT") Portugal - option(value="QA") Qatar - option(value="RO") Romania - option(value="RU") Russian Federation - option(value="RW") Rwanda - option(value="KN") Saint Kitts and Nevis - option(value="LC") Saint Lucia - option(value="VC") Saint Vincent and the Grenadines - option(value="WS") Samoa - option(value="SM") San Marino - option(value="ST") Sao Tome and Principe - option(value="SA") Saudi Arabia - option(value="SN") Senegal - option(value="RS") Serbia - option(value="SC") Seychelles - option(value="SL") Sierra Leone - option(value="SG") Singapore - option(value="SK") Slovakia - option(value="SI") Slovenia - option(value="SB") Solomon Islands - option(value="SO") Somalia - option(value="ZA") South Africa - option(value="SS") South Sudan - option(value="ES") Spain - option(value="LK") Sri Lanka - option(value="SD") Sudan - option(value="SR") Suriname - option(value="SE") Sweden - option(value="CH") Switzerland - option(value="SY") Syrian Arab Republic - option(value="TJ") Tajikistan - option(value="TZ") Tanzania, United Republic of - option(value="TH") Thailand - option(value="TL") Timor-Leste - option(value="TG") Togo - option(value="TO") Tonga - option(value="TT") Trinidad and Tobago - option(value="TN") Tunisia - option(value="TR") Turkey - option(value="TM") Turkmenistan - option(value="TV") Tuvalu - option(value="UG") Uganda - option(value="UA") Ukraine - option(value="AE") United Arab Emirates - option(value="GB") United Kingdom of Great Britain and Northern Ireland - option(value="US") United States of America - option(value="UY") Uruguay - option(value="UZ") Uzbekistan - option(value="VU") Vanuatu - option(value="VE") Venezuela (Bolivarian Republic of) - option(value="VN") Viet Nam - option(value="YE") Yemen - option(value="ZM") Zambia - option(value="ZW") Zimbabwe - - .some-block.option-block - h4(data-localise="__MSG_defaultHomepage__") Default Homepage - select.homepage - option(value="trending" data-localise="__MSG_trending__") Trending - option(value="feed" data-localise="__MSG_feed__") Feed - - .some-block.option-block - h4(data-localise="__MSG_showComments__") Show Comments - input.comments(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_minimizeDesc__") Minimize Description by default - input.minimizeDescription(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_storeHistory__") Store Watch History - input.watchHistory(type="checkbox") - - - .some-block.option-block - h4(data-localise="__MSG_enabledCodecs__") Enabled Codecs (Multiple) - select.enabledCodecs - option(value="av1") AV1 - option(value="vp9") VP9 - option(value="avc") AVC (h.264) - - .some-block.option-block - h4(data-localise="__MSG_disableLBRY__") Disable LBRY for Streaming - input.disableLBRY(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_enableProxyLBRY__") Enable Proxy for LBRY - input.proxyLBRY(type="checkbox") - .normal include ../../widgets/instances.pug +instances('https://piped.com') @@ -653,67 +67,6 @@ body.option(dir="auto") #pipedMaterial hr - .custom-settings - .some-block.option-block - h4(data-localise="__MSG_autoplayVid__") Autoplay Video - input.youtubeAutoplay(type="checkbox") - - .some-block.option-block - h4 - x(data-localise="__MSG_volume__") Volume: - span.volume-value --% - input.volume(type="range" min="0" max="100" step="1") - - .some-block.option-block - h4(data-localise="__MSG_audioOnly__") Audio Only - input.listen(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_disableLBRY__") Disable LBRY - input.disableLBRY(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_proxyLBRY__") Proxy LBRY videos - input.proxyLBRY(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_enableSponsorBlock__") Enable Sponsorblock - input.sponsorblock(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipNote__") Skip to the last watched point when encountering a video already seen - input.skipToLastPoint(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipSponsors__") Skip Sponsors - input.selectedSkip-sponsor(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipIntermission__") Skip Intermission/Intro Animation - input.selectedSkip-intro(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skripEndcars__") Skip Endcards/Credits - input.selectedSkip-outro(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skripPreview__") Skip Preview/Recap - input.selectedSkip-preview(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipReminder__") Skip Interaction Reminder (Subscribe) - input.selectedSkip-interaction(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipUnpaidPromo__") Skip Unpaid/Self Promotion - input.selectedSkip-selfpromo(type="checkbox") - - .some-block.option-block - h4(data-localise="__MSG_skipMusic__") Skip Music: Non-Music Section - input.selectedSkip-music_offtopic(type="checkbox") - - hr - .normal include ../../widgets/instances.pug +instances('https://piped-material.com') diff --git a/src/pages/options/youtubeMusic/youtubeMusic.html b/src/pages/options/youtubeMusic/youtubeMusic.html index 77fd3f0e..9910630e 100644 --- a/src/pages/options/youtubeMusic/youtubeMusic.html +++ b/src/pages/options/youtubeMusic/youtubeMusic.html @@ -12,9 +12,9 @@
diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html index 68831940..0cd1a4f7 100644 --- a/src/pages/popup/popup.html +++ b/src/pages/popup/popup.html @@ -1,183 +1,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + +
+

LBRY

+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index e3f52baf..61e0ee1b 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -36,6 +36,8 @@ let disableImgurElement = document.getElementById("disable-imgur"); let disableTiktokElement = document.getElementById("disable-tiktok"); let copyRawElement = document.getElementById('copy_raw'); +let unifyElement = document.getElementById('unify'); + browser.storage.local.get( [ "disableTwitter", @@ -93,38 +95,60 @@ document.addEventListener("change", () => { }); }) - let changeInstanceElement = document.getElementById("change-instance") changeInstanceElement.addEventListener("click", switchInstance); copyRawElement.addEventListener("click", copyRaw); +document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage()); +unifyElement.addEventListener("click", unify) +function unify() { + browser.tabs.query( + { active: true, currentWindow: true }, + async tabs => { + let currTab = tabs[0] + if (currTab) { + let url = new URL(currTab.url); -document.getElementById("more-options").addEventListener("click", - () => browser.runtime.openOptionsPage() -); + let result = await youtubeHelper.initInvidiousCookies(url); + if (!result) result = await youtubeHelper.copyPipedLocalStorage(url, currTab.id); + if (!result) result = await twitterHelper.initNitterCookies(url); + if (!result) result = await redditHelper.initLibredditCookies(url); + if (!result) result = await redditHelper.initTedditCookies(url); + if (!result) result = await redditHelper.initSearxCookies(url); + if (!result) result = await redditHelper.initSearxngCookies(url); + if (!result) result = await tiktokHelper.initProxiTokCookies(url); + if (!result) result = await tiktokHelper.initWikilessCookies(url); + + if (result) { + const textElement = unifyElement.getElementsByTagName('h4')[0] + const oldHtml = textElement.innerHTML; + textElement.innerHTML = 'Unified'; + setTimeout(() => textElement.innerHTML = oldHtml, 1000); + } + } + } + ) +} function switchInstance() { browser.tabs.query({ active: true, currentWindow: true }, async tabs => { let currTab = tabs[0]; if (currTab) { - let url = currTab.url; - let tabUrl - try { tabUrl = new URL(url); } - catch (_) { return false; } + let url = new URL(currTab.url); let newUrl; - // newUrl = youtubeHelper.switchInstance(tabUrl); - // if (!newUrl) newUrl = twitterHelper.switchInstance(tabUrl); - // if (!newUrl) newUrl = instagramHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = await redditHelper.switchInstance(tabUrl); - // if (!newUrl) newUrl = searchHelper.switchInstance(tabUrl); - // if (!newUrl) newUrl = translateHelper.switchInstance(tabUrl); - // if (!newUrl) newUrl = mediumHelper.switchInstance(tabUrl); - // if (!newUrl) newUrl = sendTargetsHelper.switchInstance(tabUrl); - // if (!newUrl) newUrl = peertubeHelper.switchInstance(tabUrl); - // if (!newUrl) newUrl = lbryHelper.switchInstance(tabUrl); - // if (!newUrl) newUrl = imgurHelper.switchInstance(tabUrl); - // if (!newUrl) newUrl = wikipediaHelper.switchInstance(tabUrl); + // newUrl = youtubeHelper.switchInstance(url); + // if (!newUrl) newUrl = twitterHelper.switchInstance(url); + // if (!newUrl) newUrl = instagramHelper.switchInstance(url); + if (!newUrl) newUrl = await redditHelper.switchInstance(url); + // if (!newUrl) newUrl = searchHelper.switchInstance(url); + // if (!newUrl) newUrl = translateHelper.switchInstance(url); + // if (!newUrl) newUrl = mediumHelper.switchInstance(url); + // if (!newUrl) newUrl = sendTargetsHelper.switchInstance(url); + // if (!newUrl) newUrl = peertubeHelper.switchInstance(url); + // if (!newUrl) newUrl = lbryHelper.switchInstance(url); + // if (!newUrl) newUrl = imgurHelper.switchInstance(url); + // if (!newUrl) newUrl = wikipediaHelper.switchInstance(url); if (newUrl) { browser.tabs.update({ url: newUrl }); @@ -136,31 +160,29 @@ function switchInstance() { } function copyRaw() { - browser.tabs.query({ active: true, currentWindow: true }, function (tabs) { - let currTab = tabs[0]; - if (currTab) { - let url = currTab.url; - let tabUrl - try { tabUrl = new URL(url); } - catch (_) { return false; } - let newUrl; - newUrl = youtubeHelper.reverse(tabUrl); - if (!newUrl) newUrl = twitterHelper.reverse(tabUrl); - if (!newUrl) newUrl = instagramHelper.reverse(tabUrl); - if (!newUrl) newUrl = tiktokHelper.reverse(tabUrl); - if (!newUrl) newUrl = imgurHelper.reverse(tabUrl); - if (newUrl) { - navigator.clipboard.writeText(newUrl); - const oldHtml = copyRawElement.innerHTML; - copyRawElement.innerHTML = ` - - - - Copied`; - setTimeout(() => copyRawElement.innerHTML = oldHtml, 1000); + browser.tabs.query( + { active: true, currentWindow: true }, tabs => { + let currTab = tabs[0]; + if (currTab) { + let url = new URL(currTab.url); + let newUrl; + newUrl = youtubeHelper.reverse(url); + + if (!newUrl) newUrl = twitterHelper.reverse(url); + if (!newUrl) newUrl = instagramHelper.reverse(url); + if (!newUrl) newUrl = tiktokHelper.reverse(url); + if (!newUrl) newUrl = imgurHelper.reverse(url); + + if (newUrl) { + navigator.clipboard.writeText(newUrl); + const textElement = copyRawElement.getElementsByTagName('h4')[0] + const oldHtml = textElement.innerHTML; + textElement.innerHTML = 'Copied'; + setTimeout(() => textElement.innerHTML = oldHtml, 1000); + } } } - }) + ) } let popupFrontends; diff --git a/src/pages/popup/popup.pug b/src/pages/popup/popup.pug new file mode 100644 index 00000000..f2cc4635 --- /dev/null +++ b/src/pages/popup/popup.pug @@ -0,0 +1,123 @@ +include ../widgets/icons.pug + +doctype html +html(lang="en") + head + meta(charset="utf-8") + meta(name="viewport" content="width=device-width, initial-scale=1") + link(href="../stylesheets/styles.css" rel="stylesheet") + link(href="./style.css" rel="stylesheet") + body(dir="auto") + #youtube.some-block + a.title(href="https://youtube.com") + img(src="../../assets/images/youtube-icon.png") + h4 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 + input#disable-youtubeMusic(type="checkbox") + + #twitter.some-block + a.title(href="https://twitter.com") + img(src="../../assets/images/twitter-icon.png") + h4 Twitter + input#disable-nitter(type="checkbox") + + #instagram.some-block + a.title(href="https://instagram.com") + img(src="../../assets/images/instagram-icon.png") + h4 Instagram + input#disable-bibliogram(type="checkbox") + + #tikTok.some-block + a.title(href="https://tiktok.com") + img(src="../../assets/images/tiktok-icon.png") + h4 TikTok + input#disable-tiktok(type="checkbox") + + #imgur.some-block + a.title(href="https://imgur.com") + img(src="../../assets/images/imgur-icon.png") + h4 Imgur + input#disable-imgur(type="checkbox") + + #reddit.some-block + a.title(href="https://reddit.com") + img(src="../../assets/images/reddit-icon.png") + h4 Reddit + input#disable-reddit(type="checkbox") + + #wikipedia.some-block + a.title(href="https://wikipedia.com") + img(src="../../assets/images/wikipedia-icon.png") + h4 Wikipedia + input#disable-wikipedia(type="checkbox") + + #medium.some-block + a.title(href="https://medium.com") + +medium + h4 Medium + input#disable-medium(type="checkbox") + + #peertube.some-block + a.title(href="https://peertube.com") + img(src="../../assets/images/peertube-icon.png") + h4 Peertube + input#disable-peertube(type="checkbox") + + #lbry.some-block + a.title(href="https://lbry.com") + img(src="../../assets/images/lbry-icon.png") + h4 LBRY + input#disable-lbry(type="checkbox") + + #search.some-block + a.title(href="https://search.com") + +search + h4 Search + input#disable-search(type="checkbox") + + #translate.some-block + a.title(href="https://translate.com") + +translate + h4 Translate + input#disable-simplyTranslate(type="checkbox") + + #maps.some-block + a.title(href="https://maps.com") + +maps + h4 Maps + input#disable-osm(type="checkbox") + + #sendTargets.some-block + a.title(href="https://send.invalid") + +send + h4 Send Files + input#disable-sendTargets(type="checkbox") + + .some-block + a#change-instance.title.button + +change_instance + h4 Change Instance + + .some-block + a#more-options.title.button + +settings + h4 Settings + + .some-block(title="Copy the original redirected link") + a#copy_raw.title.button + +copy_raw + h4 Copy Raw + + .some-block(title="Unify cookies across all selected instances") + a#unify.title.button + +unify + h4 Unify Settings + + 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 diff --git a/src/pages/stylesheets/styles.css b/src/pages/stylesheets/styles.css index c1c2a53f..4421aa83 100644 --- a/src/pages/stylesheets/styles.css +++ b/src/pages/stylesheets/styles.css @@ -278,15 +278,9 @@ div.buttons-popup { } .button { - display: flex; - text-align: center; - justify-content: space-between; - align-items: center; color: var(--text); font-size: 16px; font-weight: bold; - margin: 0; - padding: 5px 5px; text-decoration: none; cursor: pointer; transition-duration: 0.1s; diff --git a/src/pages/widgets/captions_options.pug b/src/pages/widgets/captions_options.pug deleted file mode 100644 index 51d18d62..00000000 --- a/src/pages/widgets/captions_options.pug +++ /dev/null @@ -1,130 +0,0 @@ -option(value="" data-localise="__MSG_none__") none -option(value="English") English -option(value="English (auto-generated)") English (auto-generated) -option(value="English (United Kingdom)") English (United Kingdom) -option(value="English (United States)") English (United States) -option(value="Afrikaans") Afrikaans -option(value="Albanian") Albanian -option(value="Amharic") Amharic -option(value="Arabic") Arabic -option(value="Armenian") Armenian -option(value="Azerbaijani") Azerbaijani -option(value="Bangla") Bangla -option(value="Basque") Basque -option(value="Belarusian") Belarusian -option(value="Bosnian") Bosnian -option(value="Bulgarian") Bulgarian -option(value="Burmese") Burmese -option(value="Cantonese (Hong Kong)") Cantonese (Hong Kong) -option(value="Catalan") Catalan -option(value="Cebuano") Cebuano -option(value="Chinese") Chinese -option(value="Chinese (China)") Chinese (China) -option(value="Chinese (Hong Kong)") Chinese (Hong Kong) -option(value="Chinese (Simplified)") Chinese (Simplified) -option(value="Chinese (Taiwan)") Chinese (Taiwan) -option(value="Chinese (Traditional)") Chinese (Traditional) -option(value="Corsican") Corsican -option(value="Croatian") Croatian -option(value="Czech") Czech -option(value="Danish") Danish -option(value="Dutch") Dutch -option(value="Dutch (auto-generated)") Dutch (auto-generated) -option(value="Esperanto") Esperanto -option(value="Estonian") Estonian -option(value="Filipino") Filipino -option(value="Finnish") Finnish -option(value="French") French -option(value="French (auto-generated)") French (auto-generated) -option(value="Galician") Galician -option(value="Georgian") Georgian -option(value="German") German -option(value="German (auto-generated)") German (auto-generated) -option(value="Greek") Greek -option(value="Gujarati") Gujarati -option(value="Haitian Creole") Haitian Creole -option(value="Hausa") Hausa -option(value="Hawaiian") Hawaiian -option(value="Hebrew") Hebrew -option(value="Hindi") Hindi -option(value="Hmong") Hmong -option(value="Hungarian") Hungarian -option(value="Icelandic") Icelandic -option(value="Igbo") Igbo -option(value="Indonesian") Indonesian -option(value="Indonesian (auto-generated)") Indonesian (auto-generated) -option(value="Interlingue") Interlingue -option(value="Irish") Irish -option(value="Italian") Italian -option(value="Italian (auto-generated)") Italian (auto-generated) -option(value="Japanese") Japanese -option(value="Japanese (auto-generated)") Japanese (auto-generated) -option(value="Javanese") Javanese -option(value="Kannada") Kannada -option(value="Kazakh") Kazakh -option(value="Khmer") Khmer -option(value="Korean") Korean -option(value="Korean (auto-generated)") Korean (auto-generated) -option(value="Kurdish") Kurdish -option(value="Kyrgyz") Kyrgyz -option(value="Lao") Lao -option(value="Latin") Latin -option(value="Latvian") Latvian -option(value="Lithuanian") Lithuanian -option(value="Luxembourgish") Luxembourgish -option(value="Macedonian") Macedonian -option(value="Malagasy") Malagasy -option(value="Malay") Malay -option(value="Malayalam") Malayalam -option(value="Maltese") Maltese -option(value="Maori") Maori -option(value="Marathi") Marathi -option(value="Mongolian") Mongolian -option(value="Nepali") Nepali -option(value="Norwegian Bokmål") Norwegian Bokmål -option(value="Nyanja") Nyanja -option(value="Pashto") Pashto -option(value="Persian") Persian -option(value="Polish") Polish -option(value="Portuguese") Portuguese -option(value="Portuguese (auto-generated)") Portuguese (auto-generated) -option(value="Portuguese (Brazil)") Portuguese (Brazil) -option(value="Punjabi") Punjabi -option(value="Romanian") Romanian -option(value="Russian") Russian -option(value="Russian (auto-generated)") Russian (auto-generated) -option(value="Samoan") Samoan -option(value="Scottish Gaelic") Scottish Gaelic -option(value="Serbian") Serbian -option(value="Shona") Shona -option(value="Sindhi") Sindhi -option(value="Sinhala") Sinhala -option(value="Slovak") Slovak -option(value="Slovenian") Slovenian -option(value="Somali") Somali -option(value="Southern Sotho") Southern Sotho -option(value="Spanish") Spanish -option(value="Spanish (auto-generated)") Spanish (auto-generated) -option(value="Spanish (Latin America)") Spanish (Latin America) -option(value="Spanish (Mexico)") Spanish (Mexico) -option(value="Spanish (Spain)") Spanish (Spain) -option(value="Sundanese") Sundanese -option(value="Swahili") Swahili -option(value="Swedish") Swedish -option(value="Tajik") Tajik -option(value="Tamil") Tamil -option(value="Telugu") Telugu -option(value="Thai") Thai -option(value="Turkish") Turkish -option(value="Turkish (auto-generated)") Turkish (auto-generated) -option(value="Ukrainian") Ukrainian -option(value="Urdu") Urdu -option(value="Uzbek") Uzbek -option(value="Vietnamese") Vietnamese -option(value="Vietnamese (auto-generated)") Vietnamese (auto-generated) -option(value="Welsh") Welsh -option(value="Western Frisian") Western Frisian -option(value="Xhosa") Xhosa -option(value="Yiddish") Yiddish -option(value="Yoruba") Yoruba -option(value="Zulu") Zulu \ No newline at end of file diff --git a/src/pages/widgets/from-to.pug b/src/pages/widgets/from-to.pug deleted file mode 100644 index 9140e094..00000000 --- a/src/pages/widgets/from-to.pug +++ /dev/null @@ -1,108 +0,0 @@ -option(value="af") Afrikaans -option(value="sq") Albanian -option(value="am") Amharic -option(value="ar") Arabic -option(value="hy") Armenian -option(value="az") Azerbaijani -option(value="eu") Basque -option(value="be") Belarusian -option(value="bn") Bengali -option(value="bs") Bosnian -option(value="bg") Bulgarian -option(value="ca") Catalan -option(value="ceb") Cebuano -option(value="ny") Chichewa -option(value="zh-CN") Chinese -option(value="co") Corsican -option(value="hr") Croatian -option(value="cs") Czech -option(value="da") Danish -option(value="nl") Dutch -option(value="en") English -option(value="eo") Esperanto -option(value="et") Estonian -option(value="tl") Filipino -option(value="fi") Finnish -option(value="fr") French -option(value="fy") Frisian -option(value="gl") Galician -option(value="ka") Georgian -option(value="de") German -option(value="el") Greek -option(value="gu") Gujarati -option(value="ht") Haitian Creole -option(value="ha") Hausa -option(value="haw") Hawaiian -option(value="iw") Hebrew -option(value="hi") Hindi -option(value="hmn") Hmong -option(value="hu") Hungarian -option(value="is") Icelandic -option(value="ig") Igbo -option(value="id") Indonesian -option(value="ga") Irish -option(value="it") Italian -option(value="ja") Japanese -option(value="jw") Javanese -option(value="kn") Kannada -option(value="kk") Kazakh -option(value="km") Khmer -option(value="rw") Kinyarwanda -option(value="ko") Korean -option(value="ku") Kurdish (Kurmanji) -option(value="ky") Kyrgyz -option(value="lo") Lao -option(value="la") Latin -option(value="lv") Latvian -option(value="lt") Lithuanian -option(value="lb") Luxembourgish -option(value="mk") Macedonian -option(value="mg") Malagasy -option(value="ms") Malay -option(value="ml") Malayalam -option(value="mt") Maltese -option(value="mi") Maori -option(value="mr") Marathi -option(value="mn") Mongolian -option(value="my") Myanmar (Burmese) -option(value="ne") Nepali -option(value="no") Norwegian -option(value="or") Odia (Oriya) -option(value="ps") Pashto -option(value="fa") Persian -option(value="pl") Polish -option(value="pt") Portuguese -option(value="pa") Punjabi -option(value="ro") Romanian -option(value="ru") Russian -option(value="sm") Samoan -option(value="gd") Scots Gaelic -option(value="sr") Serbian -option(value="st") Sesotho -option(value="sn") Shona -option(value="sd") Sindhi -option(value="si") Sinhala -option(value="sk") Slovak -option(value="sl") Slovenian -option(value="so") Somali -option(value="es") Spanish -option(value="su") Sundanese -option(value="sw") Swahili -option(value="sv") Swedish -option(value="tg") Tajik -option(value="ta") Tamil -option(value="tt") Tatar -option(value="te") Telugu -option(value="th") Thai -option(value="tr") Turkish -option(value="tk") Turkmen -option(value="uk") Ukrainian -option(value="ur") Urdu -option(value="ug") Uyghur -option(value="uz") Uzbek -option(value="vi") Vietnamese -option(value="cy") Welsh -option(value="xh") Xhosa -option(value="yi") Yiddish -option(value="yo") Yoruba -option(value="zu") Zulu \ No newline at end of file diff --git a/src/pages/widgets/icons.pug b/src/pages/widgets/icons.pug new file mode 100644 index 00000000..4ef8d6b2 --- /dev/null +++ b/src/pages/widgets/icons.pug @@ -0,0 +1,44 @@ +mixin medium + 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") + +mixin search + 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") + +mixin translate + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" 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") + +mixin maps + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" 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") + +mixin send + 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") + +mixin change_instance + svg(xmlns="http://www.w3.org/2000/svg" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor") + path(d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z") + +mixin settings + 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 copy_raw + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z") + +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" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + rect(fill="none" height="24" width="24") + path(d="M18,2H9C7.9,2,7,2.9,7,4v12c0,1.1,0.9,2,2,2h9c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2z M18,16H9V4h9V16z M3,15v-2h2v2H3z M3,9.5h2v2H3V9.5z M10,20h2v2h-2V20z M3,18.5v-2h2v2H3z M5,22c-1.1,0-2-0.9-2-2h2V22z M8.5,22h-2v-2h2V22z M13.5,22L13.5,22l0-2h2 v0C15.5,21.1,14.6,22,13.5,22z M5,6L5,6l0,2H3v0C3,6.9,3.9,6,5,6z") \ No newline at end of file diff --git a/src/pages/widgets/links.pug b/src/pages/widgets/links.pug index 8daf48ba..4d6fdd74 100644 --- a/src/pages/widgets/links.pug +++ b/src/pages/widgets/links.pug @@ -1,11 +1,9 @@ +include ../widgets/icons.pug + mixin links(service) section.links .title - 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") + +general a(href="../general/general.html" data-localise="__MSG_general__" class=service == "general" ? "selected" : "") General .title @@ -41,10 +39,7 @@ mixin links(service) a(href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__" class=service == "wikipedia" ? "selected" : "") Wikipedia .title - 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 a(href="../medium/medium.html" data-localise="__MSG_medium__" class=service == "medium" ? "selected" : "") Medium .title @@ -56,21 +51,17 @@ mixin links(service) a(href="../lbry/lbry.html" data-localise="__MSG_lbry__" class=service == "lbry" ? "selected" : "") LBRY/Odysee .title - 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 a(href="../search/search.html" data-localise="__MSG_search__" class=service == "search" ? "selected" : "") Search .title - svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" 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 a(href="../translate/translate.html" data-localise="__MSG_translate__" class=service == "translate" ? "selected" : "") Translate .title - svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") - path(d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z") + +maps a(href="../maps/maps.html" data-localise="__MSG_maps__" class=service == "maps" ? "selected" : "") Maps .title - 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 a(href="../sendTargets/sendTargets.html" data-localise="__MSG_sendFiles__" class=service == "sendTargets" ? "selected" : "") Send Files \ No newline at end of file -- cgit 1.4.1