diff --git a/bin/cmd.js b/bin/cmd.js index 05c0d896..f1e695c8 100755 --- a/bin/cmd.js +++ b/bin/cmd.js @@ -438,21 +438,39 @@ function drawTorrent (torrent) { '{green:blocked:} {bold:' + torrent.numBlockedPeers + '}' ) clivas.line('{80:}') - linesremaining -= 8 + linesremaining -= 9 var pieces = torrent.storage.pieces + var storageMem = 0 for (var i = 0; i < pieces.length; i++) { var piece = pieces[i] + if (piece.buffer) + storageMem += piece.buffer.length if (piece.verified || piece.blocksWritten === 0) { continue; } var bar = '' for (var j = 0; j < piece.blocks.length; j++) { - bar += piece.blocks[j] ? '{green:█}' : '{red:█}'; + switch(piece.blocks[j]) { + case 0: + bar += '{red:█}'; + break; + case 1: + bar += '{blue:█}'; + break; + case 2: + bar += '{green:█}'; + break; + default: + throw 'Invalid block state: ' + piece.blocks[j] + } } clivas.line('{4+cyan:' + i + '} ' + bar); linesremaining -= 1 } + clivas.line( + '{red:storage mem:} {bold:' + Math.ceil(storageMem / 1024) + ' KB} ' + ) clivas.line('{80:}') linesremaining -= 1 diff --git a/lib/fs-storage.js b/lib/fs-storage.js index cd32d4e5..6942e40e 100644 --- a/lib/fs-storage.js +++ b/lib/fs-storage.js @@ -160,6 +160,7 @@ FSStorage.prototype._onPieceDone = function (piece) { var writeToNextFile = function (err) { if (err) return self.emit('error', err) if (i >= end) { + delete piece.buffer return cb() }