0e2288565d
The first iteration for config editor and server reload from the web interface.
62 lines
No EOL
2.5 KiB
JavaScript
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)
|
|
});
|
|
} |