git ssb

2+

ev / mvd



Tree: 30b8296223f75e62735b9a3b804ff6d9f7c27697

Files: 30b8296223f75e62735b9a3b804ff6d9f7c27697 / tools.js

1884 bytesRaw
1var h = require('hyperscript')
2var human = require('human-time')
3var avatar = require('./avatar')
4var ref = require('ssb-ref')
5
6var pull = require('pull-stream')
7
8var sbot = require('./scuttlebot')
9
10var config = require('./config')()
11
12function votes (msg) {
13 var votes = h('div.votes')
14 if (msg.key) {
15 pull(
16 sbot.backlinks({query: [{$filter: {dest: msg.key, value: { content: { type: 'vote' }}}}], live: true}),
17 pull.drain(function (data) {
18 console.log(data)
19 if (data.value) {
20 votes.appendChild(h('a', {href:'#' + data.key}, h('img.emoji', {src: config.emojiUrl + 'star.png'})))
21 console.log(data)
22 } else {console.log(data)}
23 })
24 )
25 }
26 return votes
27}
28
29module.exports.header = function (msg) {
30 return h('div.header',
31 h('span.avatar',
32 h('a', {href: '#' + msg.value.author},
33 h('span.avatar--small', avatar.image(msg.value.author)),
34 avatar.name(msg.value.author)
35 )
36 ),
37 h('span.timestamp', h('a', {href: '#' + msg.key}, human(new Date(msg.value.timestamp)))),
38 votes(msg)
39 )
40}
41
42module.exports.messageLink = function (msglink) {
43 var link = h('span', h('a', {href: '#' + msglink}, msglink.substring(0, 8) + '...'))
44 return link
45}
46
47module.exports.rawJSON = function (obj) {
48 return JSON.stringify(obj, null, 2)
49 .split(/([%@&][a-zA-Z0-9\/\+]{43}=*\.[\w]+)/)
50 .map(function (e) {
51 if(ref.isMsg(e) || ref.isFeed(e) || ref.isBlob(e)) {
52 return h('a', {href: '#' + e}, e)
53 }
54 return e
55 })
56}
57
58var markdown = require('ssb-markdown')
59var config = require('./config')()
60
61module.exports.markdown = function (msg, md) {
62 return {innerHTML: markdown.block(msg, {toUrl: function (url, image) {
63 if(url[0] == '%' || url[0] == '@') return '#' + url
64 if(!image) return url
65 if(url[0] !== '&') return url
66 return config.blobsUrl + url
67 }})}
68}
69

Built with git-ssb-web