Files: aca13bd521d14b347383cfa1f8a098cf71a71412 / index.js
1481 bytesRaw
1 | var http = require('http') |
2 | var fs = require('fs') |
3 | var h = require('hyperscript') |
4 | var pull = require('pull-stream') |
5 | var client = require('ssb-client') |
6 | var md = require('ssb-markdown') |
7 | var avatar = require('ssb-avatar') |
8 | var mo = require('moment') |
9 | // var ref = require('ssb-ref') |
10 | |
11 | var title = 'sdash' |
12 | var me = '@8Qee0I/DwI5DHSCi3p5fsl6FyLGArrnDz3ox9qZr5Qc=.ed25519' |
13 | var bloburl = 'https://evbogue.com/ws/blobs/get/' |
14 | |
15 | client(function (err, sbot) { |
16 | avatar(sbot, me, me, function (err, avatar){ |
17 | if (err) throw err |
18 | name = avatar.name |
19 | image = avatar.image |
20 | sbot.close() |
21 | }) |
22 | }) |
23 | |
24 | http.createServer(function (req, res){ |
25 | if (req.url === '/') { |
26 | client(function (err, sbot) { |
27 | pull( |
28 | sbot.query.read({query: [{$filter: { value: { author: me, content: {type: 'post'}}}}], limit: 1, reverse: true}), |
29 | pull.drain(function (data) { |
30 | post = data |
31 | gotPost() |
32 | sbot.close() |
33 | }) |
34 | ) |
35 | }) |
36 | function gotPost() { |
37 | res.end( |
38 | h('html', |
39 | h('head', |
40 | h('title', name + '\'s ' + title), |
41 | h('style', fs.readFileSync('style.css', 'utf8')) |
42 | ), |
43 | h('body', |
44 | h('div.msg', |
45 | h('p.small.ri', mo(post.value.timestamp).fromNow()), |
46 | h('img.avatar', {src: bloburl + image}), |
47 | h('a', {href: me }, '@' + name), |
48 | h('div', {innerHTML: md.block(post.value.content.text)}) |
49 | ) |
50 | ) |
51 | ).outerHTML) |
52 | } |
53 | } |
54 | }).listen(1337) |
55 |
Built with git-ssb-web