secure-scuttlebot classic
at main 84 lines 2.0 kB view raw
1var h = require('hyperscript') 2var u = require('../util') 3var pull = require('pull-stream') 4var Scroller = require('pull-scroll') 5 6//var plugs = require('../plugs') 7//var message_render = plugs.first(exports.message_render = []) 8//var message_compose = plugs.first(exports.message_compose = []) 9//var sbot_log = plugs.first(exports.sbot_log = []) 10 11exports.needs = { 12 message_render: 'first', 13 message_compose: 'first', 14 sbot_query: 'first', 15} 16 17exports.gives = { 18 builtin_tabs: true, screen_view: true 19} 20 21exports.create = function (api) { 22 23 function publicFilter (opts) { 24 opts = opts || {} 25 var filter = { 26 $filter: { 27 rts: {} 28 } 29 } 30 if(opts.lt != null) filter.$filter.rts.$lt = opts.lt 31 if(opts.gt != null) filter.$filter.rts.$gt = opts.gt 32 if(!filter.$filter.rts.$lt && !filter.$filter.rts.$gt) 33 filter.$filter.rts.$gt = 0 34 return filter 35 } 36 37 function publicQuery (opts) { 38 opts = opts || {} 39 return api.sbot_query({ 40 query: [publicFilter(opts)], 41 reverse: opts.reverse, 42 limit: opts.limit, 43 live: opts.live, 44 old: opts.old 45 }) 46 } 47 48 return { 49 builtin_tabs: function () { 50 return ['/public'] 51 }, 52 53 screen_view: function (path, sbot) { 54 if(path === '/public') { 55 56 var content = h('div.column.scroller__content') 57 var div = h('div.column.scroller', 58 {style: {'overflow':'auto'}}, 59 h('div.scroller__wrapper', 60 api.message_compose({type: 'post'}, {placeholder: 'Write a public message'}), 61 content 62 ) 63 ) 64 65 pull( 66 publicQuery({old: false, live: true}), 67 Scroller(div, content, api.message_render, true, false) 68 ) 69 70 pull( 71 u.next(publicQuery, { 72 reverse: true, 73 limit: 100, 74 live: false, 75 old: true 76 }, ['rts']), 77 Scroller(div, content, api.message_render, false, false) 78 ) 79 80 return div 81 } 82 } 83 } 84}