aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-08-01 13:31:16 +0100
committerBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-08-01 13:31:16 +0100
commit4c69fa7e292a3896ef5f4daf1e6dea3c9bd0b446 (patch)
tree4e7df41cb5c94ac08368ef77c80d2272b873fd78 /src
parentMinor spelling mistake (diff)
downloadlibredirect-4c69fa7e292a3896ef5f4daf1e6dea3c9bd0b446.zip
Latency threshold, LBRY/Odysee -> LBRY
Closes https://github.com/libredirect/libredirect/pull/405
Diffstat (limited to 'src')
-rw-r--r--src/assets/images/imgur.png (renamed from src/assets/images/imgur-icon.png)bin26675 -> 26675 bytes
-rw-r--r--src/assets/javascripts/general.js1
-rw-r--r--src/assets/javascripts/utils.js63
-rw-r--r--src/pages/options/index.html15
-rw-r--r--src/pages/options/index.pug2
-rw-r--r--src/pages/options/widgets/general.pug10
-rw-r--r--src/pages/popup/popup.html4
-rw-r--r--src/pages/popup/popup.pug2
8 files changed, 74 insertions, 23 deletions
diff --git a/src/assets/images/imgur-icon.png b/src/assets/images/imgur.png
index c23a45b2..c23a45b2 100644
--- a/src/assets/images/imgur-icon.png
+++ b/src/assets/images/imgur.png
Binary files differ
diff --git a/src/assets/javascripts/general.js b/src/assets/javascripts/general.js
index 0b34c148..113dc6f7 100644
--- a/src/assets/javascripts/general.js
+++ b/src/assets/javascripts/general.js
@@ -32,6 +32,7 @@ async function initDefaults() {
firstPartyIsolate: false,
protocol: "normal",
protocolFallback: true,
+ latencyThreshold: 1000
},
() => resolve()
)
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index 9a7d37b3..52848de7 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -247,34 +247,65 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
})
}
-async function ping(href) {
+function ping(href) {
return new Promise(async resolve => {
+ let average = 0
+ let time
+ for (let i = 0; i < 3; i++) {
+ time = await pingOnce(href)
+ if (i == 0) continue
+ if (time >= 5000) {
+ resolve(time)
+ return
+ }
+ average += time
+ }
+ average = parseInt(average / 3)
+ resolve(average)
+ })
+}
+
+function pingOnce(href) {
+ return new Promise(async resolve => {
+ let started
let http = new XMLHttpRequest()
- http.open("GET", `${href}?_=${new Date().getTime()}`, /*async*/ true)
http.timeout = 5000
- let started = new Date().getTime()
+ http.ontimeout = () => resolve(5000)
+ http.onerror = () => resolve()
http.onreadystatechange = () => {
if (http.readyState == 2) {
if (http.status == 200) {
let ended = new Date().getTime()
http.abort()
resolve(ended - started)
- } else resolve(5000 + http.status)
+ } else {
+ resolve(5000 + http.status)
+ }
}
+
}
- http.ontimeout = () => resolve(5000)
- http.onerror = () => resolve()
- try {
- http.send(null)
- } catch (exception) {
- resolve()
- }
+ http.open("GET", `${href}?_=${new Date().getTime()}`, true)
+ started = new Date().getTime()
+ http.send(null)
})
}
+
-async function testLatency(element, instances) {
+async function testLatency(element, instances, frontend) {
return new Promise(async resolve => {
let myList = {}
+ let latencyThreshold
+ let redirectsChecks = []
+ browser.storage.local.get(
+ [
+ "latencyThreshold",
+ `${frontend}NormalRedirectsChecks`
+ ],
+ r => {
+ latencyThreshold = r.latencyThreshold
+ redirectsChecks = r[`${frontend}NormalRedirectsChecks`]
+ }
+ )
for (const href of instances)
await ping(href).then(time => {
if (time) {
@@ -284,6 +315,12 @@ async function testLatency(element, instances) {
else if (time <= 2000) color = "orange"
else color = "red"
+ if (time > latencyThreshold) {
+ redirectsChecks.splice(redirectsChecks.indexOf(href), 1)
+ }
+
+ browser.storage.local.set({ [`${frontend}NormalRedirectsChecks`]: redirectsChecks })
+
let text
if (time == 5000) text = "5000ms+"
else if (time > 5000) text = `ERROR: ${time - 5000}`
@@ -487,7 +524,7 @@ function latency(name, frontend, document, location) {
let redirects = r[key]
const oldHtml = latencyLabel.innerHTML
latencyLabel.innerHTML = "..."
- testLatency(latencyLabel, redirects[frontend].normal).then(r => {
+ testLatency(latencyLabel, redirects[frontend].normal, frontend).then(r => {
browser.storage.local.set({ [`${frontend}Latency`]: r })
latencyLabel.innerHTML = oldHtml
processDefaultCustomInstances(name, frontend, "normal", document)
diff --git a/src/pages/options/index.html b/src/pages/options/index.html
index a868ad3a..afad0bf9 100644
--- a/src/pages/options/index.html
+++ b/src/pages/options/index.html
@@ -21,7 +21,7 @@
<div class="title"> <img src="../../../assets/images/instagram-icon.png"><a href="#instagram" data-localise="__MSG_instagram__">Instagram</a></div>
<div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="#tiktok" data-localise="__MSG_tiktok__">TikTok</a></div>
<div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="#reddit" data-localise="__MSG_reddit__">Reddit</a></div>
- <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="#imgur" data-localise="__MSG_imgur__">Imgur</a></div>
+ <div class="title"> <img src="../../../assets/images/imgur.png"><a href="#imgur" data-localise="__MSG_imgur__">Imgur</a></div>
<div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="#wikipedia" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
<div class="title">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
@@ -34,7 +34,7 @@
<div class="title"><img src="../../../assets/images/imdb.svg"><a href="#imdb" data-localise="__MSG_imdb__">IMDb</a></div>
<div class="title"><img src="../../../assets/images/reuters.svg"><a href="#reuters" data-localise="__MSG_reuters__">Reuters</a></div>
<div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="#peertube" data-localise="__MSG_peertube__">PeerTube</a></div>
- <div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="#lbry" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
+ <div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="#lbry" data-localise="__MSG_lbry__">LBRY</a></div>
<div class="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"></path>
@@ -94,6 +94,13 @@
<h4 data-localise="__MSG_autoRedirect__"></h4>
<input id="auto-redirect" type="checkbox">
</div>
+ <form>
+ <div class="some-block option-block">
+ <h4 data-localise="__MSG_latencyThreshold">Latency Threshold</h4>
+ <output id="latency-output" for="latencyInput" name="latencyOutput"></output>
+ <input id="latency-input" type="range" min="50" max="5000" value="1000" name="latencyInput" step="50">
+ </div>
+ </form>
<div class="some-block option-block">
<h4 data-localise="__MSG_exceptions__"></h4>
</div>
@@ -173,7 +180,7 @@
<input id="tiktok" type="checkbox">
</div>
<div>
- <div> <img src="../../../assets/images/imgur-icon.png">
+ <div> <img src="../../../assets/images/imgur.png">
<x data-localise="__MSG_imgur__">Imgur</x>
</div>
<input id="imgur" type="checkbox">
@@ -254,7 +261,7 @@
</div>
<div>
<div> <img src="../../../assets/images/lbry-icon.png">
- <x data-localise="__MSG_lbry__">LBRY/Odysee</x>
+ <x data-localise="__MSG_lbry__">LBRY</x>
</div>
<input id="lbry" type="checkbox">
</div>
diff --git a/src/pages/options/index.pug b/src/pages/options/index.pug
index 553f918f..3711fdac 100644
--- a/src/pages/options/index.pug
+++ b/src/pages/options/index.pug
@@ -33,4 +33,4 @@ html#elementToShowWithJavaScript(lang="en")
include ./widgets/sendTargets.pug
include ./widgets/about.pug
- script(type="module" src="./index.js") \ No newline at end of file
+ script(type="module" src="./index.js")
diff --git a/src/pages/options/widgets/general.pug b/src/pages/options/widgets/general.pug
index e04e9e2a..e523d5bb 100644
--- a/src/pages/options/widgets/general.pug
+++ b/src/pages/options/widgets/general.pug
@@ -31,6 +31,12 @@ section#general_page.option-block
h4(data-localise="__MSG_autoRedirect__")
input#auto-redirect(type="checkbox")
+ form
+ .some-block.option-block
+ h4(data-localise="__MSG_latencyThreshold") Latency Threshold
+ output#latency-output(for="latencyInput" name="latencyOutput")
+ input#latency-input(type="range" min="50" max="5000" value="1000" name="latencyInput" step="50")
+
.some-block.option-block
h4(data-localise="__MSG_exceptions__")
@@ -117,7 +123,7 @@ section#general_page.option-block
div
div
- img(src="../../../assets/images/imgur-icon.png")
+ img(src="../../../assets/images/imgur.png")
x(data-localise="__MSG_imgur__") Imgur
input#imgur(type="checkbox")
@@ -190,7 +196,7 @@ section#general_page.option-block
div
div
img(src="../../../assets/images/lbry-icon.png")
- x(data-localise="__MSG_lbry__") LBRY/Odysee
+ x(data-localise="__MSG_lbry__") LBRY
input#lbry(type="checkbox")
div
diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html
index 7493ecbe..25f70f48 100644
--- a/src/pages/popup/popup.html
+++ b/src/pages/popup/popup.html
@@ -28,7 +28,7 @@
<h4 data-localise="__MSG_tiktok__">TikTok</h4></a>
<input class="disable-tiktok" type="checkbox"/>
</div>
- <div class="imgur some-block"><a class="title" href="https://imgur.com"><img src="../../assets/images/imgur-icon.png"/>
+ <div class="imgur some-block"><a class="title" href="https://imgur.com"><img src="../../assets/images/imgur.png"/>
<h4 data-localise="__MSG_imgur__">Imgur</h4></a>
<input class="disable-imgur" type="checkbox"/>
</div>
@@ -122,7 +122,7 @@
<h4 data-localise="__MSG_tiktok__">TikTok</h4></a>
<input class="disable-tiktok" type="checkbox"/>
</div>
- <div class="imgur some-block"><a class="title" href="https://imgur.com"><img src="../../assets/images/imgur-icon.png"/>
+ <div class="imgur some-block"><a class="title" href="https://imgur.com"><img src="../../assets/images/imgur.png"/>
<h4 data-localise="__MSG_imgur__">Imgur</h4></a>
<input class="disable-imgur" type="checkbox"/>
</div>
diff --git a/src/pages/popup/popup.pug b/src/pages/popup/popup.pug
index cd4d3713..7da687cc 100644
--- a/src/pages/popup/popup.pug
+++ b/src/pages/popup/popup.pug
@@ -33,7 +33,7 @@ mixin services
.imgur.some-block
a.title(href="https://imgur.com")
- img(src="../../assets/images/imgur-icon.png")
+ img(src="../../assets/images/imgur.png")
h4(data-localise="__MSG_imgur__") Imgur
input.disable-imgur(type="checkbox")