From 3584c7c36b4056e9de150fd3cdfe22ebe6b3086c Mon Sep 17 00:00:00 2001 From: kollucharan <132676020+kollucharan@users.noreply.github.com> Date: Tue, 11 Feb 2025 14:56:55 +0530 Subject: [PATCH 1/5] added status ,changed logo --- docker/standalone.php | 1582 ++++++++++++++++++++++------------------- index.html | 150 +++- logo.png | Bin 3293 -> 4399 bytes 3 files changed, 1015 insertions(+), 717 deletions(-) diff --git a/docker/standalone.php b/docker/standalone.php index ed714faf8..e9456909d 100755 --- a/docker/standalone.php +++ b/docker/standalone.php @@ -22,716 +22,872 @@ function I(i) { return document.getElementById(i); } s.setParameter("getIp_ispInfo_distance", "= getenv("DISTANCE") ?>"); - var s = new Speedtest(); //create speedtest object - s.setParameter("telemetry_level", "basic"); //enable telemetry - - var meterBk = /Trident.*rv:(\d+\.\d+)/i.test(navigator.userAgent) - ? "#EAEAEA" - : "#80808040"; - var dlColor = "#6060AA", - ulColor = "#616161"; - var progColor = meterBk; - - function mbpsToAmount(s) { - return 1 - 1 / Math.pow(1.3, Math.sqrt(s)); - } - function format(d) { - d = Number(d); - if (d < 10) return d.toFixed(2); - if (d < 100) return d.toFixed(1); - return d.toFixed(0); - } - - // 3: Good - // 2: Average - // 1: Poor - // "": Empty - - function classifySpeed(value) { - if (value == "") return 0; - if (value > 50) return 3; - if (value >= 10) return 2; - return 1; - } - - function classifySpeedUpload(value) { - if (value == "") return 0; - if (value > 20) return 3; - if (value >= 5) return 2; - return 1; - } - - function updateDlColor(value) { - const dl_text_element = document.getElementById("dlText"); - const speed_classification = classifySpeed(value); - - switch (speed_classification) { - case 3: - dl_text_element.style.color = "#16A34A"; - break; - case 2: - dl_text_element.style.color = "#CA8A04"; - break; - case 1: - dl_text_element.style.color = "#DC2626"; - break; - case 0: - dl_text_element.style.color = "#111827"; - break; - - default: - dl_text_element.style.color = "#111827"; - } - } - - function updateUlColor(value) { - const ul_text_element = document.getElementById("ulText"); - const speed_classification = classifySpeedUpload(value); - - switch (speed_classification) { - case 3: - ul_text_element.style.color = "#16A34A"; - break; - case 2: - ul_text_element.style.color = "#CA8A04"; - break; - case 1: - ul_text_element.style.color = "#DC2626"; - break; - case 0: - ul_text_element.style.color = "#111827"; - break; - - default: - ul_element.style.color = "#111827"; - } - } - - function classifyPing(value) { - if (value == "") return 0; - if (value > 100) return 1; - if (value >= 20) return 2; - return 3; - } - - function updatePingColor(value) { - const ping_element = document.getElementById("pingText"); - const ping_classification = classifyPing(value); - - switch (ping_classification) { - case 3: - ping_element.style.color = "#16A34A"; - break; - case 2: - ping_element.style.color = "#CA8A04"; - break; - case 1: - ping_element.style.color = "#DC2626"; - break; - case 0: - ping_element.style.color = "#111827"; - break; - - default: - ping_element.style.color = "#111827"; - } - } - - function classifyJitter(value) { - if (value == "") return 0; - if (value > 20) return 1; - if (value >= 5) return 2; - return 3; - } - - function updateJitterColor(value) { - const jitter_element = document.getElementById("jitText"); - const jitter_classification = classifyJitter(value); - - // jitter_classification === 2?jitter_element.style.color = "#16A34A":(jitter_classification === 1?jitter_element.style.color = "#CA8A04":jitter_element.style.color = "#DC2626"); - - switch (jitter_classification) { - case 3: - jitter_element.style.color = "#16A34A"; - break; - case 2: - jitter_element.style.color = "#CA8A04"; - break; - case 1: - jitter_element.style.color = "#DC2626"; - break; - case 0: - jitter_element.style.color = "#111827"; - break; - - default: - jitter_element.style.color = "#111827"; - } - } - - //UI CODE - var uiData = null; - function startStop() { - if (s.getState() == 3) { - //speedtest is running, abort - s.abort(); - data = null; - I("startStopBtn").className = ""; - initUI(); - } else { - //test is not running, begin - I("startStopBtn").className = "running"; - I("shareArea").style.display = "none"; - s.onupdate = function (data) { - uiData = data; - }; - s.onend = function (aborted) { - I("startStopBtn").className = ""; - updateUI(true); - if (!aborted) { - //if testId is present, show sharing panel, otherwise do nothing - // I("startStopBtn").textContent = "Try Again"; - I("startStopBtn").className = "new-class"; - try { - var testId = uiData.testId; - if (testId != null) { - var shareURL = - window.location.href.substring( - 0, - window.location.href.lastIndexOf("/") - ) + - "/results/?id=" + - testId; - console.log("ShareURL: ", shareURL); - // I("resultsImg").src = shareURL; - I("resultsURL").value = shareURL; - I("testId").innerHTML = testId; - I("shareArea").style.display = ""; - } - } catch (e) { } - } - }; - s.start(); - } - } - //this function reads the data sent back by the test and updates the UI - function updateUI(forced) { - if (!forced && s.getState() != 3) return; - if (uiData == null) return; - var status = uiData.testState; - // I("ip").textContent = uiData.clientIp; - - I("dlText").textContent = - status == 1 && uiData.dlStatus == 0 ? "..." : format(uiData.dlStatus); - // drawMeter(I("dlMeter"), mbpsToAmount(Number(uiData.dlStatus * (status == 1 ? oscillate() : 1))), meterBk, dlColor, Number(uiData.dlProgress), progColor); - I("ulText").textContent = - status == 3 && uiData.ulStatus == 0 ? "..." : format(uiData.ulStatus); - // drawMeter(I("ulMeter"), mbpsToAmount(Number(uiData.ulStatus * (status == 3 ? oscillate() : 1))), meterBk, ulColor, Number(uiData.ulProgress), progColor); - I("pingText").textContent = format(uiData.pingStatus); - I("jitText").textContent = format(uiData.jitterStatus); - - if (status == 1) { - updateDlColor(uiData.dlStatus); - // updateDlColor(30, "download"); - } else if (status == 3) { - updateUlColor(uiData.ulStatus); - } else { - updateDlColor(uiData.dlStatus); - updateUlColor(uiData.ulStatus); - } - - updatePingColor(uiData.pingStatus); - updateJitterColor(uiData.jitterStatus); - } - function oscillate() { - return 1 + 0.02 * Math.sin(Date.now() / 100); - } - //update the UI every frame - window.requestAnimationFrame = - window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.msRequestAnimationFrame || - function (callback, element) { - setTimeout(callback, 1000 / 60); - }; - function frame() { - requestAnimationFrame(frame); - updateUI(); - } - frame(); //start frame loop - //function to (re)initialize UI - function initUI() { - I("dlText").textContent = ""; - I("ulText").textContent = ""; - I("pingText").textContent = ""; - I("jitText").textContent = ""; - } - - - - -
- - Before you begin your assessment or interview, please ensure your - internet connection meets the minimum requirement for a smooth - experience: -
-Recommended: 50ms
-Recommended: 30ms
-Minimum: 5 Mbps
-Minimum: 5 Mbps
-