Files: 64a56737c49b12ec93757440a89e0f9372d249aa / index.js
1424 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 | http.createServer(function (req, res){ |
16 | if (req.url === '/') { |
17 | client(function (err, sbot) { |
18 | avatar(sbot, me, me, function (err, avatar){ |
19 | if (err) throw err |
20 | name = avatar.name |
21 | image = avatar.image |
22 | }) |
23 | pull( |
24 | sbot.query.read({query: [{$filter: { value: { author: me, content: {type: 'post'}}}}], limit: 1, reverse: true}), |
25 | pull.drain(function (data) { |
26 | post = data |
27 | gotPost() |
28 | }) |
29 | ) |
30 | }) |
31 | function gotPost() { |
32 | res.end( |
33 | h('html', |
34 | h('head', |
35 | h('title', name + '\'s ' + title), |
36 | h('style', fs.readFileSync('style.css', 'utf8')) |
37 | ), |
38 | h('body', |
39 | h('div.msg', |
40 | h('p.small.ri', mo(post.value.timestamp).fromNow()), |
41 | h('img.avatar', {src: bloburl + image}), |
42 | h('a', {href: me }, '@' + name), |
43 | h('div', {innerHTML: md.block(post.value.content.text)}) |
44 | ) |
45 | ) |
46 | ).outerHTML) |
47 | } |
48 | } |
49 | }).listen(1337) |
50 |
Built with git-ssb-web