about summary refs log tree commit diff stats
path: root/src/pages/options/index.js
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-02-08 01:41:32 +0300
committerManeraKai <manerakai@protonmail.com>2023-02-08 01:41:38 +0300
commit4983a7ad9f53f10a1b938b83b36bb0594ba4f295 (patch)
treeb855d320c37acf9a587f159be7d51ec8b8eedd4c /src/pages/options/index.js
parent2.5.3 => 2.5.2 (diff)
downloadlibredirect-4983a7ad9f53f10a1b938b83b36bb0594ba4f295.zip
Re-added Test Latency in a better implementation https://github.com/libredirect/libredirect/issues/605
Diffstat (limited to 'src/pages/options/index.js')
-rw-r--r--src/pages/options/index.js47
1 files changed, 46 insertions, 1 deletions
diff --git a/src/pages/options/index.js b/src/pages/options/index.js
index a68fa718..18fb120f 100644
--- a/src/pages/options/index.js
+++ b/src/pages/options/index.js
@@ -90,6 +90,11 @@ async function loadPage(path) {
 		for (const frontend in config.services[service].frontends) {
 			if (config.services[service].frontends[frontend].instanceList) {
 				processCustomInstances(frontend, document)
+				document.getElementById(`ping-${frontend}`).addEventListener("click", async () => {
+					document.getElementById(`ping-${frontend}`).getElementsByTagName('x')[0].innerHTML = "Pinging..."
+					await ping(frontend)
+					document.getElementById(`ping-${frontend}`).getElementsByTagName('x')[0].innerHTML = "Ping instances"
+				})
 			}
 		}
 
@@ -228,4 +233,44 @@ function createList(frontend, networks, document, redirects, blacklist) {
 
 const r = window.location.href.match(/#(.*)/)
 if (r) loadPage(r[1])
-else loadPage("general")
\ No newline at end of file
+else loadPage("general")
+
+async function ping(frontend) {
+	let instanceElements = document.getElementById(frontend)
+		.getElementsByClassName('clearnet')[0]
+		.getElementsByTagName('x')
+	for (const element of instanceElements) {
+		let span = element.getElementsByTagName('span')[0]
+		if (!span) span = document.createElement('span')
+		span.innerHTML = '<span style="color:lightblue">pinging...</span>'
+		element.appendChild(span)
+
+		const href = element.getElementsByTagName('a')[0].href
+		let time = await utils.ping(href)
+
+		let color
+		let text
+
+		if (time < 5000) {
+			text = `${time}ms`
+			if (time <= 1000) { color = "green" }
+			else if (time <= 2000) color = "orange"
+		}
+		else if (time >= 5000) {
+			color = "red"
+			if (time == 5000) {
+				text = "5000ms+"
+			}
+			if (time > 5000) {
+				text = `Error: ${time - 5000}`
+			}
+		}
+		else {
+			color = "red"
+			text = 'Server not found'
+		}
+
+		span.innerHTML = `<span style="color:${color};">${text}</span>`
+
+	}
+}
\ No newline at end of file