var http = require('http') var fs = require('fs') var h = require('hyperscript') var pull = require('pull-stream') var client = require('ssb-client') var md = require('ssb-markdown') var avatar = require('ssb-avatar') var mo = require('moment') // var ref = require('ssb-ref') var title = 'sdash' var me = '@8Qee0I/DwI5DHSCi3p5fsl6FyLGArrnDz3ox9qZr5Qc=.ed25519' var bloburl = 'https://evbogue.com/ws/blobs/get/' client(function (err, sbot) { avatar(sbot, me, me, function (err, avatar){ if (err) throw err name = avatar.name image = avatar.image }) }) http.createServer(function (req, res){ if (req.url === '/') { client(function (err, sbot) { pull( sbot.query.read({query: [{$filter: { value: { author: me, content: {type: 'post'}}}}], limit: 1, reverse: true}), pull.drain(function (data) { post = data gotPost() }) ) }) function gotPost() { res.end( h('html', h('head', h('title', name + '\'s ' + title), h('style', fs.readFileSync('style.css', 'utf8')) ), h('body', h('div.msg', h('p.small.ri', mo(post.value.timestamp).fromNow()), h('img.avatar', {src: bloburl + image}), h('a', {href: me }, '@' + name), h('div', {innerHTML: md.block(post.value.content.text)}) ) ) ).outerHTML) } } }).listen(1337)