diff options
author | cel <cel@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519> | 2017-04-12 17:35:59 -0700 |
---|---|---|
committer | cel <cel@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519> | 2017-04-12 18:51:16 -0700 |
commit | 74ca52116504c6844d590ac07ef17ee788501924 (patch) | |
tree | f72cb93c04cd7fd41a7216857339ba54f68aec68 /lib/serve.js | |
parent | 4bc88fee677e467a6444fd16ec6a90e7c9548aaa (diff) | |
download | patchfoo-74ca52116504c6844d590ac07ef17ee788501924.tar.gz patchfoo-74ca52116504c6844d590ac07ef17ee788501924.zip |
Show follows, followers, and friends (WIP)
Diffstat (limited to 'lib/serve.js')
-rw-r--r-- | lib/serve.js | 48 |
1 files changed, 45 insertions, 3 deletions
diff --git a/lib/serve.js b/lib/serve.js index 2f96d57..b394f39 100644 --- a/lib/serve.js +++ b/lib/serve.js @@ -799,10 +799,40 @@ Serve.prototype.wrapPage = function (title, searchQ) { ) } +Serve.prototype.renderFriend = function (id, cb) { + var el = this.app.render.idLink(id, function (err) { + cb(err, el) + }) +} + +Serve.prototype.friendList = function (friends, cb) { + var self = this + var list = h('div') + var first = true + pull( + pull.values(friends), + paramap(function (id, cb) { + self.renderFriend(id, function (err, el) { + if (err) el = u.renderError(err, ext) + cb(null, el) + }) + }, 8), + pull.drain(function (el) { + if (first) first = false + else list.appendChild(h('span', ', ')) + list.appendChild(el) + }, cb) + ) + return list +} + Serve.prototype.wrapUserFeed = function (id) { var self = this return u.hyperwrap(function (thread, cb) { - self.app.getAbout(id, function (err, about) { + var done = multicb({pluck: 1, spread: true}) + self.app.getAbout(id, done()) + self.app.getFriendInfo(id, done()) + done(function (err, about, info) { if (err) return cb(err) var done = multicb({pluck: 1, spread: true}) done()(null, [ @@ -815,8 +845,20 @@ Serve.prototype.wrapUserFeed = function (id) { h('code', h('small', id)), about.description ? h('div', {innerHTML: self.app.render.markdown(about.description)}) : '' - ))) - ), + )), + h('tr', + h('td', 'Friends:'), + h('td', self.friendList(info.friends, done())) + ), + h('tr', + h('td', 'Follows:'), + h('td', self.friendList(info.follows, done())) + ), + h('tr', + h('td', 'Followers:'), + h('td', self.friendList(info.followers, done())) + ) + )), thread ]) done(cb) |