tstor/assets/js/routes.js
Antonio Navarro Perez 0e2288565d
Reload server and edit configuration. (#15)
The first iteration for config editor and server reload from the web interface.
2020-11-08 18:19:25 +01:00

62 lines
No EOL
2.5 KiB
JavaScript

var fileChunks = new FileChunks();
fetchData();
setInterval(function () {
fetchData();
}, 2000)
const MB = 1048576;
function fetchData() {
fetch('/api/routes')
.then(function (response) {
if (response.ok) {
return response.json();
} else {
toastError('Error getting data from server. Response: ' + response.status)
}
}).then(function (routes) {
routes.forEach(route => {
route.torrentStats.forEach(torrentStat => {
fileChunks.update(torrentStat.pieceChunks, torrentStat.totalPieces, torrentStat.hash);
var download = torrentStat.downloadedBytes / torrentStat.timePassed;
var upload = torrentStat.uploadedBytes / torrentStat.timePassed;
var seeders = torrentStat.seeders;
var peers = torrentStat.peers;
var pieceSize = torrentStat.pieceSize;
document.getElementById("up-down-speed-text-" + torrentStat.hash).innerText =
Humanize.ibytes(download, 1024) + "/s down, " + Humanize.ibytes(upload, 1024) + "/s up";
document.getElementById("peers-seeders-" + torrentStat.hash).innerText =
peers + " peers, " + seeders + " seeders."
document.getElementById("piece-size-" + torrentStat.hash).innerText = "Piece size: " + Humanize.bytes(pieceSize, 1024)
var className = "";
if (seeders < 2) {
className = "text-danger";
} else if (seeders >= 2 && seeders < 4) {
className = "text-warning";
} else {
className = "text-success";
}
document.getElementById("peers-seeders-" + torrentStat.hash).className = className;
if (pieceSize <= MB) {
className = "text-success";
} else if (pieceSize > MB && pieceSize < (MB * 4)) {
className = "text-warning";
} else {
className = "text-danger";
}
document.getElementById("piece-size-" + torrentStat.hash).className = className;
});
});
})
.catch(function (error) {
toastError('Error getting status info: ' + error.message)
});
}