diff --git a/.gitignore b/.gitignore index e5f8149..a50c6bd 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,4 @@ web-ext-artifacts/ .DS_Store nod node_modules -package-lock.json -src/pages/options/*/*.html \ No newline at end of file +package-lock.json \ No newline at end of file diff --git a/pug/options/general/general.pug b/pug/options/general/general.pug index 1f49363..d0aad99 100644 --- a/pug/options/general/general.pug +++ b/pug/options/general/general.pug @@ -49,26 +49,26 @@ body.option(dir="auto") svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") path(d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z") x(data-localise="__MSG_updateInstances__") Update Instances - + |    - + label.button.button-inline(for="import-settings") svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") path(d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z") |  x(data-localise="__MSG_importSettings__") Import Settings - input#import-settings.button.button-inline(type="file" style="display:none;") - + input#import-settings.button.button-inline(type="file" style="display:none;") + |    - + a#export-settings.button.button-inline svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") path(d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z") |  x(data-localise="__MSG_exportSettings__") Export Settings - + |    - + a#reset-settings.button.button-inline svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") path(d="M12,5V2L8,6l4,4V7c3.31,0,6,2.69,6,6c0,2.97-2.17,5.43-5,5.91v2.02c3.95-0.49,7-3.85,7-7.93C20,8.58,16.42,5,12,5z") diff --git a/pug/options/imgur/imgur.pug b/pug/options/imgur/imgur.pug index 14b31df..f195ca6 100644 --- a/pug/options/imgur/imgur.pug +++ b/pug/options/imgur/imgur.pug @@ -24,6 +24,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://rimgo.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://rimgo.onion') @@ -32,5 +34,7 @@ body.option(dir="auto") include ../../widgets/instances.pug +instances('https://rimgo.onion') + + script(type="module" src="../init.js") script(type="module" src="./imgur.js") \ No newline at end of file diff --git a/pug/options/instagram/instagram.pug b/pug/options/instagram/instagram.pug index 49133c6..6e1ef19 100644 --- a/pug/options/instagram/instagram.pug +++ b/pug/options/instagram/instagram.pug @@ -23,6 +23,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://bibliogram.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://bibliogram.onion') diff --git a/pug/options/lbry/lbry.pug b/pug/options/lbry/lbry.pug index bf01bef..aca0d48 100644 --- a/pug/options/lbry/lbry.pug +++ b/pug/options/lbry/lbry.pug @@ -23,6 +23,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://librarian.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://librarian.onion') diff --git a/pug/options/maps/maps.pug b/pug/options/maps/maps.pug index ded2555..2da94a4 100644 --- a/pug/options/maps/maps.pug +++ b/pug/options/maps/maps.pug @@ -23,6 +23,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://facilmap.com') + include ../../widgets/latency.pug + +latency() script(type="module" src="../init.js") script(type="module" src="./maps.js") \ No newline at end of file diff --git a/pug/options/medium/medium.pug b/pug/options/medium/medium.pug index 91947ee..f5b698d 100644 --- a/pug/options/medium/medium.pug +++ b/pug/options/medium/medium.pug @@ -23,6 +23,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://scribe.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://scribe.onion') diff --git a/pug/options/peertube/peertube.pug b/pug/options/peertube/peertube.pug index f49e311..d9b25bb 100644 --- a/pug/options/peertube/peertube.pug +++ b/pug/options/peertube/peertube.pug @@ -23,6 +23,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://simpleertube.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://simpleertube.onion') diff --git a/pug/options/pixiv/pixiv.pug b/pug/options/pixiv/pixiv.pug index ead2f65..3fab598 100644 --- a/pug/options/pixiv/pixiv.pug +++ b/pug/options/pixiv/pixiv.pug @@ -31,9 +31,11 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://pixivMoe.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://pixivMoe.onion') - + script(type="module" src="../init.js") script(type="module" src="./pixiv.js") \ No newline at end of file diff --git a/pug/options/reddit/reddit.pug b/pug/options/reddit/reddit.pug index faab846..5068acb 100644 --- a/pug/options/reddit/reddit.pug +++ b/pug/options/reddit/reddit.pug @@ -36,6 +36,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://libreddit.com') + include ../../widgets/latency.pug + +latency('libreddit') .tor include ../../widgets/instances.pug +instances('https://libreddit.onion') @@ -44,10 +46,11 @@ body.option(dir="auto") hr .normal include ../../widgets/instances.pug - +instances('https://libreddit.com') + +instances('https://teddit.com') + +latency('teddit') .tor include ../../widgets/instances.pug - +instances('https://libreddit.onion') + +instances('https://teddit.onion') script(type="module" src="../init.js") script(type="module" src="./reddit.js") \ No newline at end of file diff --git a/pug/options/search/search.pug b/pug/options/search/search.pug index 590a427..61664b9 100644 --- a/pug/options/search/search.pug +++ b/pug/options/search/search.pug @@ -37,6 +37,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://searx.com') + include ../../widgets/latency.pug + +latency('searx') .tor include ../../widgets/instances.pug +instances('https://searx.onion') @@ -49,6 +51,7 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://searxng.com') + +latency('searxng') .tor include ../../widgets/instances.pug +instances('https://searxng.onion') @@ -61,6 +64,7 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://whoogle.com') + +latency('whoogle') .tor include ../../widgets/instances.pug +instances('https://whoogle.onion') diff --git a/pug/options/sendTargets/sendTargets.pug b/pug/options/sendTargets/sendTargets.pug index c285114..3017fa8 100644 --- a/pug/options/sendTargets/sendTargets.pug +++ b/pug/options/sendTargets/sendTargets.pug @@ -23,6 +23,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://send.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://send.onion') diff --git a/pug/options/speedtest/speedtest.pug b/pug/options/speedtest/speedtest.pug index 51bbf91..c9b36fa 100644 --- a/pug/options/speedtest/speedtest.pug +++ b/pug/options/speedtest/speedtest.pug @@ -23,6 +23,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://librespeed.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://librespeed.onion') diff --git a/pug/options/spotify/spotify.pug b/pug/options/spotify/spotify.pug index 6bbf9d8..2314fe2 100644 --- a/pug/options/spotify/spotify.pug +++ b/pug/options/spotify/spotify.pug @@ -23,6 +23,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://soju.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://soju.onion') diff --git a/pug/options/tiktok/tiktok.pug b/pug/options/tiktok/tiktok.pug index 0a16954..e9017f9 100644 --- a/pug/options/tiktok/tiktok.pug +++ b/pug/options/tiktok/tiktok.pug @@ -23,6 +23,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://proxitok.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://proxitok.onion') diff --git a/pug/options/translate/translate.pug b/pug/options/translate/translate.pug index 1bcf200..f6a192c 100644 --- a/pug/options/translate/translate.pug +++ b/pug/options/translate/translate.pug @@ -46,19 +46,22 @@ body.option(dir="auto") option(value="deepl") Deepl option(value="iciba") ICIBA option(value="reverso") Reverso - + .normal include ../../widgets/instances.pug +instances('https://simplytranslate.org') + include ../../widgets/latency.pug + +latency('simplyTranslate') .tor include ../../widgets/instances.pug +instances('http://hxecvvetgrznmprg.onion') - + #lingva .normal include ../../widgets/instances.pug +instances('https://lingvatranslate.com') + +latency('lingva') .tor include ../../widgets/instances.pug +instances('http://tyzxppdeoojdnaux.onion') diff --git a/pug/options/twitter/twitter.pug b/pug/options/twitter/twitter.pug index 2d7f145..230aefd 100644 --- a/pug/options/twitter/twitter.pug +++ b/pug/options/twitter/twitter.pug @@ -104,6 +104,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://nitter.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://nitter.onion') diff --git a/pug/options/wikipedia/wikipedia.pug b/pug/options/wikipedia/wikipedia.pug index 6a505cf..54ca873 100644 --- a/pug/options/wikipedia/wikipedia.pug +++ b/pug/options/wikipedia/wikipedia.pug @@ -24,6 +24,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://wikiless.com') + include ../../widgets/latency.pug + +latency() .tor include ../../widgets/instances.pug +instances('https://wikiless.onion') diff --git a/pug/options/youtube/youtube.pug b/pug/options/youtube/youtube.pug index 57fc2b5..49bbc8b 100644 --- a/pug/options/youtube/youtube.pug +++ b/pug/options/youtube/youtube.pug @@ -322,6 +322,8 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://invidious.com') + include ../../widgets/latency.pug + +latency('invidious') .tor include ../../widgets/instances.pug +instances('https://invidious.onion') @@ -643,6 +645,7 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://piped.com') + +latency('piped') .tor include ../../widgets/instances.pug +instances('https://piped.onion') @@ -713,6 +716,7 @@ body.option(dir="auto") .normal include ../../widgets/instances.pug +instances('https://piped-material.com') + +latency('pipedMaterial') .tor include ../../widgets/instances.pug +instances('https://piped-material.onion') diff --git a/pug/options/youtubeMusic/youtubeMusic.pug b/pug/options/youtubeMusic/youtubeMusic.pug index 3a61867..10d2dee 100644 --- a/pug/options/youtubeMusic/youtubeMusic.pug +++ b/pug/options/youtubeMusic/youtubeMusic.pug @@ -15,7 +15,10 @@ body.option(dir="auto") #beatbump hr .normal - include ../../widgets/instances.pug - +instances('https://beatbump.wewe') - script(type="module" src="../init.js") - script(type="module" src="./youtubeMusic.js") + include ../../widgets/instances.pug + +instances('https://beatbump.wewe') + include ../../widgets/latency.pug + +latency() + + script(type="module" src="../init.js") + script(type="module" src="./youtubeMusic.js") diff --git a/pug/widgets/latency.pug b/pug/widgets/latency.pug new file mode 100644 index 0000000..0069ca7 --- /dev/null +++ b/pug/widgets/latency.pug @@ -0,0 +1,13 @@ +mixin latency(service) + - var latencyVal + if (service) + - latencyVal = `latency-${service}` + else + - latencyVal = `latency` + + label.button.button-inline(id=`${latencyVal}-label` for=latencyVal) + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z") + |  + x(data-localise="__MSG_testInstancesLatency__") Test Instances Latency + input.button.button-inline(id=latencyVal style="display:none;") \ No newline at end of file diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js index 287604d..4b2d963 100644 --- a/src/assets/javascripts/helpers/common.js +++ b/src/assets/javascripts/helpers/common.js @@ -19,7 +19,6 @@ let cloudflareList = []; async function initCloudflareList() { return new Promise(resolve => { fetch('/instances/cloudflare.json').then(response => response.text()).then(data => { - console.log(data); cloudflareList = data; resolve(); }) @@ -90,8 +89,6 @@ function protocolHost(url) { return `${url.protocol}//${url.host}`; } - - async function processDefaultCustomInstances( name, protocol, @@ -100,8 +97,10 @@ async function processDefaultCustomInstances( getNameRedirectsChecks, setNameRedirectsChecks, getNameCustomRedirects, - setNameCustomRedirects + setNameCustomRedirects, + instancesLatency, ) { + instancesLatency = instancesLatency ?? []; let nameProtocolElement = document.getElementById(name).getElementsByClassName(protocol)[0]; let nameCustomInstances = []; @@ -123,12 +122,10 @@ async function processDefaultCustomInstances( } nameDefaultRedirects = getNameRedirectsChecks(); - - console.log('cloudflareList', cloudflareList) nameCheckListElement.innerHTML = [ `
Toggle All
`, - ...nameHelper.getRedirects()[name][protocol].map(x => `
${x}${cloudflareList.includes(x) ? ' cloudflare' : ''}
`), + ...nameHelper.getRedirects()[name][protocol].map(x => `
${x}${cloudflareList.includes(x) ? ' cloudflare' : ''} ${x in instancesLatency ? '' + (instancesLatency[x] == 5000 ? '5000ms+' : instancesLatency[x] + 'ms') + '' : ''}
`), ].join('\n
\n'); localise.localisePage(); @@ -161,15 +158,15 @@ async function processDefaultCustomInstances( function calcNameCustomInstances() { nameProtocolElement.getElementsByClassName('custom-checklist')[0].innerHTML = nameCustomInstances.map( - x => `
${x} -
-
` + x => `
${x} +
+
` ).join('\n'); for (const item of nameCustomInstances) { @@ -201,6 +198,46 @@ function isRtl() { return ["ar", "iw", "ku", "fa", "ur"].includes(browser.i18n.getUILanguage()) } +async function ping(href) { + return new Promise(resolve => { + let http = new XMLHttpRequest(); + http.open("GET", href + '?_=' + new Date().getTime(), /*async*/true); + http.timeout = 5000; + let started = new Date().getTime(); + http.onreadystatechange = function () { + if (http.readyState == 2) { + if (http.status == 200) { + let ended = new Date().getTime(); + let ms = ended - started; + http.abort(); + resolve(ms); + } + else resolve() + } + }; + http.ontimeout = () => resolve(5000) + http.onerror = () => resolve() + try { + http.send(null); + } catch (exception) { + resolve() + } + }); +} + +async function testLatency(element, instances) { + return new Promise(async resolve => { + let myList = {}; + for (const href of instances) await ping(href).then(m => { + if (m) { + myList[href] = m; + element.innerHTML = `${href}: ${'' + (m == 5000 ? '5000ms+' : m + 'ms') + ''}`; + console.log(`${href}: ${m}ms`) + } + }) + resolve(myList); + }) +} export default { getRandomInstance, updateInstances, @@ -208,4 +245,5 @@ export default { isFirefox, processDefaultCustomInstances, isRtl, -}; + testLatency, +} diff --git a/src/pages/options/general/general.html b/src/pages/options/general/general.html new file mode 100644 index 0000000..e27ff9d --- /dev/null +++ b/src/pages/options/general/general.html @@ -0,0 +1,223 @@ + + + + + + + + General + + + + +
+
+

Theme

+ +
+
+

Apply Theme to sites

+ +
+
+

Always use Preferred Instances

+ +
+
+

Auto Redirect of offline instances

+ +
+
+

Exceptions

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

Customize Popup

+
+ + + + +
+ \ No newline at end of file diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js index 3b93947..2fab94f 100644 --- a/src/pages/options/general/general.js +++ b/src/pages/options/general/general.js @@ -170,6 +170,6 @@ generalHelper.init().then(() => { }) popupFrontends = generalHelper.getPopupFrontends(); - for (const frontend of generalHelper.allPopupFrontends) + for (const frontend of generalHelper.allPopupFrontends) document.getElementById(frontend).checked = popupFrontends.includes(frontend); }) \ No newline at end of file diff --git a/src/pages/options/imgur/imgur.html b/src/pages/options/imgur/imgur.html new file mode 100644 index 0000000..c9d4862 --- /dev/null +++ b/src/pages/options/imgur/imgur.html @@ -0,0 +1,146 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/imgur/imgur.js b/src/pages/options/imgur/imgur.js index 26a7d41..11ebceb 100644 --- a/src/pages/options/imgur/imgur.js +++ b/src/pages/options/imgur/imgur.js @@ -8,7 +8,7 @@ disableImgurElement.addEventListener("change", let protocolElement = document.getElementById("protocol") protocolElement.addEventListener("change", - (event) => { + event => { let protocol = event.target.options[protocolElement.selectedIndex].value imgurHelper.setProtocol(protocol); changeProtocolSettings(protocol); @@ -20,19 +20,19 @@ function changeProtocolSettings(protocol) { let torDiv = document.getElementsByClassName("tor")[0]; let i2pDiv = document.getElementsByClassName("i2p")[0]; if (protocol == 'normal') { - normalDiv.style.display = 'block'; - torDiv.style.display = 'none'; - i2pDiv.style.display = 'none'; + normalDiv.style.display = 'block'; + torDiv.style.display = 'none'; + i2pDiv.style.display = 'none'; } else if (protocol == 'tor') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'block'; - i2pDiv.style.display = 'none'; + normalDiv.style.display = 'none'; + torDiv.style.display = 'block'; + i2pDiv.style.display = 'none'; } else if (protocol == 'i2p') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'none'; - i2pDiv.style.display = 'block'; + normalDiv.style.display = 'none'; + torDiv.style.display = 'none'; + i2pDiv.style.display = 'block'; } } @@ -44,16 +44,19 @@ imgurHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'rimgo', - 'normal', - imgurHelper, - document, - imgurHelper.getRimgoNormalRedirectsChecks, - imgurHelper.setRimgoNormalRedirectsChecks, - imgurHelper.getRimgoNormalCustomRedirects, - imgurHelper.setRimgoNormalCustomRedirects - ); + browser.storage.local.get("rimgoLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'rimgo', + 'normal', + imgurHelper, + document, + imgurHelper.getRimgoNormalRedirectsChecks, + imgurHelper.setRimgoNormalRedirectsChecks, + imgurHelper.getRimgoNormalCustomRedirects, + imgurHelper.setRimgoNormalCustomRedirects, + r.rimgoLatency + ); + }); commonHelper.processDefaultCustomInstances( 'rimgo', @@ -67,13 +70,42 @@ imgurHelper.init().then(() => { ); commonHelper.processDefaultCustomInstances( - 'rimgo', - 'i2p', - imgurHelper, - document, - imgurHelper.getRimgoI2pRedirectsChecks, - imgurHelper.setRimgoI2pRedirectsChecks, - imgurHelper.getRimgoI2pCustomRedirects, - imgurHelper.setRimgoI2pCustomRedirects + 'rimgo', + 'i2p', + imgurHelper, + document, + imgurHelper.getRimgoI2pRedirectsChecks, + imgurHelper.setRimgoI2pRedirectsChecks, + imgurHelper.getRimgoI2pCustomRedirects, + imgurHelper.setRimgoI2pCustomRedirects ); }); + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await imgurHelper.init(); + let redirects = imgurHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.rimgo.normal).then(r => { + browser.storage.local.set({ rimgoLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'rimgo', + 'normal', + imgurHelper, + document, + imgurHelper.getRimgoNormalRedirectsChecks, + imgurHelper.setRimgoNormalRedirectsChecks, + imgurHelper.getRimgoNormalCustomRedirects, + imgurHelper.setRimgoNormalCustomRedirects, + r + ); + latencyElement.removeEventListener("click", reloadWindow) + }); + } +); diff --git a/src/pages/options/instagram/instagram.html b/src/pages/options/instagram/instagram.html new file mode 100644 index 0000000..01556fd --- /dev/null +++ b/src/pages/options/instagram/instagram.html @@ -0,0 +1,125 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/instagram/instagram.js b/src/pages/options/instagram/instagram.js index a7788a6..867a5dd 100644 --- a/src/pages/options/instagram/instagram.js +++ b/src/pages/options/instagram/instagram.js @@ -36,16 +36,19 @@ instagramHelper.init().then(() => { changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'bibliogram', - 'normal', - instagramHelper, - document, - instagramHelper.getBibliogramNormalRedirectsChecks, - instagramHelper.setBibliogramNormalRedirectsChecks, - instagramHelper.getBibliogramNormalCustomRedirects, - instagramHelper.setBibliogramNormalCustomRedirects - ) + browser.storage.local.get("bibliogramLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'bibliogram', + 'normal', + instagramHelper, + document, + instagramHelper.getBibliogramNormalRedirectsChecks, + instagramHelper.setBibliogramNormalRedirectsChecks, + instagramHelper.getBibliogramNormalCustomRedirects, + instagramHelper.setBibliogramNormalCustomRedirects, + r.bibliogramLatency, + ) + }) commonHelper.processDefaultCustomInstances( 'bibliogram', @@ -57,4 +60,34 @@ instagramHelper.init().then(() => { instagramHelper.getBibliogramTorCustomRedirects, instagramHelper.setBibliogramTorCustomRedirects ) -}) \ No newline at end of file +}) + + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await instagramHelper.init(); + let redirects = instagramHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.bibliogram.normal).then(r => { + browser.storage.local.set({ bibliogramLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'bibliogram', + 'normal', + instagramHelper, + document, + instagramHelper.getBibliogramNormalRedirectsChecks, + instagramHelper.setBibliogramNormalRedirectsChecks, + instagramHelper.getBibliogramNormalCustomRedirects, + instagramHelper.setBibliogramNormalCustomRedirects, + r, + ); + latencyElement.removeEventListener("click", reloadWindow); + }); + } +); \ No newline at end of file diff --git a/src/pages/options/lbry/lbry.html b/src/pages/options/lbry/lbry.html new file mode 100644 index 0000000..074ae4b --- /dev/null +++ b/src/pages/options/lbry/lbry.html @@ -0,0 +1,125 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/lbry/lbry.js b/src/pages/options/lbry/lbry.js index 7599521..4511373 100644 --- a/src/pages/options/lbry/lbry.js +++ b/src/pages/options/lbry/lbry.js @@ -35,16 +35,19 @@ lbryHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'librarian', - 'normal', - lbryHelper, - document, - lbryHelper.getLibrarianNormalRedirectsChecks, - lbryHelper.setLibrarianNormalRedirectsChecks, - lbryHelper.getLibrarianNormalCustomRedirects, - lbryHelper.setLibrarianNormalCustomRedirects - ); + browser.storage.local.get("librarianLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'librarian', + 'normal', + lbryHelper, + document, + lbryHelper.getLibrarianNormalRedirectsChecks, + lbryHelper.setLibrarianNormalRedirectsChecks, + lbryHelper.getLibrarianNormalCustomRedirects, + lbryHelper.setLibrarianNormalCustomRedirects, + r.librarianLatency, + ); + }) commonHelper.processDefaultCustomInstances( 'librarian', @@ -56,4 +59,34 @@ lbryHelper.init().then(() => { lbryHelper.getLibrarianTorCustomRedirects, lbryHelper.setLibrarianTorCustomRedirects ) -}) \ No newline at end of file +}) + + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await lbryHelper.init(); + let redirects = lbryHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.librarian.normal).then(r => { + browser.storage.local.set({ librarianLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'librarian', + 'normal', + lbryHelper, + document, + lbryHelper.getLibrarianNormalRedirectsChecks, + lbryHelper.setLibrarianNormalRedirectsChecks, + lbryHelper.getLibrarianNormalCustomRedirects, + lbryHelper.setLibrarianNormalCustomRedirects, + r, + ); + latencyElement.removeEventListener("click", reloadWindow); + }); + } +); \ No newline at end of file diff --git a/src/pages/options/maps/maps.html b/src/pages/options/maps/maps.html new file mode 100644 index 0000000..d7c551b --- /dev/null +++ b/src/pages/options/maps/maps.html @@ -0,0 +1,105 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Frontend

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+ + +
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/maps/maps.js b/src/pages/options/maps/maps.js index 88a99ab..17c628d 100644 --- a/src/pages/options/maps/maps.js +++ b/src/pages/options/maps/maps.js @@ -32,14 +32,46 @@ mapsHelper.init().then(() => { mapsFrontendElement.value = frontend; changeFrontendsSettings(frontend); - commonHelper.processDefaultCustomInstances( - 'facil', - 'normal', - mapsHelper, - document, - mapsHelper.getFacilNormalRedirectsChecks, - mapsHelper.setFacilNormalRedirectsChecks, - mapsHelper.getFacilNormalCustomRedirects, - mapsHelper.setFacilNormalCustomRedirects - ) -}) \ No newline at end of file + browser.storage.local.get("facilLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'facil', + 'normal', + mapsHelper, + document, + mapsHelper.getFacilNormalRedirectsChecks, + mapsHelper.setFacilNormalRedirectsChecks, + mapsHelper.getFacilNormalCustomRedirects, + mapsHelper.setFacilNormalCustomRedirects, + r.facilLatency, + ) + }) +}) + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await mapsHelper.init(); + let redirects = mapsHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.facil.normal).then(r => { + browser.storage.local.set({ facilLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'facil', + 'normal', + mapsHelper, + document, + mapsHelper.getFacilNormalRedirectsChecks, + mapsHelper.setFacilNormalRedirectsChecks, + mapsHelper.getFacilNormalCustomRedirects, + mapsHelper.setFacilNormalCustomRedirects, + r, + ); + latencyElement.removeEventListener("click", reloadWindow); + }); + } +); \ No newline at end of file diff --git a/src/pages/options/medium/medium.html b/src/pages/options/medium/medium.html new file mode 100644 index 0000000..193dbbb --- /dev/null +++ b/src/pages/options/medium/medium.html @@ -0,0 +1,125 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/medium/medium.js b/src/pages/options/medium/medium.js index 5337e41..d79c1de 100644 --- a/src/pages/options/medium/medium.js +++ b/src/pages/options/medium/medium.js @@ -36,16 +36,20 @@ mediumHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'scribe', - 'normal', - mediumHelper, - document, - mediumHelper.getScribeNormalRedirectsChecks, - mediumHelper.setScribeNormalRedirectsChecks, - mediumHelper.getScribeNormalCustomRedirects, - mediumHelper.setScribeNormalCustomRedirects - ) + + browser.storage.local.get("scribeLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'scribe', + 'normal', + mediumHelper, + document, + mediumHelper.getScribeNormalRedirectsChecks, + mediumHelper.setScribeNormalRedirectsChecks, + mediumHelper.getScribeNormalCustomRedirects, + mediumHelper.setScribeNormalCustomRedirects, + r.scribeLatency, + ) + }) commonHelper.processDefaultCustomInstances( 'scribe', @@ -57,4 +61,33 @@ mediumHelper.init().then(() => { mediumHelper.getScribeTorCustomRedirects, mediumHelper.setScribeTorCustomRedirects ) -}) \ No newline at end of file +}) + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await mediumHelper.init(); + let redirects = mediumHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.scribe.normal).then(r => { + browser.storage.local.set({ scribeLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'scribe', + 'normal', + mediumHelper, + document, + mediumHelper.getScribeNormalRedirectsChecks, + mediumHelper.setScribeNormalRedirectsChecks, + mediumHelper.getScribeNormalCustomRedirects, + mediumHelper.setScribeNormalCustomRedirects, + r, + ); + latencyElement.removeEventListener("click", reloadWindow); + }); + } +); \ No newline at end of file diff --git a/src/pages/options/peertube/peertube.html b/src/pages/options/peertube/peertube.html new file mode 100644 index 0000000..5ebff09 --- /dev/null +++ b/src/pages/options/peertube/peertube.html @@ -0,0 +1,125 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/peertube/peertube.js b/src/pages/options/peertube/peertube.js index d01a6e0..0b7a09e 100644 --- a/src/pages/options/peertube/peertube.js +++ b/src/pages/options/peertube/peertube.js @@ -35,16 +35,18 @@ peertubeHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'simpleertube', - 'normal', - peertubeHelper, - document, - peertubeHelper.getSimpleertubeNormalRedirectsChecks, - peertubeHelper.setSimpleertubeNormalRedirectsChecks, - peertubeHelper.getSimpleertubeNormalCustomRedirects, - peertubeHelper.setSimpleertubeNormalCustomRedirects - ); + browser.storage.local.get("simpleertubeLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'simpleertube', + 'normal', + peertubeHelper, + document, + peertubeHelper.getSimpleertubeNormalRedirectsChecks, + peertubeHelper.setSimpleertubeNormalRedirectsChecks, + peertubeHelper.getSimpleertubeNormalCustomRedirects, + peertubeHelper.setSimpleertubeNormalCustomRedirects + ); + }) commonHelper.processDefaultCustomInstances( 'simpleertube', @@ -56,4 +58,34 @@ peertubeHelper.init().then(() => { peertubeHelper.getSimpleertubeTorCustomRedirects, peertubeHelper.setSimpleertubeTorCustomRedirects ) -}) \ No newline at end of file +}) + + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await peertubeHelper.init(); + let redirects = peertubeHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.simpleertube.normal).then(r => { + browser.storage.local.set({ simpleertubeLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'simpleertube', + 'normal', + peertubeHelper, + document, + peertubeHelper.getSimpleertubeNormalRedirectsChecks, + peertubeHelper.setSimpleertubeNormalRedirectsChecks, + peertubeHelper.getSimpleertubeNormalCustomRedirects, + peertubeHelper.setSimpleertubeNormalCustomRedirects, + r, + ); + latencyElement.removeEventListener("click", reloadWindow); + }); + } +); \ No newline at end of file diff --git a/src/pages/options/pixiv/pixiv.html b/src/pages/options/pixiv/pixiv.html new file mode 100644 index 0000000..3682509 --- /dev/null +++ b/src/pages/options/pixiv/pixiv.html @@ -0,0 +1,133 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

+ Frontend:This isn't a fully private frontend +

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/pixiv/pixiv.js b/src/pages/options/pixiv/pixiv.js index a9a11e1..fe60734 100644 --- a/src/pages/options/pixiv/pixiv.js +++ b/src/pages/options/pixiv/pixiv.js @@ -35,16 +35,19 @@ pixivHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'pixivMoe', - 'normal', - pixivHelper, - document, - pixivHelper.getPixivMoeNormalRedirectsChecks, - pixivHelper.setPixivMoeNormalRedirectsChecks, - pixivHelper.getPixivMoeNormalCustomRedirects, - pixivHelper.setPixivMoeNormalCustomRedirects - ); + + browser.storage.local.get("pixivMoeLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'pixivMoe', + 'normal', + pixivHelper, + document, + pixivHelper.getPixivMoeNormalRedirectsChecks, + pixivHelper.setPixivMoeNormalRedirectsChecks, + pixivHelper.getPixivMoeNormalCustomRedirects, + pixivHelper.setPixivMoeNormalCustomRedirects + ); + }) commonHelper.processDefaultCustomInstances( 'pixivMoe', @@ -56,4 +59,35 @@ pixivHelper.init().then(() => { pixivHelper.getPixivMoeTorCustomRedirects, pixivHelper.setPixivMoeTorCustomRedirects ) -}) \ No newline at end of file +}) + + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await pixivHelper.init(); + let redirects = pixivHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.pixivMoe.normal).then(r => { + browser.storage.local.set({ pixivMoeLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'pixivMoe', + 'normal', + pixivHelper, + document, + pixivHelper.getPixivMoeNormalRedirectsChecks, + pixivHelper.setPixivMoeNormalRedirectsChecks, + pixivHelper.getPixivMoeNormalCustomRedirects, + pixivHelper.setPixivMoeNormalCustomRedirects, + r, + ); + latencyElement.removeEventListener("click", reloadWindow); + }); + + } +); \ No newline at end of file diff --git a/src/pages/options/reddit/reddit.html b/src/pages/options/reddit/reddit.html new file mode 100644 index 0000000..2ded809 --- /dev/null +++ b/src/pages/options/reddit/reddit.html @@ -0,0 +1,188 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Frontend

+ +
+
+

Protocol

+ +
+
+

Bypass "Open in Reddit"

+ +
+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js index 1c577a9..36bb8a5 100644 --- a/src/pages/options/reddit/reddit.js +++ b/src/pages/options/reddit/reddit.js @@ -81,16 +81,19 @@ redditHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'libreddit', - 'normal', - redditHelper, - document, - redditHelper.getLibredditNormalRedirectsChecks, - redditHelper.setLibredditNormalRedirectsChecks, - redditHelper.getLibredditNormalCustomRedirects, - redditHelper.setLibredditNormalCustomRedirects - ) + browser.storage.local.get("libredditLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'libreddit', + 'normal', + redditHelper, + document, + redditHelper.getLibredditNormalRedirectsChecks, + redditHelper.setLibredditNormalRedirectsChecks, + redditHelper.getLibredditNormalCustomRedirects, + redditHelper.setLibredditNormalCustomRedirects, + r.libredditLatency, + ) + }) commonHelper.processDefaultCustomInstances( 'libreddit', @@ -103,16 +106,19 @@ redditHelper.init().then(() => { redditHelper.setLibredditTorCustomRedirects ) - commonHelper.processDefaultCustomInstances( - 'teddit', - 'normal', - redditHelper, - document, - redditHelper.getTedditNormalRedirectsChecks, - redditHelper.setTedditNormalRedirectsChecks, - redditHelper.getTedditNormalCustomRedirects, - redditHelper.setTedditNormalCustomRedirects - ); + browser.storage.local.get("tedditLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'teddit', + 'normal', + redditHelper, + document, + redditHelper.getTedditNormalRedirectsChecks, + redditHelper.setTedditNormalRedirectsChecks, + redditHelper.getTedditNormalCustomRedirects, + redditHelper.setTedditNormalCustomRedirects, + r.tedditLatency, + ); + }) commonHelper.processDefaultCustomInstances( 'teddit', @@ -126,3 +132,62 @@ redditHelper.init().then(() => { ); }) + + +let latencyLibredditElement = document.getElementById("latency-libreddit"); +let latencyLibredditLabel = document.getElementById("latency-libreddit-label"); +latencyLibredditElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyLibredditElement.addEventListener("click", reloadWindow); + await redditHelper.init(); + let redirects = redditHelper.getRedirects(); + const oldHtml = latencyLibredditLabel.innerHTML; + latencyLibredditLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLibredditLabel, redirects.libreddit.normal).then(r => { + browser.storage.local.set({ libredditLatency: r }); + latencyLibredditLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'libreddit', + 'normal', + redditHelper, + document, + redditHelper.getLibredditNormalRedirectsChecks, + redditHelper.setLibredditNormalRedirectsChecks, + redditHelper.getLibredditNormalCustomRedirects, + redditHelper.setLibredditNormalCustomRedirects, + r, + ); + latencyLibredditElement.removeEventListener("click", reloadWindow); + }); + } +); + +let latencyTedditElement = document.getElementById("latency-teddit"); +let latencyTedditLabel = document.getElementById("latency-teddit-label"); +latencyTedditElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyTedditElement.addEventListener("click", reloadWindow); + await redditHelper.init(); + let redirects = redditHelper.getRedirects(); + const oldHtml = latencyTedditLabel.innerHTML; + latencyTedditLabel.innerHTML = '...'; + commonHelper.testLatency(latencyTedditLabel, redirects.teddit.normal).then(r => { + browser.storage.local.set({ tedditLatency: r }); + latencyTedditLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'teddit', + 'normal', + redditHelper, + document, + redditHelper.getTedditNormalRedirectsChecks, + redditHelper.setTedditNormalRedirectsChecks, + redditHelper.getTedditNormalCustomRedirects, + redditHelper.setTedditNormalCustomRedirects, + r, + ); + latencyTedditElement.removeEventListener("click", reloadWindow); + }); + } +); \ No newline at end of file diff --git a/src/pages/options/search/search.html b/src/pages/options/search/search.html new file mode 100644 index 0000000..622c079 --- /dev/null +++ b/src/pages/options/search/search.html @@ -0,0 +1,300 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Frontend

+ +
+
+
+

Protocol

+ +
+
+
+

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

+
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/search/search.js b/src/pages/options/search/search.js index 0eeac5e..1483430 100644 --- a/src/pages/options/search/search.js +++ b/src/pages/options/search/search.js @@ -118,16 +118,19 @@ searchHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'searx', - 'normal', - searchHelper, - document, - searchHelper.getSearxNormalRedirectsChecks, - searchHelper.setSearxNormalRedirectsChecks, - searchHelper.getSearxNormalCustomRedirects, - searchHelper.setSearxNormalCustomRedirects - ); + browser.storage.local.get("searxLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'searx', + 'normal', + searchHelper, + document, + searchHelper.getSearxNormalRedirectsChecks, + searchHelper.setSearxNormalRedirectsChecks, + searchHelper.getSearxNormalCustomRedirects, + searchHelper.setSearxNormalCustomRedirects, + r.searxLatency + ); + }) commonHelper.processDefaultCustomInstances( 'searx', @@ -151,16 +154,19 @@ searchHelper.init().then(() => { searchHelper.setSearxI2pCustomRedirects ); - commonHelper.processDefaultCustomInstances( - 'searxng', - 'normal', - searchHelper, - document, - searchHelper.getSearxngNormalRedirectsChecks, - searchHelper.setSearxngNormalRedirectsChecks, - searchHelper.getSearxngNormalCustomRedirects, - searchHelper.setSearxngNormalCustomRedirects - ); + browser.storage.local.get("searxngLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'searxng', + 'normal', + searchHelper, + document, + searchHelper.getSearxngNormalRedirectsChecks, + searchHelper.setSearxngNormalRedirectsChecks, + searchHelper.getSearxngNormalCustomRedirects, + searchHelper.setSearxngNormalCustomRedirects, + r.searxngLatency, + ); + }) commonHelper.processDefaultCustomInstances( 'searxng', @@ -184,16 +190,19 @@ searchHelper.init().then(() => { searchHelper.setSearxngI2pCustomRedirects ); - commonHelper.processDefaultCustomInstances( - 'whoogle', - 'normal', - searchHelper, - document, - searchHelper.getWhoogleNormalRedirectsChecks, - searchHelper.setWhoogleNormalRedirectsChecks, - searchHelper.getWhoogleNormalCustomRedirects, - searchHelper.setWhoogleNormalCustomRedirects - ); + browser.storage.local.get("whoogleLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'whoogle', + 'normal', + searchHelper, + document, + searchHelper.getWhoogleNormalRedirectsChecks, + searchHelper.setWhoogleNormalRedirectsChecks, + searchHelper.getWhoogleNormalCustomRedirects, + searchHelper.setWhoogleNormalCustomRedirects, + r.whoogleLatency, + ); + }) commonHelper.processDefaultCustomInstances( 'whoogle', @@ -217,3 +226,91 @@ searchHelper.init().then(() => { searchHelper.setWhoogleI2pCustomRedirects ); }); + + +let latencySearxElement = document.getElementById("latency-searx"); +let latencySearxLabel = document.getElementById("latency-searx-label"); +latencySearxElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencySearxElement.addEventListener("click", reloadWindow); + await searchHelper.init(); + let redirects = searchHelper.getRedirects(); + const oldHtml = latencySearxLabel.innerHTML; + latencySearxLabel.innerHTML = '...'; + commonHelper.testLatency(latencySearxLabel, redirects.searx.normal).then(r => { + browser.storage.local.set({ searxLatency: r }); + latencySearxLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'searx', + 'normal', + searchHelper, + document, + searchHelper.getSearxNormalRedirectsChecks, + searchHelper.setSearxNormalRedirectsChecks, + searchHelper.getSearxNormalCustomRedirects, + searchHelper.setSearxNormalCustomRedirects, + r, + ); + latencySearxElement.removeEventListener("click", reloadWindow); + }); + } +); + +let latencySearxngElement = document.getElementById("latency-searxng"); +let latencySearxngLabel = document.getElementById("latency-searxng-label"); +latencySearxngElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencySearxngElement.addEventListener("click", reloadWindow); + await searchHelper.init(); + let redirects = searchHelper.getRedirects(); + const oldHtml = latencySearxngLabel.innerHTML; + latencySearxngLabel.innerHTML = '...'; + commonHelper.testLatency(latencySearxngLabel, redirects.searxng.normal).then(r => { + browser.storage.local.set({ searxngLatency: r }); + latencySearxngLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'searxng', + 'normal', + searchHelper, + document, + searchHelper.getSearxngNormalRedirectsChecks, + searchHelper.setSearxngNormalRedirectsChecks, + searchHelper.getSearxngNormalCustomRedirects, + searchHelper.setSearxngNormalCustomRedirects, + r, + ); + latencySearxngElement.removeEventListener("click", reloadWindow); + }); + } +); + +let latencyWhoogleElement = document.getElementById("latency-whoogle"); +let latencyWhoogleLabel = document.getElementById("latency-whoogle-label"); +latencyWhoogleElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyWhoogleElement.addEventListener("click", reloadWindow); + await searchHelper.init(); + let redirects = searchHelper.getRedirects(); + const oldHtml = latencyWhoogleLabel.innerHTML; + latencyWhoogleLabel.innerHTML = '...'; + commonHelper.testLatency(latencyWhoogleLabel, redirects.whoogle.normal).then(r => { + browser.storage.local.set({ whoogleLatency: r }); + latencyWhoogleLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'whoogle', + 'normal', + searchHelper, + document, + searchHelper.getWhoogleNormalRedirectsChecks, + searchHelper.setWhoogleNormalRedirectsChecks, + searchHelper.getWhoogleNormalCustomRedirects, + searchHelper.setWhoogleNormalCustomRedirects, + r, + ); + latencyWhoogleElement.removeEventListener("click", reloadWindow); + }); + } +); \ No newline at end of file diff --git a/src/pages/options/sendTargets/sendTargets.html b/src/pages/options/sendTargets/sendTargets.html new file mode 100644 index 0000000..d514b8f --- /dev/null +++ b/src/pages/options/sendTargets/sendTargets.html @@ -0,0 +1,125 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/sendTargets/sendTargets.js b/src/pages/options/sendTargets/sendTargets.js index 1e39e24..ae6f9e7 100644 --- a/src/pages/options/sendTargets/sendTargets.js +++ b/src/pages/options/sendTargets/sendTargets.js @@ -35,16 +35,19 @@ sendTargetsHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'send', - 'normal', - sendTargetsHelper, - document, - sendTargetsHelper.getSendNormalRedirectsChecks, - sendTargetsHelper.setSendNormalRedirectsChecks, - sendTargetsHelper.getSendNormalCustomRedirects, - sendTargetsHelper.setSendNormalCustomRedirects - ); + browser.storage.local.get("sendLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'send', + 'normal', + sendTargetsHelper, + document, + sendTargetsHelper.getSendNormalRedirectsChecks, + sendTargetsHelper.setSendNormalRedirectsChecks, + sendTargetsHelper.getSendNormalCustomRedirects, + sendTargetsHelper.setSendNormalCustomRedirects, + r.sendLatency, + ); + }) commonHelper.processDefaultCustomInstances( 'send', @@ -56,4 +59,33 @@ sendTargetsHelper.init().then(() => { sendTargetsHelper.getSendTorCustomRedirects, sendTargetsHelper.setSendTorCustomRedirects ) -}) \ No newline at end of file +}) + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await sendTargetsHelper.init(); + let redirects = sendTargetsHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.send.normal).then(r => { + browser.storage.local.set({ sendLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'send', + 'normal', + sendTargetsHelper, + document, + sendTargetsHelper.getSendNormalRedirectsChecks, + sendTargetsHelper.setSendNormalRedirectsChecks, + sendTargetsHelper.getSendNormalCustomRedirects, + sendTargetsHelper.setSendNormalCustomRedirects, + r, + ) + latencyElement.removeEventListener("click", reloadWindow) + }); + } +); \ No newline at end of file diff --git a/src/pages/options/speedtest/speedtest.html b/src/pages/options/speedtest/speedtest.html new file mode 100644 index 0000000..50a195e --- /dev/null +++ b/src/pages/options/speedtest/speedtest.html @@ -0,0 +1,125 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/speedtest/speedtest.js b/src/pages/options/speedtest/speedtest.js index bcef4de..077d644 100644 --- a/src/pages/options/speedtest/speedtest.js +++ b/src/pages/options/speedtest/speedtest.js @@ -35,6 +35,7 @@ speedtestHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); + browser.storage.local.get("librespeedLatency").then(r => { commonHelper.processDefaultCustomInstances( 'librespeed', 'normal', @@ -43,8 +44,10 @@ speedtestHelper.init().then(() => { speedtestHelper.getLibrespeedNormalRedirectsChecks, speedtestHelper.setLibrespeedNormalRedirectsChecks, speedtestHelper.getLibrespeedNormalCustomRedirects, - speedtestHelper.setLibrespeedNormalCustomRedirects + speedtestHelper.setLibrespeedNormalCustomRedirects, + r.librespeedLatency, ); + }) commonHelper.processDefaultCustomInstances( 'librespeed', @@ -56,4 +59,33 @@ speedtestHelper.init().then(() => { speedtestHelper.getLibrespeedTorCustomRedirects, speedtestHelper.setLibrespeedTorCustomRedirects ) -}) \ No newline at end of file +}) + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await speedtestHelper.init(); + let redirects = speedtestHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.librespeed.normal).then(r => { + browser.storage.local.set({ librespeedLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'librespeed', + 'normal', + speedtestHelper, + document, + speedtestHelper.getLibrespeedNormalRedirectsChecks, + speedtestHelper.setLibrespeedNormalRedirectsChecks, + speedtestHelper.getLibrespeedNormalCustomRedirects, + speedtestHelper.setLibrespeedNormalCustomRedirects, + r, + ) + latencyElement.removeEventListener("click", reloadWindow) + }); + } +); \ No newline at end of file diff --git a/src/pages/options/spotify/spotify.html b/src/pages/options/spotify/spotify.html new file mode 100644 index 0000000..cfcf34b --- /dev/null +++ b/src/pages/options/spotify/spotify.html @@ -0,0 +1,125 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+ + +
+
+ \ No newline at end of file diff --git a/src/pages/options/spotify/spotify.js b/src/pages/options/spotify/spotify.js index 8dbc6bc..d158412 100644 --- a/src/pages/options/spotify/spotify.js +++ b/src/pages/options/spotify/spotify.js @@ -35,16 +35,19 @@ spotifyHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'soju', - 'normal', - spotifyHelper, - document, - spotifyHelper.getSojuNormalRedirectsChecks, - spotifyHelper.setSojuNormalRedirectsChecks, - spotifyHelper.getSojuNormalCustomRedirects, - spotifyHelper.setSojuNormalCustomRedirects - ); + browser.storage.local.get("sojuLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'soju', + 'normal', + spotifyHelper, + document, + spotifyHelper.getSojuNormalRedirectsChecks, + spotifyHelper.setSojuNormalRedirectsChecks, + spotifyHelper.getSojuNormalCustomRedirects, + spotifyHelper.setSojuNormalCustomRedirects, + r.sojuLatency, + ); + }) commonHelper.processDefaultCustomInstances( 'soju', @@ -56,4 +59,33 @@ spotifyHelper.init().then(() => { spotifyHelper.getSojuTorCustomRedirects, spotifyHelper.setSojuTorCustomRedirects ) -}) \ No newline at end of file +}) + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await spotifyHelper.init(); + let redirects = spotifyHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.soju.normal).then(r => { + browser.storage.local.set({ sojuLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'soju', + 'normal', + spotifyHelper, + document, + spotifyHelper.getSojuNormalRedirectsChecks, + spotifyHelper.setSojuNormalRedirectsChecks, + spotifyHelper.getSojuNormalCustomRedirects, + spotifyHelper.setSojuNormalCustomRedirects, + r, + ) + latencyElement.removeEventListener("click", reloadWindow) + }); + } +); \ No newline at end of file diff --git a/src/pages/options/tiktok/tiktok.html b/src/pages/options/tiktok/tiktok.html new file mode 100644 index 0000000..52b09bb --- /dev/null +++ b/src/pages/options/tiktok/tiktok.html @@ -0,0 +1,125 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/tiktok/tiktok.js b/src/pages/options/tiktok/tiktok.js index 1f5351a..35cc668 100644 --- a/src/pages/options/tiktok/tiktok.js +++ b/src/pages/options/tiktok/tiktok.js @@ -35,17 +35,19 @@ tiktokHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'proxiTok', - 'normal', - tiktokHelper, - document, - tiktokHelper.getProxiTokNormalRedirectsChecks, - tiktokHelper.setProxiTokNormalRedirectsChecks, - tiktokHelper.getProxiTokNormalCustomRedirects, - tiktokHelper.setProxiTokNormalCustomRedirects - ); - + browser.storage.local.get("proxiTokLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'proxiTok', + 'normal', + tiktokHelper, + document, + tiktokHelper.getProxiTokNormalRedirectsChecks, + tiktokHelper.setProxiTokNormalRedirectsChecks, + tiktokHelper.getProxiTokNormalCustomRedirects, + tiktokHelper.setProxiTokNormalCustomRedirects, + r.proxiTokLatency, + ); + }) commonHelper.processDefaultCustomInstances( 'proxiTok', 'tor', @@ -56,4 +58,33 @@ tiktokHelper.init().then(() => { tiktokHelper.getProxiTokTorCustomRedirects, tiktokHelper.setProxiTokTorCustomRedirects ) -}) \ No newline at end of file +}) + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await tiktokHelper.init(); + let redirects = tiktokHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.proxiTok.normal).then(r => { + browser.storage.local.set({ proxiTokLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'proxiTok', + 'normal', + tiktokHelper, + document, + tiktokHelper.getProxiTokNormalRedirectsChecks, + tiktokHelper.setProxiTokNormalRedirectsChecks, + tiktokHelper.getProxiTokNormalCustomRedirects, + tiktokHelper.setProxiTokNormalCustomRedirects, + r, + ) + latencyElement.removeEventListener("click", reloadWindow) + }); + } +); \ No newline at end of file diff --git a/src/pages/options/translate/translate.html b/src/pages/options/translate/translate.html new file mode 100644 index 0000000..53436c9 --- /dev/null +++ b/src/pages/options/translate/translate.html @@ -0,0 +1,418 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Frontend

+ +
+
+

Protocol

+ +
+
+
+
+

From

+ +
+
+

To

+ +
+
+

Engine

+ +
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/translate/translate.js b/src/pages/options/translate/translate.js index 5da4874..999d5e3 100644 --- a/src/pages/options/translate/translate.js +++ b/src/pages/options/translate/translate.js @@ -90,16 +90,19 @@ translateHelper.init().then(() => { toElement.value = translateHelper.getTo(); simplyTranslateEngineElement.value = translateHelper.getSimplyTranslateEngine(); - commonHelper.processDefaultCustomInstances( - 'simplyTranslate', - 'normal', - translateHelper, - document, - translateHelper.getSimplyTranslateNormalRedirectsChecks, - translateHelper.setSimplyTranslateNormalRedirectsChecks, - translateHelper.getSimplyTranslateNormalCustomRedirects, - translateHelper.setSimplyTranslateNormalCustomRedirects - ); + browser.storage.local.get("simplyTranslateLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'simplyTranslate', + 'normal', + translateHelper, + document, + translateHelper.getSimplyTranslateNormalRedirectsChecks, + translateHelper.setSimplyTranslateNormalRedirectsChecks, + translateHelper.getSimplyTranslateNormalCustomRedirects, + translateHelper.setSimplyTranslateNormalCustomRedirects, + r.simplyTranslateLatency, + ) + }) commonHelper.processDefaultCustomInstances( 'simplyTranslate', @@ -112,16 +115,20 @@ translateHelper.init().then(() => { translateHelper.setSimplyTranslateTorCustomRedirects ); - commonHelper.processDefaultCustomInstances( - 'lingva', - 'normal', - translateHelper, - document, - translateHelper.getLingvaNormalRedirectsChecks, - translateHelper.setLingvaNormalRedirectsChecks, - translateHelper.getLingvaNormalCustomRedirects, - translateHelper.setLingvaNormalCustomRedirects - ); + browser.storage.local.get("lingvaLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'lingva', + 'normal', + translateHelper, + document, + translateHelper.getLingvaNormalRedirectsChecks, + translateHelper.setLingvaNormalRedirectsChecks, + translateHelper.getLingvaNormalCustomRedirects, + translateHelper.setLingvaNormalCustomRedirects, + r.lingvaLatency, + ); + }); + commonHelper.processDefaultCustomInstances( 'lingva', @@ -131,6 +138,65 @@ translateHelper.init().then(() => { translateHelper.getLingvaTorRedirectsChecks, translateHelper.setLingvaTorRedirectsChecks, translateHelper.getLingvaTorCustomRedirects, - translateHelper.setLingvaTorCustomRedirects + translateHelper.setLingvaTorCustomRedirects, ) -}); \ No newline at end of file +}); + + +let latencySimplyTranslateElement = document.getElementById("latency-simplyTranslate"); +let latencySimplyTranslateLabel = document.getElementById("latency-simplyTranslate-label"); +latencySimplyTranslateElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencySimplyTranslateElement.addEventListener("click", reloadWindow); + await translateHelper.init(); + let redirects = translateHelper.getRedirects(); + const oldHtml = latencySimplyTranslateLabel.innerHTML; + latencySimplyTranslateLabel.innerHTML = '...'; + commonHelper.testLatency(latencySimplyTranslateLabel, redirects.simplyTranslate.normal).then(r => { + browser.storage.local.set({ simplyTranslateLatency: r }); + latencySimplyTranslateLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'simplyTranslate', + 'normal', + translateHelper, + document, + translateHelper.getSimplyTranslateNormalRedirectsChecks, + translateHelper.setSimplyTranslateNormalRedirectsChecks, + translateHelper.getSimplyTranslateNormalCustomRedirects, + translateHelper.setSimplyTranslateNormalCustomRedirects, + r, + ); + latencySimplyTranslateElement.removeEventListener("click", reloadWindow); + }); + } +); + +let latencyLingvaElement = document.getElementById("latency-lingva"); +let latencyLingvaLabel = document.getElementById("latency-lingva-label"); +latencyLingvaElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyLingvaElement.addEventListener("click", reloadWindow); + await translateHelper.init(); + let redirects = translateHelper.getRedirects(); + const oldHtml = latencyLingvaLabel.innerHTML; + latencyLingvaLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLingvaLabel, redirects.lingva.normal).then(r => { + browser.storage.local.set({ lingvaLatency: r }); + latencyLingvaLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'lingva', + 'normal', + translateHelper, + document, + translateHelper.getLingvaNormalRedirectsChecks, + translateHelper.setLingvaNormalRedirectsChecks, + translateHelper.getLingvaNormalCustomRedirects, + translateHelper.setLingvaNormalCustomRedirects, + r, + ); + latencyLingvaElement.removeEventListener("click", reloadWindow); + }); + } +); \ No newline at end of file diff --git a/src/pages/options/twitter/twitter.html b/src/pages/options/twitter/twitter.html new file mode 100644 index 0000000..6d8e0e6 --- /dev/null +++ b/src/pages/options/twitter/twitter.html @@ -0,0 +1,227 @@ + + + + + + + + General + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+

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

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/twitter/twitter.js b/src/pages/options/twitter/twitter.js index b86fc19..4cb3164 100644 --- a/src/pages/options/twitter/twitter.js +++ b/src/pages/options/twitter/twitter.js @@ -93,16 +93,20 @@ function init() { muteVideos.checked = twitterHelper.getMuteVideos(); autoplayGifs.checked = twitterHelper.getAutoplayGifs(); - commonHelper.processDefaultCustomInstances( - 'nitter', - 'normal', - twitterHelper, - document, - twitterHelper.getNitterNormalRedirectsChecks, - twitterHelper.setNitterNormalRedirectsChecks, - twitterHelper.getNitterNormalCustomRedirects, - twitterHelper.setNitterNormalCustomRedirects - ) + browser.storage.local.get("nitterLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'nitter', + 'normal', + twitterHelper, + document, + twitterHelper.getNitterNormalRedirectsChecks, + twitterHelper.setNitterNormalRedirectsChecks, + twitterHelper.getNitterNormalCustomRedirects, + twitterHelper.setNitterNormalCustomRedirects, + r.nitterLatency, + ); + }); + commonHelper.processDefaultCustomInstances( 'nitter', 'tor', @@ -116,3 +120,32 @@ function init() { }); } init(); + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await twitterHelper.init(); + let redirects = twitterHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.nitter.normal).then(r => { + browser.storage.local.set({ nitterLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'nitter', + 'normal', + twitterHelper, + document, + twitterHelper.getNitterNormalRedirectsChecks, + twitterHelper.setNitterNormalRedirectsChecks, + twitterHelper.getNitterNormalCustomRedirects, + twitterHelper.setNitterNormalCustomRedirects, + r, + ) + latencyElement.removeEventListener("click", reloadWindow) + }); + } +); \ No newline at end of file diff --git a/src/pages/options/wikipedia/wikipedia.html b/src/pages/options/wikipedia/wikipedia.html new file mode 100644 index 0000000..b7fcc40 --- /dev/null +++ b/src/pages/options/wikipedia/wikipedia.html @@ -0,0 +1,146 @@ + + + + + + + + Wikipedia + + + + + +
+
+

Enable

+ +
+
+

Protocol

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/wikipedia/wikipedia.js b/src/pages/options/wikipedia/wikipedia.js index a2dafbf..526068b 100644 --- a/src/pages/options/wikipedia/wikipedia.js +++ b/src/pages/options/wikipedia/wikipedia.js @@ -22,17 +22,17 @@ function changeProtocolSettings(protocol) { if (protocol == 'normal') { normalDiv.style.display = 'block'; torDiv.style.display = 'none'; - i2pDiv.style.display = 'none'; + i2pDiv.style.display = 'none'; } else if (protocol == 'tor') { normalDiv.style.display = 'none'; torDiv.style.display = 'block'; - i2pDiv.style.display = 'none'; + i2pDiv.style.display = 'none'; } else if (protocol == 'i2p') { - normalDiv.style.display = 'none'; - torDiv.style.display = 'none'; - i2pDiv.style.display = 'block'; + normalDiv.style.display = 'none'; + torDiv.style.display = 'none'; + i2pDiv.style.display = 'block'; } } @@ -44,16 +44,19 @@ wikipediaHelper.init().then(() => { protocolElement.value = protocol; changeProtocolSettings(protocol); - commonHelper.processDefaultCustomInstances( - 'wikiless', - 'normal', - wikipediaHelper, - document, - wikipediaHelper.getWikilessNormalRedirectsChecks, - wikipediaHelper.setWikilessNormalRedirectsChecks, - wikipediaHelper.getWikilessNormalCustomRedirects, - wikipediaHelper.setWikilessNormalCustomRedirects - ) + browser.storage.local.get("wikilessLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'wikiless', + 'normal', + wikipediaHelper, + document, + wikipediaHelper.getWikilessNormalRedirectsChecks, + wikipediaHelper.setWikilessNormalRedirectsChecks, + wikipediaHelper.getWikilessNormalCustomRedirects, + wikipediaHelper.setWikilessNormalCustomRedirects, + r.wikilessLatency, + ); + }) commonHelper.processDefaultCustomInstances( 'wikiless', @@ -67,13 +70,42 @@ wikipediaHelper.init().then(() => { ) commonHelper.processDefaultCustomInstances( - 'wikiless', - 'i2p', - wikipediaHelper, - document, - wikipediaHelper.getWikilessI2pRedirectsChecks, - wikipediaHelper.setWikilessI2pRedirectsChecks, - wikipediaHelper.getWikilessI2pCustomRedirects, - wikipediaHelper.setWikilessI2pCustomRedirects + 'wikiless', + 'i2p', + wikipediaHelper, + document, + wikipediaHelper.getWikilessI2pRedirectsChecks, + wikipediaHelper.setWikilessI2pRedirectsChecks, + wikipediaHelper.getWikilessI2pCustomRedirects, + wikipediaHelper.setWikilessI2pCustomRedirects ) }) + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await wikipediaHelper.init(); + let redirects = wikipediaHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.wikiless.normal).then(r => { + browser.storage.local.set({ wikilessLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'wikiless', + 'normal', + wikipediaHelper, + document, + wikipediaHelper.getWikilessNormalRedirectsChecks, + wikipediaHelper.setWikilessNormalRedirectsChecks, + wikipediaHelper.getWikilessNormalCustomRedirects, + wikipediaHelper.setWikilessNormalCustomRedirects, + r, + ) + latencyElement.removeEventListener("click", reloadWindow) + }); + } +); \ No newline at end of file diff --git a/src/pages/options/youtube/invidious.js b/src/pages/options/youtube/invidious.js index d390ef8..af94c53 100644 --- a/src/pages/options/youtube/invidious.js +++ b/src/pages/options/youtube/invidious.js @@ -118,6 +118,7 @@ function init() { feed_menu0.value = youtubeHelper.getInvidiousFeedMenuList()[0]; feed_menu1.value = youtubeHelper.getInvidiousFeedMenuList()[1]; + browser.storage.local.get("invidiousLatency").then(r => { commonHelper.processDefaultCustomInstances( 'invidious', 'normal', @@ -126,8 +127,10 @@ function init() { youtubeHelper.getInvidiousNormalRedirectsChecks, youtubeHelper.setInvidiousNormalRedirectsChecks, youtubeHelper.getInvidiousNormalCustomRedirects, - youtubeHelper.setInvidiousNormalCustomRedirects - ); + youtubeHelper.setInvidiousNormalCustomRedirects, + r.invidiousLatency + ); + }) commonHelper.processDefaultCustomInstances( 'invidious', @@ -142,4 +145,33 @@ function init() { }); } -init() \ No newline at end of file +init() + +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( + 'invidious', + 'normal', + youtubeHelper, + document, + youtubeHelper.getInvidiousNormalRedirectsChecks, + youtubeHelper.setInvidiousNormalRedirectsChecks, + youtubeHelper.getInvidiousNormalCustomRedirects, + youtubeHelper.setInvidiousNormalCustomRedirects, + r, + ); + 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 index bb851ba..a0bc45a 100644 --- a/src/pages/options/youtube/piped.js +++ b/src/pages/options/youtube/piped.js @@ -110,16 +110,20 @@ function init() { volume.value = youtubeHelper.getVolume(); volumeValue.textContent = `${youtubeHelper.getVolume()}%`; - commonHelper.processDefaultCustomInstances( - 'piped', - 'normal', - youtubeHelper, - document, - youtubeHelper.getPipedNormalRedirectsChecks, - youtubeHelper.setPipedNormalRedirectsChecks, - youtubeHelper.getPipedNormalCustomRedirects, - youtubeHelper.setPipedNormalCustomRedirects - ); + browser.storage.local.get("pipedLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'piped', + 'normal', + youtubeHelper, + document, + youtubeHelper.getPipedNormalRedirectsChecks, + youtubeHelper.setPipedNormalRedirectsChecks, + youtubeHelper.getPipedNormalCustomRedirects, + youtubeHelper.setPipedNormalCustomRedirects, + r.pipedLatency, + ); + }); + commonHelper.processDefaultCustomInstances( 'piped', 'tor', @@ -132,4 +136,33 @@ function init() { ); }); } -init(); \ No newline at end of file +init(); + +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( + 'piped', + 'normal', + youtubeHelper, + document, + youtubeHelper.getPipedNormalRedirectsChecks, + youtubeHelper.setPipedNormalRedirectsChecks, + youtubeHelper.getPipedNormalCustomRedirects, + youtubeHelper.setPipedNormalCustomRedirects, + r, + ); + latencyPipedElement.removeEventListener("click", reloadWindow); + }); + } +); diff --git a/src/pages/options/youtube/pipedMaterial.js b/src/pages/options/youtube/pipedMaterial.js index 60b2c42..bc31289 100644 --- a/src/pages/options/youtube/pipedMaterial.js +++ b/src/pages/options/youtube/pipedMaterial.js @@ -86,17 +86,20 @@ function init() { volumeElement.value = youtubeHelper.getVolume(); volumeValueElement.textContent = `${youtubeHelper.getVolume()}%`; + browser.storage.local.get("pipedMaterialLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'pipedMaterial', + 'normal', + youtubeHelper, + document, + youtubeHelper.getPipedMaterialNormalRedirectsChecks, + youtubeHelper.setPipedMaterialNormalRedirectsChecks, + youtubeHelper.getPipedMaterialNormalCustomRedirects, + youtubeHelper.setPipedMaterialNormalCustomRedirects, + r.pipedMaterialLatency, + ); + }); - commonHelper.processDefaultCustomInstances( - 'pipedMaterial', - 'normal', - youtubeHelper, - document, - youtubeHelper.getPipedMaterialNormalRedirectsChecks, - youtubeHelper.setPipedMaterialNormalRedirectsChecks, - youtubeHelper.getPipedMaterialNormalCustomRedirects, - youtubeHelper.setPipedMaterialNormalCustomRedirects - ); commonHelper.processDefaultCustomInstances( 'pipedMaterial', 'tor', @@ -109,4 +112,33 @@ function init() { ); }); } -init(); \ No newline at end of file +init(); + +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( + 'pipedMaterial', + 'normal', + youtubeHelper, + document, + youtubeHelper.getPipedMaterialNormalRedirectsChecks, + youtubeHelper.setPipedMaterialNormalRedirectsChecks, + youtubeHelper.getPipedMaterialNormalCustomRedirects, + youtubeHelper.setPipedMaterialNormalCustomRedirects, + r, + ); + 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 new file mode 100644 index 0000000..67c8678 --- /dev/null +++ b/src/pages/options/youtube/youtube.html @@ -0,0 +1,1302 @@ + + + + + + + + Document + + + + + +
+
+

Enable

+ +
+
+

Frontend

+ +
+
+
+
+

Embedded Videos Frontend

+ +
+
+
+
+
+

Protocol

+ +
+
+

Redirect Type

+ +
+
+

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

+   + +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

+ 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

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

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

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

+
+
+
+
+

Custom Instances

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

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/src/pages/options/youtubeMusic/youtubeMusic.html b/src/pages/options/youtubeMusic/youtubeMusic.html new file mode 100644 index 0000000..eae611d --- /dev/null +++ b/src/pages/options/youtubeMusic/youtubeMusic.html @@ -0,0 +1,98 @@ + + + + + + + + Document + + + + + +
+
+

Enable

+ +
+
+
+
+
+

Default Instances

+
+
+
+
+

Custom Instances

+
+
+
+ + + + + +
+
+
+ + +
+
+
+ + + \ No newline at end of file diff --git a/src/pages/options/youtubeMusic/youtubeMusic.js b/src/pages/options/youtubeMusic/youtubeMusic.js index 597458d..98d8b9a 100644 --- a/src/pages/options/youtubeMusic/youtubeMusic.js +++ b/src/pages/options/youtubeMusic/youtubeMusic.js @@ -9,14 +9,46 @@ disableYoutubeMusicElement.addEventListener("change", youtubeMusicHelper.init().then(() => { disableYoutubeMusicElement.checked = !youtubeMusicHelper.getDisable(); - commonHelper.processDefaultCustomInstances( - 'beatbump', - 'normal', - youtubeMusicHelper, - document, - youtubeMusicHelper.getBeatbumpNormalRedirectsChecks, - youtubeMusicHelper.setBeatbumpNormalRedirectsChecks, - youtubeMusicHelper.getBeatbumpNormalCustomRedirects, - youtubeMusicHelper.setBeatbumpNormalCustomRedirects - ) + browser.storage.local.get("beatbumpLatency").then(r => { + commonHelper.processDefaultCustomInstances( + 'beatbump', + 'normal', + youtubeMusicHelper, + document, + youtubeMusicHelper.getBeatbumpNormalRedirectsChecks, + youtubeMusicHelper.setBeatbumpNormalRedirectsChecks, + youtubeMusicHelper.getBeatbumpNormalCustomRedirects, + youtubeMusicHelper.setBeatbumpNormalCustomRedirects, + r.beatbumpLatency, + ); + }) }); + +let latencyElement = document.getElementById("latency"); +let latencyLabel = document.getElementById("latency-label"); +latencyElement.addEventListener("click", + async () => { + let reloadWindow = () => location.reload(); + latencyElement.addEventListener("click", reloadWindow); + await youtubeMusicHelper.init(); + let redirects = youtubeMusicHelper.getRedirects(); + const oldHtml = latencyLabel.innerHTML; + latencyLabel.innerHTML = '...'; + commonHelper.testLatency(latencyLabel, redirects.beatbump.normal).then(r => { + browser.storage.local.set({ beatbumpLatency: r }); + latencyLabel.innerHTML = oldHtml; + commonHelper.processDefaultCustomInstances( + 'beatbump', + 'normal', + youtubeMusicHelper, + document, + youtubeMusicHelper.getBeatbumpNormalRedirectsChecks, + youtubeMusicHelper.setBeatbumpNormalRedirectsChecks, + youtubeMusicHelper.getBeatbumpNormalCustomRedirects, + youtubeMusicHelper.setBeatbumpNormalCustomRedirects, + r, + ) + latencyElement.removeEventListener("click", reloadWindow) + }); + } +); \ No newline at end of file