From 4983a7ad9f53f10a1b938b83b36bb0594ba4f295 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Wed, 8 Feb 2023 01:41:32 +0300 Subject: Re-added Test Latency in a better implementation https://github.com/libredirect/libredirect/issues/605 --- src/pages/options/index.js | 47 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'src/pages/options/index.js') 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 = 'pinging...' + 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 = `${text}` + + } +} \ No newline at end of file -- cgit 1.4.1