function load() { let intervalID = window.setInterval(get_active_torrents, 20000); } function get_active_torrents() { let httpRequest; httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = function() { if (httpRequest.readyState !== XMLHttpRequest.DONE) { return; } if (httpRequest.status !== 200) { return; } torrents = JSON.parse(httpRequest.responseText); let html_str = ''; for (let i = 0; i < torrents.length; i++) { html_str += '' + torrents[i].name + '' + torrents[i].state + '' + speedrate(torrents[i].downrate) + '' + speedrate(torrents[i].uprate) + '' + torrents[i].tracker + ""; } document.getElementById('torrents').children[1].innerHTML = html_str; }; httpRequest.open('GET', get_torrents_uri, true); httpRequest.send(); } function speedrate(rate) { let unit = 'B/s'; if (rate > 1024) { rate /= 1024; unit = 'KiB/s'; } if (rate > 1024) { rate /= 1024; unit = 'MiB/s'; } rate = Math.round(rate*10)/10; // different from Python's round() return rate + unit; }