mirror of
https://github.com/hak5/nano-tetra-modules.git
synced 2025-10-29 16:58:09 +00:00
116 lines
3.0 KiB
JavaScript
116 lines
3.0 KiB
JavaScript
registerController("InternetSpeedTestController", ['$api', '$scope','$window','$route', '$http', function ($api, $scope, $window, $route, $http) {
|
|
|
|
/*
|
|
* Author: trashbo4t (github.com/trashbo4t)
|
|
*/
|
|
getPreviousTests();
|
|
|
|
$scope.previous = [];
|
|
$scope.previousDisplay = [];
|
|
$scope.throbber = true;
|
|
$scope.loading = "Running";
|
|
$scope.working = "Running speed test...";
|
|
$scope.library = true;
|
|
$scope.currentSpeedTest = false;
|
|
$scope.currentSpeedTestData = {};
|
|
$scope.fileToLookup = "";
|
|
|
|
function getPreviousTests() {
|
|
$api.request({
|
|
module: "InternetSpeedTest",
|
|
action: "getPreviousTests"
|
|
}, function (response) {
|
|
console.log("getPreviousTests", response);
|
|
|
|
for (var i = 0; i < response.length; i++)
|
|
{
|
|
var ok = $scope.previous.includes(response[i])
|
|
if (!ok)
|
|
{
|
|
var res = response[i].split("/");
|
|
$scope.previous.push(response[i]);
|
|
var res2 = res[5].split("-speedtest");
|
|
$scope.previousDisplay.push(res2[0]);
|
|
}
|
|
}
|
|
|
|
$scope.previousDisplay.reverse();
|
|
});
|
|
};
|
|
|
|
$scope.reloadPage = function () {
|
|
$api.request({
|
|
module: "InternetSpeedTest",
|
|
action: "clearLogFile",
|
|
}, function (response) {
|
|
});
|
|
|
|
$scope.currentSpeedTest = false;
|
|
$window.location.reload()
|
|
};
|
|
|
|
$scope.getSpeedTestFromFile = function (file) {
|
|
file = file.replace(/(\r\n\t|\n|\r\t)/gm,"");
|
|
$scope.fileToLookup = "/pineapple/modules/InternetSpeedTest/tests/"+file+"-speedtest";
|
|
|
|
console.log("getSpeedTestFromFile", "looking up speed test file " + $scope.fileToLookup);
|
|
|
|
$api.request({
|
|
module: "InternetSpeedTest",
|
|
action: "getSpeedTestFromFile",
|
|
file: $scope.fileToLookup
|
|
}, function (response) {
|
|
$scope.currentSpeedTest = $scope.speedTestToLookup;
|
|
|
|
if (response == false)
|
|
{
|
|
$scope.currentSpeedTest = "Failed";
|
|
$scope.currentSpeedTestData = "Invalid filename..";
|
|
}
|
|
else
|
|
{
|
|
$scope.currentSpeedTest = "Success";
|
|
$scope.currentSpeedTestData = response;
|
|
}
|
|
|
|
console.log("getSpeedTestFromFile response:", $scope.currentSpeedTestData);
|
|
$scope.library = false;
|
|
});
|
|
};
|
|
|
|
$scope.startSpeedTest = function () {
|
|
$scope.loading = "Running Test";
|
|
$scope.working = "Your Internet Speed Test is running. Please be patient, this may take a minute to finish depending on your internet speed.";
|
|
$scope.throbber = true;
|
|
|
|
console.log("startSpeedTest", "starting test...");
|
|
|
|
$api.request({
|
|
module: "InternetSpeedTest",
|
|
action: "startSpeedTest",
|
|
}, function (response) {
|
|
console.log("startSpeedTest", response);
|
|
|
|
$scope.currentSpeedTest = "";
|
|
if (response == false)
|
|
{
|
|
$scope.currentSpeedTest = "Failed";
|
|
$scope.currentSpeedTestData = "Test failed. Verify you are connected to the internet.";
|
|
}
|
|
else
|
|
{
|
|
$scope.currentSpeedTest = "Success";
|
|
$scope.currentSpeedTestData = response;
|
|
$scope.fileToLookup = "Running speed test";
|
|
}
|
|
|
|
// fire up the throbber
|
|
$scope.working = "click anywhere to continue";
|
|
$scope.loading = "Done";
|
|
$scope.library = false;
|
|
$scope.throbber = false;
|
|
});
|
|
|
|
};
|
|
}]);
|