git ssb

0+

alanz / patchwork



forked from Matt McKegg / patchwork

Tree: 0d7ab4023cc3d953c3edb70e8ca7d2c67ed4881e

Files: 0d7ab4023cc3d953c3edb70e8ca7d2c67ed4881e / sbot / channels.js

827 bytesRaw
1var FlumeReduce = require('flumeview-reduce')
2var normalizeChannel = require('../lib/normalize-channel')
3
4module.exports = function (ssb, config) {
5 return ssb._flumeUse('patchwork-channels', FlumeReduce(1, reduce, map))
6}
7
8function reduce (result, item) {
9 if (!result) result = {}
10 if (item) {
11 for (var channel in item) {
12 var value = result[channel]
13 if (!value) {
14 value = result[channel] = {count: 0, timestamp: 0}
15 }
16 value.count += 1
17 if (item[channel].timestamp > value.timestamp) {
18 value.timestamp = item[channel].timestamp
19 }
20 }
21 }
22 return result
23}
24
25function map (msg) {
26 if (msg.value.content) {
27 var channel = normalizeChannel(msg.value.content.channel)
28 if (channel) {
29 return {
30 [channel]: {timestamp: msg.timestamp}
31 }
32 }
33 }
34}
35

Built with git-ssb-web