Commit d3fa74279a5889e43979815541017b56d50f9c23
add support for private messages
Ev Bogue committed on 6/11/2018, 9:29:34 PMParent: b934c63c9cd0fa08b3e84acd8cf5c8bae64e994c
Files changed
tools.js | changed |
tools.js | |||
---|---|---|---|
@@ -2,16 +2,82 @@ | |||
2 | 2 … | var human = require('human-time') | |
3 | 3 … | var avatar = require('./avatar') | |
4 | 4 … | var ref = require('ssb-ref') | |
5 | 5 … | ||
6 … | +var ssbKeys = require('ssb-keys') | ||
7 … | + | ||
6 | 8 … | var pull = require('pull-stream') | |
7 | 9 … | ||
8 | 10 … | var sbot = require('./scuttlebot') | |
9 | 11 … | ||
10 | 12 … | var config = require('./config')() | |
11 | 13 … | ||
12 | 14 … | var id = require('./keys').id | |
13 | 15 … | ||
16 … | +module.exports.box = function (content) { | ||
17 … | + return ssbKeys.box(content, content.recps.map(function (e) { | ||
18 … | + return ref.isFeed(e) ? e : e.link | ||
19 … | + })) | ||
20 … | +} | ||
21 … | + | ||
22 … | +module.exports.publish = function (content, cb) { | ||
23 … | + if(content.recps) | ||
24 … | + content = exports.box(content) | ||
25 … | + sbot.publish(content, function (err, msg) { | ||
26 … | + if(err) throw err | ||
27 … | + console.log('Published!', msg) | ||
28 … | + if(cb) cb(err, msg) | ||
29 … | + }) | ||
30 … | +} | ||
31 … | + | ||
32 … | +module.exports.done = function (src) { | ||
33 … | + var content = { | ||
34 … | + type: 'done', | ||
35 … | + vote: {'link': src} | ||
36 … | + } | ||
37 … | + | ||
38 … | + var done = h('button.btn.right', 'Done ', h('img.emoji', {src: config.emojiUrl + 'v.png'}), { | ||
39 … | + onclick: function () { | ||
40 … | + content.done = true | ||
41 … | + content.mentions = [id] | ||
42 … | + content.recps = [id] | ||
43 … | + exports.publish(content, function (err, published) { | ||
44 … | + if (err) throw err | ||
45 … | + }) | ||
46 … | + } | ||
47 … | + }) | ||
48 … | + | ||
49 … | + return done | ||
50 … | + | ||
51 … | +} | ||
52 … | + | ||
53 … | +module.exports.mute = function (src) { | ||
54 … | + if (!localStorage[src]) | ||
55 … | + var cache = {mute: false} | ||
56 … | + else | ||
57 … | + var cache = JSON.parse(localStorage[src]) | ||
58 … | + | ||
59 … | + if (cache.mute == true) { | ||
60 … | + var mute = h('button.btn', 'Unmute', { | ||
61 … | + onclick: function () { | ||
62 … | + cache.mute = false | ||
63 … | + localStorage[src] = JSON.stringify(cache) | ||
64 … | + location.reload() | ||
65 … | + } | ||
66 … | + }) | ||
67 … | + return mute | ||
68 … | + } else { | ||
69 … | + var mute = h('button.btn', 'Mute', { | ||
70 … | + onclick: function () { | ||
71 … | + cache.mute = true | ||
72 … | + localStorage[src] = JSON.stringify(cache) | ||
73 … | + location.reload() | ||
74 … | + } | ||
75 … | + }) | ||
76 … | + return mute | ||
77 … | + } | ||
78 … | +} | ||
79 … | + | ||
14 | 80 … | module.exports.star = function (msg) { | |
15 | 81 … | var votebutton = h('span.star:' + msg.key.substring(0,44)) | |
16 | 82 … | ||
17 | 83 … | var vote = { | |
@@ -48,13 +114,15 @@ | |||
48 | 114 … | pull.drain(function (link) { | |
49 | 115 … | if (link.key) { | |
50 | 116 … | sbot.get(link.key, function (err, data) { | |
51 | 117 … | if (err) throw err | |
52 | - if (data.author == id) { | ||
53 | - if (data.content.vote.value == 1) | ||
54 | - votebutton.replaceChild(unstar, star) | ||
55 | - if (data.content.vote.value == -1) | ||
56 | - votebutton.replaceChild(star, unstar) | ||
118 … | + if (data.content.vote) { | ||
119 … | + if (data.author == id) { | ||
120 … | + if (data.content.vote.value == 1) | ||
121 … | + votebutton.replaceChild(unstar, star) | ||
122 … | + if (data.content.vote.value == -1) | ||
123 … | + votebutton.replaceChild(star, unstar) | ||
124 … | + } | ||
57 | 125 … | } | |
58 | 126 … | }) | |
59 | 127 … | } | |
60 | 128 … | }) | |
@@ -71,20 +139,24 @@ | |||
71 | 139 … | pull.drain(function (link) { | |
72 | 140 … | if (link.key) { | |
73 | 141 … | sbot.get(link.key, function (err, data) { | |
74 | 142 … | if (err) throw err | |
75 | - if (data.content.vote.value == 1) { | ||
76 | - if (localStorage[data.author + 'name']) | ||
77 | - name = localStorage[data.author + 'name'] | ||
78 | - else | ||
79 | - name = data.author | ||
80 | - votes.appendChild(h('a#vote:' + data.author.substring(0, 44), {href:'#' + data.author, title: name}, h('img.emoji', {src: config.emojiUrl + 'star.png'}))) | ||
143 … | + if (data.content.vote) { | ||
144 … | + if (data.content.vote.value == 1) { | ||
145 … | + if (localStorage[data.author + 'name']) | ||
146 … | + name = localStorage[data.author + 'name'] | ||
147 … | + else | ||
148 … | + name = data.author | ||
149 … | + votes.appendChild(h('a#vote:' + data.author.substring(0, 44), {href:'#' + data.author, title: name}, h('img.emoji', {src: config.emojiUrl + 'star.png'}))) | ||
150 … | + } | ||
151 … | + else if (data.content.vote.value == -1) { | ||
152 … | + var lookFor = 'vote:' + data.author.substring(0, 44) | ||
153 … | + document.getElementById(lookFor, function (err, gotit) { | ||
154 … | + if (err) throw err | ||
155 … | + gotit.parentNode.removeChild(remove) | ||
156 … | + }) | ||
157 … | + } | ||
81 | 158 … | } | |
82 | - else if (data.content.vote.value == -1) { | ||
83 | - var lookFor = 'vote:' + data.author.substring(0, 44) | ||
84 | - var remove = document.getElementById(lookFor) | ||
85 | - remove.parentNode.removeChild(remove) | ||
86 | - } | ||
87 | 159 … | }) | |
88 | 160 … | } | |
89 | 161 … | }) | |
90 | 162 … | ) | |
@@ -116,18 +188,25 @@ | |||
116 | 188 … | } | |
117 | 189 … | ||
118 | 190 … | ||
119 | 191 … | module.exports.header = function (msg) { | |
120 | - return h('div.header', | ||
121 | - h('span.avatar', | ||
192 … | + var header = h('div.header') | ||
193 … | + | ||
194 … | + header.appendChild(h('span.avatar', | ||
122 | 195 … | h('a', {href: '#' + msg.value.author}, | |
123 | 196 … | h('span.avatar--small', avatar.image(msg.value.author)), | |
124 | 197 … | avatar.name(msg.value.author) | |
125 | 198 … | ) | |
126 | - ), | ||
127 | - exports.timestamp(msg), | ||
128 | - votes(msg) | ||
199 … | + ) | ||
129 | 200 … | ) | |
201 … | + | ||
202 … | + header.appendChild(exports.timestamp(msg)) | ||
203 … | + header.appendChild(votes(msg)) | ||
204 … | + | ||
205 … | + if (msg.value.private) | ||
206 … | + header.appendChild(h('span.right', ' ', h('img.emoji', {src: config.emojiUrl + 'lock.png'}))) | ||
207 … | + | ||
208 … | + return header | ||
130 | 209 … | } | |
131 | 210 … | ||
132 | 211 … | var ref = require('ssb-ref') | |
133 | 212 … |
Built with git-ssb-web