From 487a99ede50bdbbd5308b1b446b9fc354d0a8c27 Mon Sep 17 00:00:00 2001 From: cel Date: Sun, 2 Apr 2017 12:20:20 -0400 Subject: Add peers page --- lib/app.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'lib/app.js') diff --git a/lib/app.js b/lib/app.js index 230768a..25cb02c 100644 --- a/lib/app.js +++ b/lib/app.js @@ -157,3 +157,31 @@ App.prototype.createLogStream = function (opts) { ? this.sbot.createFeedStream(opts) : this.sbot.createLogStream(opts) } + +var stateVals = { + connected: 3, + connecting: 2, + disconnecting: 1, +} + +function comparePeers(a, b) { + var aState = stateVals[a.state] || 0 + var bState = stateVals[b.state] || 0 + return bState > aState ? 1 : bState < aState ? -1 : + b.stateChange - a.stateChange +} + +App.prototype.streamPeers = function (opts) { + var gossip = this.sbot.gossip + return u.readNext(function (cb) { + gossip.peers(function (err, peers) { + if (err) return cb(err) + if (opts) peers = peers.filter(function (peer) { + for (var k in opts) if (opts[k] !== peer[k]) return false + return true + }) + peers.sort(comparePeers) + cb(null, pull.values(peers)) + }) + }) +} -- cgit v1.2.3