/** * https://stackoverflow.com/questions/10420352 */ function humanFileSize(bytes) { if (bytes === 0) { return "? B" } let thresh = 1000; if (Math.abs(bytes) < thresh) { return bytes + ' B'; } let units = ['k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']; let u = -1; do { bytes /= thresh; ++u; } while (Math.abs(bytes) >= thresh && u < units.length - 1); return bytes.toFixed(1) + units[u]; } /** * https://stackoverflow.com/questions/6312993 */ function humanTime(sec_num) { sec_num = Math.floor(sec_num); let hours = Math.floor(sec_num / 3600); let minutes = Math.floor((sec_num - (hours * 3600)) / 60); let seconds = sec_num - (hours * 3600) - (minutes * 60); if (hours < 10) { hours = "0" + hours; } if (minutes < 10) { minutes = "0" + minutes; } if (seconds < 10) { seconds = "0" + seconds; } return hours + ":" + minutes + ":" + seconds; } function debounce(func, wait) { let timeout; return function() { let context = this, args = arguments; let later = function() { timeout = null; func.apply(context, args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); func.apply(context, args); }; }