about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-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 differdiff --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")