diff --git a/License.md b/LICENSE similarity index 93% rename from License.md rename to LICENSE index b93a920..c37ea8d 100644 --- a/License.md +++ b/LICENSE @@ -1,6 +1,7 @@ MIT License -Copyright (c) 2022 OpenSpeedTest™ +Copyright (c) 2013-2022 OpenSpeedTest.COM +Copyright (c) 2022 Daniel Thamdrup Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 81ce4f6..935baab 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,17 @@ -# **[SpeedTest by OpenSpeedTest™](https://openspeedtest.com?Run&ref=Github)** - Free & Open-Source HTML5 Network Performance Estimation Tool. +# **[OpenSpeedTest™️](https://openspeedtest.com)** - Pure HTML5 Network Performance Estimation Tool. -SpeedTest by OpenSpeedTest™ is a Free and Open-Source HTML5 Network Performance Estimation Tool Written in Vanilla Javascript and only uses built-in Web APIs like `XMLHttpRequest` `(XHR)`, `HTML`, `CSS`, `JS`, & `SVG`. No Third-Party frameworks or libraries are Required. All we need is a static web server like `NGINX`. I started this project in 2011 and moved to OpenSpeedTest.com dedicated Project/Domain Name in 2013. +Hi! I'm [Vishnu](https://vishnu.pro) the one who developed **[OpenSpeedTest™️](https://openspeedtest.com)**. OpenSpeedTest use XMLHttpRequest (XHR), HTML, CSS, JS, & SVG For this network performance estimation tool. I started this project in 2011 and moved to OpenSpeedTest.com dedicated Project/Domain Name in 2013. + [![Download OpenSpeedTest-Server V2.1](https://github.com/openspeedtest/v2-Test/raw/main/images/10G-S.gif)](https://go.openspeedtest.com/Server "Download OpenSpeedTest-Server V2.1") Download from the Microsoft Store Download from the Mac App Store Download from the App Store Download from the Google Play Store Download from the Snap Store Download from the Docker Hub Download from the Helm Store Download from GitHub -**No client-side software or plugin is required. You can run a network speed test from any device with a [Web Browser that is IE10 or new.](https://www.youtube.com/watch?v=9f-OM_WQ7Bw&list=PLt-deStxFJOMEAs2O1lJhscMNzcg9E3Po&index=1)** +**No client-side software or plugin is required. You can run a network speed test from any device with a web browser that is IE10 or new.** -## Why OpenSpeedTest +## Why **[OpenSpeedTest](https://openspeedtest.com)**? @@ -18,7 +19,7 @@ SpeedTest by OpenSpeedTest™ is a Free and Open-Source HTML5 Network Performanc -OpenSpeedTest contains Only `STATIC` Files like `HTML`,`CSS` & `JS`. +OpenSpeedTest contains Only "STATIC" Files like HTML,CSS & JS. So you don't need to worry about Security Updates or Hidden Exploits that may compromise your secure environments. @@ -28,7 +29,7 @@ So you don't need to worry about Security Updates or Hidden Exploits that may co -OpenSpeedTest is written in Vanilla JavaScript. No Third-Party frameworks or libraries were used. SpeedTest script file size is under 8kB gzip. The unexpected side effect of using Vanilla JavaScript is High Performance. +OpenSpeedTest is written in Pure JavaScript. No Third-Party frameworks or libraries were used. SpeedTest script file size is under 8kB gzip. The unexpected side effect of using Pure JavaScript is High Performance. @@ -52,23 +53,19 @@ OpenSpeedTest User interface is written in SVG. ### Server Requirements : -`Nginx`, `Apache`, `IIS`, `Express`, or Any Web server that supports `HTTP/1.1` or new. - -- Accept, `GET`, `POST`, `HEAD` & `OPTIONS`, Response `200 OK`. +Nginx, Apache, IIS, Express, or Any Web server that supports HTTP/1.1. -- Accept, `POST` to Static Files, Response `200 OK`. +- Accept, GET, POST, HEAD & OPTIONS, Response 200 OK. -- `client_max_body_size`, 35 Megabytes or more. +- Accept, POST to Static Files, Response 200 OK. -- Timeout greater than `60 seconds`. +- Timeout greater than 60 seconds. -- Disable `Access logs` for Increasing server performance. +- Disable Access logs for Increasing server performance. -- Improve `Time to First Byte` (TTFB) +- Improve Time to First Byte (TTFB) -- Warning! If you run it behind a **[Reverse Proxy](https://github.com/openspeedtest/Speed-Test/issues/4#issuecomment-1229157193)**, you should increase the `post-body content length` to 35 megabytes. -- Supports `HTTP2` & `HTTP3`. Wait for POST-BODY and Discard the DATA for UPLOAD. -- **[You Should Follow our Nginx Config.](https://github.com/openspeedtest/Nginx-Configuration)** +- **[Follow our Nginx Config. ](https://github.com/openspeedtest/Nginx-Configuration)** @@ -88,72 +85,73 @@ OpenSpeedTest-Server is available for Windows, Mac, Linux, Android, iOS & Docke -To enable the stress test. Pass `Stress` or `S` keyword as a URL parameter. +To enable stress pass 'Stress' or 'S' keyword as a URL parameter. ```` -http://192.168.1.5?Stress=Low +http://192.168.1.5?stress=low ```` -After the `STRESS` or `S` keyword, you can specify the number of seconds you need to run the StressTest in seconds, or preset values such as `Low`, `Medium`, `High`, `VeryHigh`, `Extreme`, `Day`, and `Year`. Will run a speed test for `300`,`600`,`900`,`1800`,`3600`,`86400`,`31557600` seconds, respectively. Also, you can feed the first letter of each parameter and its values. +After stress keyword you should give a value, number of seconds or preset values such as "low", "medium" ,"high" ,"veryhigh" ,"extreme", "day", "year". Will run a speed test for 300,600,900,1800,3600,86400,31557600 seconds respectively. Also you can feed the first letter of each parameter and its values. + ```` -http://192.168.1.5?S=L +http://192.168.1.5?s=l ```` -`S=L` is the same as passing `Stress=low` +s=l is same as passing Stress=low -Or you can specify the number of seconds eg:`5000` directly without any preset keywords. +Or you can specify eg:5000 directly without any preset keywords. ```` -http://192.168.1.5?Stress=5000 +http://192.168.1.5?stress=5000 ```` -2. Run a speed test automatically +2. Start a Speedtest Automatically. -Run a speed test automatically on page load. +Starts a speed test automatically. ```` -http://192.168.1.5?Run +http://192.168.1.5?run ```` -Run a speed test automatically after a few seconds. +Start a speed test automatically after few seconds. ```` -http://192.168.1.5?Run=10 or http://192.168.1.5?R=10 +http://192.168.1.5?run=10 or http://192.168.1.5?r=10 ```` -You can pass multiple keywords, and it's not `Case-Sensitive`. +You can pass multiple keywords and it's not casesensitive. ```` -http://192.168.1.5?Run&Stress=300 OR http://192.168.1.5?R&S=300 +http://192.168.1.5?run&stress=300 OR http://192.168.1.5?R&S=300 ```` -This will start a speed test immediately and run for `300 seconds` in each direction. That is 300 seconds for download and `300 seconds` for upload. +This will start a speed test immediately and run for 300 seconds in each direction. That is 300 seconds for download and 300 seconds for upload. @@ -161,7 +159,7 @@ This will start a speed test immediately and run for `300 seconds` in each direc -Edit `Index.html` +Edit Index.html ```` @@ -171,11 +169,11 @@ var saveDataURL = "//yourDatabase.Server.com:4500/save?data="; ```` -4. Add multiple servers. The app will choose one with the least latency automatically. +4. Add multiple servers (Choose one with least latency automatically) -Edit `Index.html` +Edit Index.html ```` @@ -203,13 +201,13 @@ http://192.168.1.5?clean Overhead Compensation factor, This is browser based test, Many Unknowns. Currently 4%. That is within the margin of error. -You can pass `Clean` or `C` as a URL Parameter and reset Overhead Compensation factor to Zero or set any value between 0 and 4. 1 = 1% to 4 = 4%. +You can pass "Clean" or "C" as a URL Parameter and reset Overhead Compensation factor to Zero or set any value between 0 and 4. 1 = 1% to 4 = 4%. -`Clean` will not accept values above 4, so Compensation is limited to maximum 4%. +"clean" will not accept values above 4, so Compensation is limited to maximum 4%. -6. Change the default limit of 6 parallel HTTP connections to the Server. +6. Change default limit of 6 parallel http connections to Server @@ -219,13 +217,13 @@ http://192.168.1.5?XHR=3 OR http://192.168.1.5?X=3 ```` -Allow the user to Change the default limit of 6 parallel HTTP connections to the Server. `XHR` will Accept values above 1 and max 32 +Allow user to Change default limit of 6 parallel http connections to Server | Accept values above 1 and max 32 -pass `XHR` or `X` as a URL Parameter. +pass "XHR" or "X" as a URL Parameter. -7. Select a different server to run a speed test. +7. Select different server to run a speed test @@ -235,29 +233,29 @@ http://192.168.1.5?Host=http://192.168.55.1:90 OR http://192.168.1.5?h=http://19 ```` -Pass `Host` or `H` as a URL Parameter. +Pass "Host" or "H" as a URL Parameter. -`HOST` will Accept only valid HTTP URLs like `http://192.168.1.10:3000` or `https://yourHost.com`. +Accept only valid http urls like "http://192.168.1.10:3000" or "https://yourHost.com". -8. Select and run one test at a time, `DOWNLOAD`, `UPLOAD`, or `PING`. +8. Select and run one test at a time, download, upload or ping. ```` -http://192.168.1.5?Test=Upload OR http://192.168.1.5?T=U +http://192.168.1.5?Test=upload OR http://192.168.1.5?t=u ```` -`TEST` Allow the user to select and run one test at a time, Download, Upload, or Ping. +Allow user to select and run one test at a time, download, upload or ping -Pass `Test` or `T` as a URL Parameter. +Pass "Test" or "T" as a URL Parameter. -9. Set a PingTimeout dynamically by passing `Out` or `O` as a URL Parameter +9. Set a PingTimeout dynamically by passing "Out" or "o" as a URL Parameter @@ -269,23 +267,23 @@ http://192.168.1.5?Out=7000 OR http://192.168.1.5?O=7000 If Server not responded within 5 Seconds for any requests we send ('pingSamples' times) -We will show `Network Error`, You can change the limit here. +We will show Network Error, you can change the limit here. -In milliseconds, if you need to set `6 seconds`. Change the value to `6000`. +In milliseconds, if you need to set 6 seconds. Change value to 6000. -10. Set the Number of ping samples by adding `Ping` or `P` as a URL Parameter +10. Set the Number of ping samples by adding "Ping" or "P" as a URL Parameter ```` -http://192.168.1.5?Ping=500 OR http://192.168.1.5?P=500 +http://192.168.1.5?Ping=500 OR http://192.168.1.5?p=500 ```` -More samples = more accurate representation. `Ping = 500` will send `501` requests to server to find the accurate ping value. +More samples = more accurate representation. Ping = 500 will send 501 requests to server to find the accurate ping value. Take a look at index.html, you can set a custom ping sample size, threads, upload data size etc. ## Self-hosted (On-Premise) / (Docker Image/Source Code) @@ -293,8 +291,6 @@ Take a look at index.html, you can set a custom ping sample size, threads, uploa You have two options here. If you need a custom deployment, use our source code along with a web server of your choice. I prefer Nginx, and you can find my [Nginx Configuration](https://github.com/openspeedtest/Nginx-Configuration) here. Or you can use our docker image. You can deploy it on your LAN/WAN with or without an active internet connection. **This is docker implementation using nginxinc/nginx-unprivileged:stable-alpine. uses significantly fewer resources.** - -- NGINX Docker image that runs NGINX as a non root, unprivileged user. ### Docker install instructions: @@ -305,32 +301,16 @@ You have two options here. If you need a custom deployment, use our source code sudo docker run --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest ```` -#### Or use docker-compose.yml -```` -version: '3.3' -services: - speedtest: - restart: unless-stopped - container_name: openspeedtest - ports: - - '3000:3000' - - '3001:3001' - image: openspeedtest/latest -```` -- Warning! If you run it behind a **[Reverse Proxy](https://github.com/openspeedtest/Speed-Test/issues/4#issuecomment-1229157193)**, you should increase the `post-body content length` to 35 megabytes. - -- **[Follow our Nginx Config.](https://github.com/openspeedtest/Nginx-Configuration)** - Now open your browser and direct it to: -A: For **HTTP** use: `http://YOUR-SERVER-IP:3000` +A: For **HTTP** use: [http://YOUR-SERVER-IP:3000](http://your-nas-ip:3000/) -B: For **HTTPS** use: `https://YOUR-SERVER-IP:3001` +B: For **HTTPS** use: [https://YOUR-SERVER-IP:3001](https://your-nas-ip:3001/) #### Container-Port for http is 3000 -If you need to run this image on a different port for `HTTP`, Eg: change to `80` = `-p 80:3000` +If you need to run this image on a different port for http, Eg: change to 5000 = -p 5000:3000 #### Container-Port for https is 3001 -If you need to run this image on a different port for `HTTPS`, Eg: change to `443` = `-p 443:3001` +If you need to run this image on a different port for https, Eg: change to 6000 = -p 6000:3001 ### How to use your own SSL Certificate? @@ -360,6 +340,8 @@ sudo docker run -v /Users/vishnu/Desktop/docker/:/etc/ssl/ --restart=unless-stop ```` + + Docker images run better on Linux Platforms, including your NAS. But if you install docker on macOS or Windows, you may see poor performance. I asked this on Docker forums, and they told me macOS and Windows support is for Development purposes only. For Production, you need to use any Linux Platform. The same Story goes for Windows NGINX. Nginx uses only one worker even if you specify n number of worker processes. They will show in Task Manager, but the system will only use one. I got this information directly from the Nginx website. @@ -406,16 +388,31 @@ Many useful browser extensions are out there that we all know and love. But some -**No client-side software or plugin is required. You can run a network speed test from any device with a [Web Browser that is IE10 or new.](https://www.youtube.com/watch?v=9f-OM_WQ7Bw&list=PLt-deStxFJOMEAs2O1lJhscMNzcg9E3Po&index=1)** +**No client-side software or plugin is required. You can run a network speed test from any device with a web browser that is IE10 or new.** + + +©Copyright 2013-2022 by OpenSpeedTest.com. All Rights Reserved. + + + +**Share — copy and redistribute the material in any medium or format for any purpose, even commercially.** + + + +Read full license terms @ http://go.openspeedtest.com/License -- Like this Project? Please **Donate NOW & Keep us Alive** -> https://go.openspeedtest.com/Donate + + +Like this Project? Please **Donate NOW & Keep us Alive** -> https://go.openspeedtest.com/Donate + + -MIT License +**Official Website :** https://OpenSpeedTest.COM | **Email**: support@openspeedtest.com -Copyright (c) 2013 - 2023 OpenSpeedTest™ + -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +**Developed by : Vishnu** | https://Vishnu.Pro | **Email** : me@vishnu.pro -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +If you have any Questions, ideas or Comments Please Send it via -> https://go.openspeedtest.com/SendMessage diff --git a/assets/css/app.css b/assets/css/app.css deleted file mode 100644 index 39fa939..0000000 --- a/assets/css/app.css +++ /dev/null @@ -1,382 +0,0 @@ -/* roboto-regular - latin */ -@font-face { - font-family: "Roboto"; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url("..fonts/roboto-v30-latin-regular.eot"); /* IE9 Compat Modes */ - src: local(""), - url("../fonts/roboto-v30-latin-regular.eot?#iefix") - format("embedded-opentype"), - /* IE6-IE8 */ url("../fonts/roboto-v30-latin-regular.woff2") - format("woff2"), - /* Super Modern Browsers */ - url("../fonts/roboto-v30-latin-regular.woff") format("woff"), - /* Modern Browsers */ url("../fonts/roboto-v30-latin-regular.ttf") - format("truetype"), - /* Safari, Android, iOS */ - url("../fonts/roboto-v30-latin-regular.svg#Roboto") format("svg"); /* Legacy iOS */ -} -/* roboto-500 - latin */ -@font-face { - font-family: "Roboto"; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url("assets/fonts/roboto-v30-latin-500.eot"); /* IE9 Compat Modes */ - src: local(""), - url("assets/fonts/roboto-v30-latin-500.eot?#iefix") - format("embedded-opentype"), - /* IE6-IE8 */ url("../fonts/roboto-v30-latin-500.woff2") - format("woff2"), - /* Super Modern Browsers */ url("../fonts/roboto-v30-latin-500.woff") - format("woff"), - /* Modern Browsers */ url("../fonts/roboto-v30-latin-500.ttf") - format("truetype"), - /* Safari, Android, iOS */ - url("../fonts/roboto-v30-latin-500.svg#Roboto") format("svg"); /* Legacy iOS */ -} - -body { - margin: 0px; - padding: 0px; - display: block; -} - -::-webkit-scrollbar { - display: none; -} -html { - -ms-overflow-style: none; - scrollbar-width: none; -} - -.Credits { -color: rgb(125 119 119); -text-align: center; -font-size:14px; -font-family: Roboto-Medium, Roboto; -font-weight: 500; -} -.Credits a { - text-decoration: none; - color: rgb(113, 113, 113); -} -.Credits a:hover { -color: #14b0fe; -} - -.ConnectError { - display: none; - -} - -.openSpeedtestApp { - - height: 100vh; - width: 100vw; - display: none; - overflow: hidden; -} -.main-Gaugebg { - fill: none; - stroke: rgb(231, 231, 232); - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 22px; - stroke-dasharray: 681; -} -.main-GaugeBlue { - fill: none; - stroke: url(#gradient); - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 22px; - stroke-dasharray: 681; - stroke-opacity: 0; -} -.main-GaugeWhite { - fill: none; - stroke: rgb(255, 255, 255); - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 15px; - stroke-dasharray: 0, 681; - stroke-dashoffset: 1; - stroke-opacity: 0; -} -.oDo-Meter { - font-size: 16.633283615112305px; - fill: gray; - font-family: Roboto-Medium, Roboto; - font-weight: 500; -} -.oDoLive-Speed { - font-size: 28px; - fill: #201e1e; - font-family: Roboto-Medium, Roboto; - font-weight: 500; - text-anchor: middle; -} - -.oDoLive-Status { - font-size: 10px; - fill: #d2d1d2; - font-family: Roboto-Medium, Roboto; - font-weight: 500; - text-anchor: middle; -} -.uiBg { - fill: #d2d1d2; -} -.progressbg { - stroke: rgb(231, 231, 232); - stroke-width: 8px; - stroke-linecap: round; - stroke-linejoin: round; - stroke-dasharray: 400; - stroke-dashoffset: 0; -} -.Cards { - fill: #f2f2f2; -} -.Symbol { - fill: url(#gradient); -} -.rtext { - font-size: 12px; - fill: #333; - font-family: Roboto-Medium, Roboto; - font-weight: 500; -} -.rtextnum { - font-size: 23px; - fill: #201e1e; - font-family: Roboto-Medium, Roboto; - font-weight: 500; - text-anchor: middle; -} -.rtextmbms { - font-size: 12px; - fill: #5f5f5f; - font-family: Roboto-Medium, Roboto; - font-weight: 500; - text-anchor: middle; -} -.jitter-Mob { - font-size: 9px; - fill: #5f5f5f; - font-family: Roboto-Medium, Roboto; - font-weight: 500; - text-anchor: middle; -} -.startButton { - fill: url(#RadialGradient1); - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-tap-highlight-color: transparent; - cursor: pointer; - pointer-events: visible; -} -.buttonTxt { - font-size: 40px; - fill: #ffffff; - font-family: Roboto-Medium, Roboto; - font-weight: 500; - text-anchor: middle; -} - -.intro-Progress { - stroke: #56c4fb; - stroke-width: 8px; - stroke-linecap: round; - stroke-linejoin: round; - stroke-dasharray: 400; - stroke-dashoffset: 0; -} -.progressElmstart { - stroke: #56c4fb; - stroke-width: 8px; - stroke-linecap: round; - stroke-linejoin: round; - stroke-dasharray: 400; - stroke-dashoffset: 0; - display: block; -} -.Startsettings { - fill: url(#RadialGradient1); - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-tap-highlight-color: transparent; - cursor: pointer; - pointer-events: visible; - opacity: 0.1; - transition: opacity 1s ease-in-out; -} -.Startsettings:hover { - opacity: 1; -} - -.progressbg { - stroke: rgb(231, 231, 232); - stroke-width: 8px; - stroke-linecap: round; - stroke-linejoin: round; - stroke-dasharray: 400; - stroke-dashoffset: 0; -} -.deskStart { - fill: none; - stroke: rgb(231, 231, 232); - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 22px; - stroke-dasharray: 681; - stroke: url(#gradient); -} -#UI-Desk { - display: none; -} -#UI-Mob { - display: none; -} -.oDoTop-Speed { - font-size: 16.96px; - fill: gray; - font-family: Roboto-Medium, Roboto; - font-weight: 500; - text-anchor: end; -} -#upSymbolDesk { - fill: #14b0fe; - display: none; -} -#downSymbolDesk { - fill: #14b0fe; - display: none; -} -#upSymbolMob { - fill: #14b0fe; - display: none; -} -#downSymbolMob { - fill: #14b0fe; - display: none; -} - -#ipMob { - font-size: 15px; - fill: #201e1e; - font-family: Roboto-Medium, Roboto; - font-weight: 500; - text-anchor: middle; - display: none; -} -#ipDesk { - font-size: 15px; - fill: #201e1e; - font-family: Roboto-Medium, Roboto; - font-weight: 500; - text-anchor: middle; - display: none; -} - -.spinner { - position: absolute; - z-index: 999; - top: 50vh; - left: 50vw; - text-align: center; -} - -.spinner > div { - width: 20px; - height: 20px; - background-color: #2196f3; - - border-radius: 100%; - display: inline-block; - -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both; - animation: sk-bouncedelay 1.4s infinite ease-in-out both; -} - -.spinner .bounce1 { - -webkit-animation-delay: -0.32s; - animation-delay: -0.32s; -} - -.spinner .bounce2 { - -webkit-animation-delay: -0.16s; - animation-delay: -0.16s; -} - -@-webkit-keyframes sk-bouncedelay { - 0%, - 80%, - 100% { - -webkit-transform: scale(0); - } - 40% { - -webkit-transform: scale(1); - } -} - -@keyframes sk-bouncedelay { - 0%, - 80%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - } - 40% { - -webkit-transform: scale(1); - transform: scale(1); - } -} - -.darkmode { - margin-bottom: -15px; - fill: #75757a99; - padding-top: 16px; - display: none; - cursor: pointer; - margin-right: 30px; -} -#daymode { - margin-right: 40px; -} -.darkmode:hover { - fill: #000000; -} - -.Mobile, -.Desktop { - visibility: hidden; - width: 100vw; - height: 100vh; -} - -@media only screen and (orientation: landscape) { - .Mobile { - visibility: hidden; - } - .Desktop { - visibility: visible; - } -} - -@media only screen and (orientation: portrait) { - .spinner { - top: 42vh; - left: 42vw; - } - .Mobile { - visibility: visible; - } - .Desktop { - visibility: hidden; - } -} -@media only screen and (max-width: 300px) { - .Credits{ - display: none; - } -} diff --git a/assets/fonts/roboto-v30-latin-500.svg b/assets/fonts/roboto-v30-latin-500.svg index 67eecf4..cc860bd 100644 --- a/assets/fonts/roboto-v30-latin-500.svg +++ b/assets/fonts/roboto-v30-latin-500.svg @@ -1,305 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/assets/fonts/roboto-v30-latin-regular.svg b/assets/fonts/roboto-v30-latin-regular.svg index 627f5a3..a04a144 100644 --- a/assets/fonts/roboto-v30-latin-regular.svg +++ b/assets/fonts/roboto-v30-latin-regular.svg @@ -1,308 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/assets/images/app.svg b/assets/images/app.svg index 01441ac..00b3bd2 100644 --- a/assets/images/app.svg +++ b/assets/images/app.svg @@ -1,459 +1 @@ - - - - - - - - - - - - - 0 - .5 - 1 - 10 - 100 - 500 - 1000+ - ... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DOWNLOAD - - - - - UPLOAD - - - - - - - - - - PING - - - - JITTER - - - --- - Mbps - - - --- - Mbps - - - -- - ms - - - -- - ms - - - - - - - - - -- - Jitter - -- - ms - - - - - - - - - - - - Start - - - - - - - - - - - - - - - - - - - Network Error - - - - SpeedTest by OpenSpeedTest™️ - - - - - - - - - - - - - - - - - - - - - HTML5 Network Performance Estimation Tool. by OpenSpeedTest™ - - - - - - The download speed is how fast you can pull data from the server to you in the form of images, videos, text and more. Activities such as listening to music on Spotify, downloading large files or streaming videos on Netflix all require you to download data. - - - The upload speed is how fast you send data from you to others in the form of images, videos, text and more. Activities such as uploading to YouTube or Sending email, playing live games like PubG, Voice and Video calling a friend require fast upload speeds for you to send data to someone else’s server. - - - Ping "Round-trip time" is more or less well defined as the network delay from point A to B and back. This is the sum of all encoding, queueing, processing, decoding, and propagation delays in both directions. Essentially, it's the delay when A may be expecting an answer from B for a request that requires very little processing. A fast ping means a more responsive connection, especially in applications where timing is everything (like video games). Ping is measured in Milliseconds (ms). Jitter is simply the difference in Ping "Round-trip time" . In other words, jitter is measuring time difference in packet inter-arrival time. Jitter helps diagnose internet connection stability. The higher the jitter value, the worse the stability of the connection. - - - - - - - - - Download speed is measured in megabits per second (Mbps). - - - Upload speed is measured in megabits per second (Mbps). - - - - - Ping is measured in Milliseconds (ms). - - - Jitter is measured in Milliseconds (ms). - - - - - Shows you real-time network traffic graph for Upload! - - - Shows you real-time network traffic graph for Download! - - - Your download speed! - - - Your upload speed! - - - Your ping! - - - Your jitter! - - - - - - - - - - Download speed is measured in megabits per second (Mbps). - - - Upload speed is measured in megabits per second (Mbps). - - - - - Ping is measured in Milliseconds (ms). - - - Jitter is measured in Milliseconds (ms). - - - - - Shows you real-time network traffic graph for Upload! - - - Shows you real-time network traffic graph for Download! - - - Your download speed! - - - Your upload speed! - - - Your ping! - - - Your jitter! - - - - - Click here to Run a Speed Test! Or Press "Enter" - - - Options - - - - - - HTML5 Network Performance Estimation Tool. by OpenSpeedTest™ - - - - - - The download speed is how fast you can pull data from the server to you in the form of images, videos, text and more. Activities such as listening to music on Spotify, downloading large files or streaming videos on Netflix all require you to download data. - - - The upload speed is how fast you send data from you to others in the form of images, videos, text and more. Activities such as uploading to YouTube or Sending email, playing live games like PubG, Voice and Video calling a friend require fast upload speeds for you to send data to someone else’s server. - - - Ping "Round-trip time" is more or less well defined as the network delay from point A to B and back. This is the sum of all encoding, queueing, processing, decoding, and propagation delays in both directions. Essentially, it's the delay when A may be expecting an answer from B for a request that requires very little processing. A fast ping means a more responsive connection, especially in applications where timing is everything (like video games). Ping is measured in Milliseconds (ms). Jitter is simply the difference in Ping "Round-trip time" . In other words, jitter is measuring time difference in packet inter-arrival time. Jitter helps diagnose internet connection stability. The higher the jitter value, the worse the stability of the connection. - - - - - - - - - Download speed is measured in megabits per second (Mbps). - - - Upload speed is measured in megabits per second (Mbps). - - - Ping is measured in Milliseconds (ms). - - - - - - Shows you real-time network traffic graph for Download! - - - Upload speed is measured in megabits per second (Mbps). - - - Your ping! and Jitter - - - Your upload speed! - - - Your download speed! - - - - - - - - - Click here to run a speed! - - - Options - - - - - - - - - - - - - - \ No newline at end of file +0.51101005001000+...DOWNLOADUPLOADPINGJITTER---Mbps---Mbps--ms--ms--Jitter--msStartNetwork ErrorSpeedTest by OpenSpeedTest™️HTML5 Network Performance Estimation Tool. by OpenSpeedTest™The download speed is how fast you can pull data from the server to you in the form of images, videos, text and more. Activities such as listening to music on Spotify, downloading large files or streaming videos on Netflix all require you to download data.The upload speed is how fast you send data from you to others in the form of images, videos, text and more. Activities such as uploading to YouTube or Sending email, playing live games like PubG, Voice and Video calling a friend require fast upload speeds for you to send data to someone else’s server.Ping "Round-trip time" is more or less well defined as the network delay from point A to B and back. This is the sum of all encoding, queueing, processing, decoding, and propagation delays in both directions. Essentially, it's the delay when A may be expecting an answer from B for a request that requires very little processing. A fast ping means a more responsive connection, especially in applications where timing is everything (like video games). Ping is measured in Milliseconds (ms). Jitter is simply the difference in Ping "Round-trip time" . In other words, jitter is measuring time difference in packet inter-arrival time. Jitter helps diagnose internet connection stability. The higher the jitter value, the worse the stability of the connection.Download speed is measured in megabits per second (Mbps).Upload speed is measured in megabits per second (Mbps).Ping is measured in Milliseconds (ms).Jitter is measured in Milliseconds (ms).Shows you real-time network traffic graph for Upload!Shows you real-time network traffic graph for Download!Your download speed!Your upload speed!Your ping!Your jitter!Download speed is measured in megabits per second (Mbps).Upload speed is measured in megabits per second (Mbps).Ping is measured in Milliseconds (ms).Jitter is measured in Milliseconds (ms).Shows you real-time network traffic graph for Upload!Shows you real-time network traffic graph for Download!Your download speed!Your upload speed!Your ping!Your jitter!Click here to Run a Speed Test! Or Press "Enter"OptionsHTML5 Network Performance Estimation Tool. by OpenSpeedTest™The download speed is how fast you can pull data from the server to you in the form of images, videos, text and more. Activities such as listening to music on Spotify, downloading large files or streaming videos on Netflix all require you to download data.The upload speed is how fast you send data from you to others in the form of images, videos, text and more. Activities such as uploading to YouTube or Sending email, playing live games like PubG, Voice and Video calling a friend require fast upload speeds for you to send data to someone else’s server.Ping "Round-trip time" is more or less well defined as the network delay from point A to B and back. This is the sum of all encoding, queueing, processing, decoding, and propagation delays in both directions. Essentially, it's the delay when A may be expecting an answer from B for a request that requires very little processing. A fast ping means a more responsive connection, especially in applications where timing is everything (like video games). Ping is measured in Milliseconds (ms). Jitter is simply the difference in Ping "Round-trip time" . In other words, jitter is measuring time difference in packet inter-arrival time. Jitter helps diagnose internet connection stability. The higher the jitter value, the worse the stability of the connection.Download speed is measured in megabits per second (Mbps).Upload speed is measured in megabits per second (Mbps).Ping is measured in Milliseconds (ms).Shows you real-time network traffic graph for Download!Upload speed is measured in megabits per second (Mbps).Your ping! and JitterYour upload speed!Your download speed!Click here to run a speed!Options \ No newline at end of file diff --git a/assets/images/icons/android-chrome-192x192.png b/assets/images/icons/android-chrome-192x192.png index df78b83..326d8a1 100644 Binary files a/assets/images/icons/android-chrome-192x192.png and b/assets/images/icons/android-chrome-192x192.png differ diff --git a/assets/images/icons/android-chrome-512x512.png b/assets/images/icons/android-chrome-512x512.png index 559d3ea..dd4e93f 100644 Binary files a/assets/images/icons/android-chrome-512x512.png and b/assets/images/icons/android-chrome-512x512.png differ diff --git a/assets/images/icons/apple-touch-icon.png b/assets/images/icons/apple-touch-icon.png index 14aec78..dbd7211 100644 Binary files a/assets/images/icons/apple-touch-icon.png and b/assets/images/icons/apple-touch-icon.png differ diff --git a/assets/images/icons/favicon-32x32.png b/assets/images/icons/favicon-32x32.png index e3ad751..560cfca 100644 Binary files a/assets/images/icons/favicon-32x32.png and b/assets/images/icons/favicon-32x32.png differ diff --git a/assets/images/icons/launcher-icon-1x.png b/assets/images/icons/launcher-icon-1x.png index 50bdeae..f0fd4a0 100644 Binary files a/assets/images/icons/launcher-icon-1x.png and b/assets/images/icons/launcher-icon-1x.png differ diff --git a/assets/images/icons/launcher-icon-3x.png b/assets/images/icons/launcher-icon-3x.png index b612922..7574026 100644 Binary files a/assets/images/icons/launcher-icon-3x.png and b/assets/images/icons/launcher-icon-3x.png differ diff --git a/assets/images/icons/mstile-150x150.png b/assets/images/icons/mstile-150x150.png index eb66ae2..258032a 100644 Binary files a/assets/images/icons/mstile-150x150.png and b/assets/images/icons/mstile-150x150.png differ diff --git a/assets/js/app-2.5.2.js b/assets/js/app-2.5.2.js new file mode 100644 index 0000000..a3ec5e1 --- /dev/null +++ b/assets/js/app-2.5.2.js @@ -0,0 +1,61 @@ +/* + ©CopyRight 2013-2022 by OpenSpeedTest.COM. All Rights Reserved. + Official Website : https://OpenSpeedTest.COM | Email: support@openspeedtest.com + Developed by : Vishnu | https://Vishnu.Pro | Email : me@vishnu.pro + + HTML5 Network Performance Estimation Tool -> [JS,XHR,SVG,HTML,CSS] + Started in 2011 and Moved to OpenSpeedTest.COM Dedicated Project/Domain Name in 2013. + SpeedTest Script -> 2013 -> Beta | 2015 -> V1 | 2019 ->V2 | 2020 V2.1 | 2021 V2.12 | 2022 V2.5 2.5.1. & 2.5.2. + Self-Hosted OpenSpeedTest-Server (iFrame/Nginx) -> 2014. + OpenSpeedTest-Server (On-premises) + [Docker] -> V1 2019 | V2 2020 | V2.1 2021 | V2.2 2022 + [Node.js/Electron JS] -> 2020 V1 | 2021 V2 & V2.1 | 2.2 2022 + Android and iOS OpenSpeedTest-Server App V1.4 2022 + Download -> https://go.openspeedtest.com/Server + Like this Project? Please Donate NOW & Keep us Alive -> https://go.openspeedtest.com/Donate + Share — copy and redistribute the material in any medium or format for any purpose, even commercially. + Read full license terms @ http://go.openspeedtest.com/License + If you have any Questions, ideas or Comments Please Send it via -> https://go.openspeedtest.com/SendMessage +*/ +window.onload=function(){OpenSpeedTest.Start();ostOnload()}; +(function(bb){function g(a){if(!(this instanceof g))return new g(a);this.el=document.getElementById(a)}var n,Ha,Ia=function(a){a&&"function"===typeof a&&a()};g.prototype.fade=function(a,c,f){var e="in"===a,t=e?0:1,w=14/c,m=this;e&&(m.el.style.display="block",m.el.style.opacity=t);var p=window.setInterval(function(){t=e?t+w:t-w;m.el.style.opacity=t;0>=t&&(m.el.style.display="none");(0>=t||1<=t)&&window.clearInterval(p,Ia(f))},14)};var Ja=function(a,c,f,e){a/=e;a--;return f*(a*a*a+1)+c},r=function(){this.YourIP= +g("YourIP");this.ipDesk=g("ipDesk");this.ipMob=g("ipMob");this.downSymbolDesk=g("downSymbolDesk");this.upSymbolDesk=g("upSymbolDesk");this.upSymbolMob=g("upSymbolMob");this.downSymbolMob=g("downSymbolMob");this.settingsMob=g("settingsMob");this.settingsDesk=g("settingsDesk");this.oDoLiveStatus=g("oDoLiveStatus");this.ConnectErrorMob=g("ConnectErrorMob");this.ConnectErrorDesk=g("ConnectErrorDesk");this.downResult=g("downResult");this.upRestxt=g("upRestxt");this.pingResult=g("pingResult");this.jitterDesk= +g("jitterDesk");this.pingMobres=g("pingMobres");this.JitterResultMon=g("JitterResultMon");this.JitterResultms=g("JitterResultms");this.UI_Desk=g("UI-Desk");this.UI_Mob=g("UI-Mob");this.oDoTopSpeed=g("oDoTopSpeed");this.startButtonMob=g("startButtonMob");this.startButtonDesk=g("startButtonDesk");this.intro_Desk=g("intro-Desk");this.intro_Mob=g("intro-Mob");this.loader=g("loading_app");this.OpenSpeedtest=g("OpenSpeedtest");this.mainGaugebg_Desk=g("mainGaugebg-Desk");this.mainGaugeBlue_Desk=g("mainGaugeBlue-Desk"); +this.mainGaugeWhite_Desk=g("mainGaugeWhite-Desk");this.mainGaugebg_Mob=g("mainGaugebg-Mob");this.mainGaugeBlue_Mob=g("mainGaugeBlue-Mob");this.mainGaugeWhite_Mob=g("mainGaugeWhite-Mob");this.oDoLiveSpeed=g("oDoLiveSpeed");this.progressStatus_Mob=g("progressStatus-Mob");this.progressStatus_Desk=g("progressStatus-Desk");this.graphc1=g("graphc1");this.graphc2=g("graphc2");this.graphMob2=g("graphMob2");this.graphMob1=g("graphMob1");this.text=g("text");this.scale=[{degree:680,value:0},{degree:570,value:.5}, +{degree:460,value:1},{degree:337,value:10},{degree:220,value:100},{degree:115,value:500},{degree:0,value:1E3}];this.polygon=this.chart=this.element="";this.width=200;this.height=50;this.maxValue=0;this.values=[];this.points=[];this.vSteps=5;this.measurements=[];this.points=[]};r.prototype.reset=function(){this.polygon=this.chart=this.element="";this.width=200;this.height=50;this.maxValue=0;this.values=[];this.points=[];this.vSteps=5;this.measurements=[];this.points=[]};r.prototype.ip=function(){"block"=== +this.ipDesk.el.style.display?(this.ipDesk.el.style.display="none",this.ipMob.el.style.display="none"):(this.ipDesk.el.style.display="block",this.ipMob.el.style.display="block")};r.prototype.prePing=function(){this.loader.fade("out",500);this.OpenSpeedtest.fade("in",1E3)};r.prototype.app=function(){this.loader.fade("out",500,this.ShowAppIntro())};r.prototype.ShowAppIntro=function(){this.OpenSpeedtest.fade("in",1E3)};r.prototype.userInterface=function(){this.intro_Desk.fade("out",1E3);this.intro_Mob.fade("out", +1E3,this.ShowUI())};r.prototype.ShowUI=function(){this.UI_Desk.fade("in",1E3);this.UI_Mob.fade("in",1E3,function(a){n="Loaded";console.log("Developed by Vishnu. Email --\x3e me@vishnu.pro")})};r.prototype.Symbol=function(a){0==a&&(this.downSymbolMob.el.style.display="block",this.downSymbolDesk.el.style.display="block",this.upSymbolMob.el.style.display="none",this.upSymbolDesk.el.style.display="none");1==a&&(this.downSymbolMob.el.style.display="none",this.downSymbolDesk.el.style.display="none",this.upSymbolMob.el.style.display= +"block",this.upSymbolDesk.el.style.display="block");2==a&&(this.downSymbolMob.el.style.display="none",this.downSymbolDesk.el.style.display="none",this.upSymbolMob.el.style.display="none",this.upSymbolDesk.el.style.display="none")};r.prototype.Graph=function(a,c){function f(p,z){for(m=e.maxValue=0;me.maxValue&&(e.maxValue=e.values[m]);e.maxValue=Math.ceil(e.maxValue);if(1=c&&(clearInterval(t),Ha="done",f.progressStatus_Desk.el.style.strokeDashoffset=800,f.progressStatus_Mob.el.style.strokeDashoffset=800)},14)};r.prototype.mainGaugeProgress=function(a){var c=a;0>c&&(c=0);var f=this.getNonlinearDegree(c);0=c&&(this.mainGaugeBlue_Mob.el.style.strokeDashoffset=681.1,this.mainGaugeWhite_Mob.el.style.strokeDashoffset=.1,this.mainGaugeWhite_Desk.el.style.strokeDashoffset=.1,this.mainGaugeBlue_Desk.el.style.strokeDashoffset=681.1)};r.prototype.showStatus=function(a){this.oDoLiveStatus.el.textContent=a};r.prototype.ConnectionError=function(){this.ConnectErrorMob.el.style.display= +"block";this.ConnectErrorDesk.el.style.display="block"};r.prototype.uploadResult=function(a){1>a&&(this.upRestxt.el.textContent=a.toFixed(3));1<=a&&9999>a&&(this.upRestxt.el.textContent=a.toFixed(1));1E4<=a&&99999>a&&(this.upRestxt.el.textContent=a.toFixed(1),this.upRestxt.el.style.fontSize="20px");1E5<=a&&(this.upRestxt.el.textContent=a.toFixed(1),this.upRestxt.el.style.fontSize="18px")};r.prototype.pingResults=function(a,c){"Ping"===c&&(1<=a&&1E4>a?(this.pingResult.el.textContent=Math.floor(a), +this.pingMobres.el.textContent=Math.floor(a)):0<=a&&1>a&&(this.pingResult.el.textContent=a,this.pingMobres.el.textContent=a));"Error"===c&&(this.oDoLiveSpeed.el.textContent=a)};r.prototype.downloadResult=function(a){1>a&&(this.downResult.el.textContent=a.toFixed(3));1<=a&&9999>a&&(this.downResult.el.textContent=a.toFixed(1));1E4<=a&&99999>a&&(this.downResult.el.textContent=a.toFixed(1),this.downResult.el.style.fontSize="20px");1E5<=a&&(this.downResult.el.textContent=a.toFixed(1),this.downResult.el.style.fontSize= +"18px")};r.prototype.jitterResult=function(a,c){"Jitter"===c&&(1<=a&&1E4>a?(this.jitterDesk.el.textContent=Math.floor(a),1<=a&&100>a&&(this.JitterResultMon.el.textContent=Math.floor(a)),100<=a&&((a/1E3).toFixed(1),this.JitterResultMon.el.textContent=1.1)):0<=a&&1>a&&(this.jitterDesk.el.textContent=a,this.JitterResultMon.el.textContent=a))};r.prototype.LiveSpeed=function(a,c){"countDown"===c?(c=a.toFixed(0),this.oDoLiveSpeed.el.textContent=c):"speedToZero"===c?(c=a.toFixed(1),this.oDoLiveSpeed.el.textContent= +c,this.oDoTopSpeed.el.textContent="1000+",this.oDoTopSpeed.el.style.fontSize=16.9,this.oDoTopSpeed.el.style.fill="gray"):"Ping"===c?1<=a&&1E4>a?this.oDoLiveSpeed.el.textContent=Math.floor(a):0<=a&&1>a&&(this.oDoLiveSpeed.el.textContent=a):(0==a&&(c=a.toFixed(1),this.oDoLiveSpeed.el.textContent=c),1>=a&&0=a&&(this.oDoTopSpeed.el.textContent="1000+",this.oDoTopSpeed.el.style.fontSize= +16.9,this.oDoTopSpeed.el.style.fill="gray"),1010<=a&&(this.oDoTopSpeed.el.textContent=1E3*Math.floor(a/1010)+"+",this.oDoTopSpeed.el.style.fill="#434040",this.oDoTopSpeed.el.style.fontSize="20px"))};r.prototype.GaugeProgresstoZero=function(a,c){var f=this;if(0<=a)var e=Date.now(),t=0-a,w=setInterval(function(){var m=(Date.now()-e)/1E3;var p=m/3;p--;p=t*(p*p*p*p*p+1)+a;f.LiveSpeed(p,"speedToZero");f.mainGaugeProgress(p);if(3<=m||0>=p)clearInterval(w),f.LiveSpeed(0,"speedToZero"),f.mainGaugeProgress(0), +n=c},16)};r.prototype.getNonlinearDegree=function(a){var c=0;if(0==a||0>=a||isNaN(a))return 0;for(;cthis.scale[c].value)c++;else return this.scale[c-1].degree+(a-this.scale[c-1].value)*(this.scale[c].degree-this.scale[c-1].degree)/(this.scale[c].value-this.scale[c-1].value);return this.scale[this.scale.length-1].degree};var S=function(){this.OverAllTimeAvg=window.performance.now();this.SpeedSamples=[];this.FinalSpeed};S.prototype.reset=function(){this.OverAllTimeAvg=window.performance.now(); +this.SpeedSamples=[];this.FinalSpeed=0};S.prototype.ArraySum=function(a){return a?a.reduce(function(c,f){if("number"===typeof c&&"number"===typeof f)return c+f},0):0};S.prototype.AvgSpeed=function(a,c,f){this.timeNow=(window.performance.now()-this.OverAllTimeAvg)/1E3;this.FinalSpeed;this.timeNow>=f-c&&(0=X&&(clearInterval(cb),17==(L.toLowerCase()+Y).length&&e())}function c(){d.ip()}function f(){"openspeedtest.com"===L.toLowerCase()+Y?(e(),d.userInterface()):55==Ka&&(e(),d.userInterface())}function e(){function b(){pa=window.performance.now();4===db&&w()}"widget"!==openChannel&& +"web"!==openChannel||qa(1);d.startButtonDesk.el.removeEventListener("click",f);d.startButtonMob.el.removeEventListener("click",f);var l=setInterval(function(){"Loaded"===n&&(n="busy",La());"Ping"===n&&(n="busy",d.showStatus("Milliseconds"));"Download"===n&&(d.showStatus("Initializing.."),M.reset(),x=Z=0,d.reset(),ra=window.performance.now(),t(),n="initDown");if("Downloading"===n){d.Symbol(0);if(0==T){T=1;d.showStatus("Testing download speed..");var h=(window.performance.now()-ra)/1E3;Ma=h;d.progress(1, +dlDuration+2.5);dlDuration+=h}sa=(window.performance.now()-ra)/1E3;m("dl");d.showStatus("Mbps download");d.mainGaugeProgress(x);d.LiveSpeed(x);d.Graph(x,0);N=M.AvgSpeed(x,ta,dlDuration);sa>=dlDuration&&"done"==Ha&&(B?(d.GaugeProgresstoZero(x,"SendR"),d.showStatus("All done"),d.Symbol(2)):d.GaugeProgresstoZero(x,"Upload"),d.downloadResult(N),aa=O,G=1,n="busy",x=Z=0,M.reset())}"Upload"==n&&1===G&&(d.Symbol(1),n="initup",d.showStatus("Initializing.."),ua=M.uRandom(ulDataSize,b),B&&(T=1));"Uploading"=== +n&&(1==T&&(T=2,d.showStatus("Testing upload speed.."),x=0,M.reset(),d.reset(),Na=h=(window.performance.now()-pa)/1E3,d.progress(!1,ulDuration+2.5),ulDuration+=h),d.showStatus("Mbps upload"),P=(window.performance.now()-pa)/1E3,m("up"),d.mainGaugeProgress(x),d.LiveSpeed(x),d.Graph(x,1),Q=M.AvgSpeed(x,va,ulDuration),P>=ulDuration&&1==G&&(ba=J,d.uploadResult(Q),d.GaugeProgresstoZero(x,"SendR"),ua=void 0,d.showStatus("All done"),d.Symbol(2),n="busy",G=0));if("Error"===n){d.showStatus("Check your network connection status."); +d.ConnectionError();n="busy";clearInterval(l);h=document.createElement("div");h.innerHTML='';var u=h.querySelector("a");d.oDoLiveSpeed.el.textContent="Network Error";var A=document.getElementById("oDoLiveSpeed");u.innerHTML=A.innerHTML;A.innerHTML=h.innerHTML}"SendR"===n&&(d.showStatus("All done"),h=document.createElement("div"),h.innerHTML='', +u=h.querySelector("a"),d.oDoLiveSpeed.el.textContent=Oa,A=document.getElementById("oDoLiveSpeed"),u.innerHTML=A.innerHTML,A.innerHTML=h.innerHTML,location.hostname!=L.toLowerCase()+Y?(U="https://"+L.toLowerCase()+Y+"/results/show.php?&d="+N.toFixed(3)+"&u="+Q.toFixed(3)+"&p="+wa+"&j="+xa+"&dd="+(aa/1048576).toFixed(3)+"&ud="+(ba/1048576).toFixed(3)+"&ua="+Pa,U=encodeURI(U),h=document.getElementById("resultsData"),h.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",U),h.setAttribute("target", +"_blank"),saveData&&qa(5)):qa(3),n="busy",clearInterval(l))},100)}function t(){for(var b=0;b1E3*Ma+ta/2*1E3&&0===Qa&&(Qa=1,ca*=.01,V*=.01,da=l+1E4);l>=da&&da=O?0:O-Sa;Sa=O;V+=Ra;Ta=ya=l-ya;ya=l;ca+=Ta;01E3*Na+va/2*1E3&&0===Ua&&(Ua=1,ea*= +.1,W*=.1,fa=b+1E4),b>=fa&&fa=J?0:J-Wa,Wa=J,W+=Va,Xa=za=b-za,za=b,ea+=Xa,0=h.loaded?0:h.loaded-l;if(isNaN(u)||!isFinite(u)||0>u)return!1;O+=u;l=h.loaded};y[b].onload=function(h){0===l&&(O+=h.total);"initDown"== +n&&(n="Downloading");y[b]&&(y[b].abort(),y[b]=null,y[b]=void 0,delete y[b]);0===G&&p(b)};y[b].onerror=function(h){0===G&&p(b)};y[b].responseType="arraybuffer";y[b].send()}function z(b){var l=0;v[b]=new XMLHttpRequest;v[b].open("POST",Aa.Upload+"?n="+Math.random(),!0);v[b].upload.onprogress=function(h){"initup"==n&&void 0===u&&(n="Uploading");if(P>=ulDuration)return v[b].abort(),v[b]=null,v[b]=void 0,delete v[b],!1;var u=0>=h.loaded?0:h.loaded-l;if(isNaN(u)||!isFinite(u)||0>u)return!1;J+=u;l=h.loaded}; +v[b].onload=function(){if(0===l&&(J+=1048576*ulDataSize,P>=ulDuration))return v[b].abort(),v[b]=null,v[b]=void 0,delete v[b],!1;if("initup"==n&&void 0===h){var h;n="Uploading"}v[b]&&(v[b].abort(),v[b]=null,v[b]=void 0,delete v[b]);1===G&&z(b)};v[b].onerror=function(h){P<=ulDuration&&z(b)};v[b].setRequestHeader("Content-Type","application/octet-stream");0=J||v[b].send(ua)}function La(){n="Ping";performance.clearResourceTimings();if(Ba=C?H.push(.1):H.push(C);1=ma&&(ulThreads=dlThreads=ma)}if(selectServer&&("string"===typeof k.host||"string"===typeof k.h)){if("undefined"!==typeof k.host)var na=k.host;else"undefined"!==typeof k.h&&(na=k.h);/(?:https?):\/\/(\w+:?\w*)?(\S+)(:\d+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/.test(na)&&(openSpeedTestServerList=[{ServerName:"Home",Download:na+ +"/downloading",Upload:na+"/upload",ServerIcon:"DefaultIcon"}])}D=parseInt(k.stress);R=parseInt(k.s);if("string"===typeof k.stress){var q=k.stress;var E=D}else"string"===typeof k.s&&(q=k.s,E=R);if(q&&stressTest){if("low"===q||"l"===q)ulDuration=dlDuration=300;if("medium"===q||"m"===q)ulDuration=dlDuration=600;if("high"===q||"h"===q)ulDuration=dlDuration=900;if("veryhigh"===q||"v"===q)ulDuration=dlDuration=1800;if("extreme"===q||"e"===q)ulDuration=dlDuration=3600;if("day"===q||"d"===q)ulDuration=dlDuration= +86400;if("year"===q||"y"===q)ulDuration=dlDuration=31557600;if(12q||5>E)upAdjust=1+D/100,dlAdjust=1+D/100}else dlAdjust=upAdjust=1;q=k.test;E=k.t;var B=!1;if(selectTest&&("string"===typeof q||"string"===typeof E)){var F;q?B=F=q:E&&(B=F=E);if("download"===F||"d"===F){var ba=Q=0;B="Download";e();d.userInterface()}else if("upload"=== +F||"u"===F){var aa=N=0;B="Upload";G=1;e();d.userInterface()}else"ping"===F||"p"===F?(e(),d.userInterface(),aa=N=ba=Q=0,B="SendR"):B=!1}F=parseInt(k.run);q=parseInt(k.r);var Ga;!enableRun||"string"!==typeof k.run&&"string"!==typeof k.r||(Ga=0',createCookie("mode","dark")));"light"===a&&(nightModeMob.style.display="none",dayModeMob.style.display="inline-block",nightMode.style.display="none", -dayMode.style.display="inline-block",(darkStyle=document.getElementById("darkmode"))&&darkStyle.parentNode.removeChild(darkStyle),createCookie("mode","light"))}function toggleSkin(){(darkStyle=document.getElementById("darkmode"))?setSkin("light"):setSkin("dark")}function createCookie(a,c,b){if(b){var d=new Date;d.setTime(d.getTime()+864E5*b);b="; expires="+d.toGMTString()}else b="";document.cookie=a+"="+c+b+"; path=/"} -function getCookieValue(a,c){return(c=document.cookie.match("(^|;)\\s*"+a+"\\s*=\\s*([^;]+)"))?c.pop():""}; \ No newline at end of file diff --git a/downloading b/downloading deleted file mode 100644 index b78c32f..0000000 Binary files a/downloading and /dev/null differ diff --git a/hosted.html b/hosted.html deleted file mode 100644 index ea51ac3..0000000 --- a/hosted.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - Speedtest by OpenSpeedtest.com - - - - -
- Speed Test by OpenSpeedTest™ -
- - \ No newline at end of file diff --git a/index.html b/index.html deleted file mode 100644 index c65dd23..0000000 --- a/index.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - SpeedTest by OpenSpeedTest™ - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - -
- SpeedTest by OpenSpeedTest™ is a Free and Open-Source HTML5 Network Speed Test Software. -

© Copyright 2013-2023 OpenSpeedTest™ All Rights Reserved.

-
- - - - - -