From d09eab73ae3a9d7f447dfafca886750acd04e58d Mon Sep 17 00:00:00 2001 From: Jacob Karlsson Date: Fri, 6 Jul 2018 23:50:18 +0200 Subject: [PATCH] Count attendees --- index.js | 26 ++++++++++++++++++++++---- render.js | 13 ++++++------- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/index.js b/index.js index 79140be..2a0e012 100644 --- a/index.js +++ b/index.js @@ -398,13 +398,31 @@ exports.init = function (sbot, config) { function addGatheringAbout(msg, cb) { if (msg.value && msg.value.content.type === 'gathering') { - console.log('adding gathering abouts. msg:', msg) getAbout(msg.key, (err, about) => { - if (err) { return cb(err) } + if (err) { cb(err) } msg.value.content.about = about - console.log('about gathering', about) - cb(null, msg) + + pull( + sbot.backlinks.read({ + query: [{ $filter: { + dest: msg.key, + value: { content: { type: 'about' }}, + }}], + index: 'DTA' + }), + //pull.map(o => { console.log('bl:', o.value.content); return o }), + // Only grab messages about attendance + pull.filter(o => o.value.content.attendee !== undefined), + // Filter "can't attend"-messages + pull.filter(o => !o.value.content.attendee.remove), + pull.unique(o => o.value.content.attendee.link), + pull.collect((err, arr) => { + if (err) { cb(err) } + msg.value.content.numberAttending = arr.length + cb(null, msg) + }) + ) }) } else { cb(null, msg) diff --git a/render.js b/render.js index 3caccc3..1d3436b 100644 --- a/render.js +++ b/render.js @@ -296,6 +296,9 @@ var styles = ` background-color: #748ffc; border-bottom: 3px solid #4c6ef5; } + .attending { + text-align: center; + } `; @@ -524,23 +527,19 @@ function render(opts, id, c) { return [channel, h('h2', c.title), s]; } else if (c.type === 'gathering') { - return ['id: ' + id, - h('div', - renderGathering(opts, id, c) - ) - ] + return h('div', renderGathering(opts, id, c)) } else return renderDefault(c); } function renderGathering(opts, id, c) { - console.log('opts', opts) - console.log('gathering content:', c) const desc = h('div') desc.innerHTML = marked(c.about.description, opts.marked) const image = h('p', h('img', { src: opts.img_base + c.about.image })) + const attending = h('h3.attending', c.numberAttending + ' attending') return h('section', [image, + attending, desc] ) }