Skip to content

Commit

Permalink
show overall upload/download speed
Browse files Browse the repository at this point in the history
  • Loading branch information
feross committed Mar 3, 2014
1 parent ac599e8 commit 6d028d8
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 6 deletions.
4 changes: 2 additions & 2 deletions chrome/app.html
Expand Up @@ -31,8 +31,8 @@
<div class="overall-stats">
<!-- TODO: heart should be colored red/green based on ratio -->
<span class="ratio"><i class="fa fa-heart fa-lg"></i>Ratio: <span></span></span>
<span class="upload"><i class="fa fa-arrow-up fa-lg"></i><span>0.0 KB/s</span></span>
<span class="download"><i class="fa fa-arrow-down fa-lg"></i><span>0.0 KB/s</span></span>
<span class="uploadSpeed"><i class="fa fa-arrow-up fa-lg"></i><span></span>/s</span>
<span class="downloadSpeed"><i class="fa fa-arrow-down fa-lg"></i><span></span>/s</span>
</div>

<main id="torrents">
Expand Down
2 changes: 1 addition & 1 deletion css/main.styl
Expand Up @@ -91,7 +91,7 @@ toolbar()
vertical-align: baseline
.ratio
float: left
.upload, .download
.uploadSpeed, .downloadSpeed
float: right
margin-left: 20px

Expand Down
2 changes: 2 additions & 0 deletions lib/app.js
Expand Up @@ -118,6 +118,8 @@ App.prototype.updateUI = function () {
})

$('.overall-stats .ratio span').text(self.torrentManager.ratio)
$('.overall-stats .uploadSpeed span').text(humanize.filesize(self.torrentManager.uploadSpeed()))
$('.overall-stats .downloadSpeed span').text(humanize.filesize(self.torrentManager.downloadSpeed()))

// Number of transfers
if (self.torrentManager.torrents.length === 1)
Expand Down
16 changes: 13 additions & 3 deletions lib/torrent-manager.js
Expand Up @@ -7,6 +7,7 @@ var EventEmitter = require('events').EventEmitter
var hat = require('hat')
var inherits = require('inherits')
var portfinder = require('chrome-portfinder')
var speedometer = require('speedometer')
var Torrent = require('./torrent')

var MAX_PEERS = 200
Expand All @@ -24,17 +25,19 @@ function TorrentManager () {
self.nodeId = new Buffer(hat(160), 'hex')

self.torrents = []
self.ready = false
this.downloadSpeed = speedometer()
this.uploadSpeed = speedometer()

self.dht = new DHT({ nodeId: self.nodeId })

self._reemitEvents(self.dht, 'dht', ['node', 'peer'])
// self._reemitEvents(self.dht, 'dht', ['node', 'peer'])

self.dht.on('peer', function (addr, infoHash) {
var torrent = self.getTorrent(infoHash)
torrent.addPeer(addr)
})

self.ready = false

self._installWindowEvents()

Expand Down Expand Up @@ -95,7 +98,14 @@ TorrentManager.prototype.add = function (uri) {
})
self.torrents.push(torrent)

self._reemitEvents(torrent, 'torrent', ['listening'])
torrent.swarm.on('download', function (downloaded) {
self.downloadSpeed(downloaded)
})
torrent.swarm.on('upload', function (uploaded) {
self.uploadSpeed(uploaded)
})

// self._reemitEvents(torrent, 'torrent', ['listening'])
self.emit('addTorrent', torrent)

torrent.on('listening', function (port) {
Expand Down

0 comments on commit 6d028d8

Please sign in to comment.