Commit cde57d98f029001047a363e2ad736da3fc6bedd7
second attempt at base modules
Michael Williams committed on 12/18/2016, 8:34:35 AMParent: ca86f8a3ab637b07b9de5d26f1106bc0bc9ea03d
Files changed
modules_basic/avatar-edit.js | changed |
modules_basic/avatar-image.js | changed |
modules_basic/follow.js | changed |
modules_basic/invite.js | changed |
modules_basic/private.js | changed |
modules_basic/setup.js | changed |
modules_basic/thread.js | changed |
modules_core/app.js | changed |
modules_core/blob-url.js | changed |
modules_core/crypto.js | changed |
modules_core/index.js | changed |
modules_core/message-confirm.js | changed |
modules_core/sbot.js | changed |
modules_core/config.js | added |
modules_core/keys.js | added |
modules_core/self-id.js | added |
modules_extra/audio-mp3.js | changed |
modules_extra/git.js | changed |
modules_extra/notifications.js | changed |
package.json | changed |
config.js | deleted |
keys.js | deleted |
modules_basic/avatar-edit.js | ||
---|---|---|
@@ -8,9 +8,8 @@ | ||
8 | 8 … | var getAvatar = require('ssb-avatar') |
9 | 9 … | var plugs = require('../plugs') |
10 | 10 … | var ref = require('ssb-ref') |
11 | 11 … | var visualize = require('visualize-buffer') |
12 | -var self_id = require('../keys').id | |
13 | 12 … | |
14 | 13 … | //var confirm = plugs.first(exports.message_confirm = []) |
15 | 14 … | //var sbot_blobs_add = plugs.first(exports.sbot_blobs_add = []) |
16 | 15 … | //var blob_url = plugs.first(exports.blob_url = []) |
@@ -36,8 +35,9 @@ | ||
36 | 35 … | ) |
37 | 36 … | } |
38 | 37 … | |
39 | 38 … | exports.needs = { |
39 … | + self_id: 'first', | |
40 | 40 … | message_confirm: 'first', |
41 | 41 … | sbot_blobs_add: 'first', |
42 | 42 … | blob_url: 'first', |
43 | 43 … | sbot_links: 'first', |
@@ -46,8 +46,10 @@ | ||
46 | 46 … | |
47 | 47 … | exports.gives = 'avatar_edit' |
48 | 48 … | |
49 | 49 … | exports.create = function (api) { |
50 … | + var self_id = api.self_id | |
51 … | + | |
50 | 52 … | return function (id) { |
51 | 53 … | |
52 | 54 … | var img = visualize(new Buffer(id.substring(1), 'base64'), 256) |
53 | 55 … | img.classList.add('avatar--large') |
modules_basic/avatar-image.js | ||
---|---|---|
@@ -6,16 +6,15 @@ | ||
6 | 6 … | var visualize = require('visualize-buffer') |
7 | 7 … | |
8 | 8 … | var pull = require('pull-stream') |
9 | 9 … | |
10 | -var self_id = require('../keys').id | |
11 | - | |
12 | 10 … | //var plugs = require('../plugs') |
13 | 11 … | //var sbot_query = plugs.first(exports.sbot_query = []) |
14 | 12 … | //var blob_url = require('../plugs').first(exports.blob_url = []) |
15 | 13 … | // |
16 | 14 … | |
17 | 15 … | exports.needs = { |
16 … | + self_id: 'first', | |
18 | 17 … | sbot_query: 'first', |
19 | 18 … | blob_url: 'first' |
20 | 19 … | } |
21 | 20 … | |
@@ -34,8 +33,9 @@ | ||
34 | 33 … | |
35 | 34 … | var last = 0 |
36 | 35 … | |
37 | 36 … | exports.create = function (api) { |
37 … | + var self_id = api.self_id | |
38 | 38 … | var avatars = {} |
39 | 39 … | |
40 | 40 … | //blah blah |
41 | 41 … | return { |
modules_basic/follow.js | ||
---|---|---|
@@ -15,8 +15,9 @@ | ||
15 | 15 … | return value ? name : value === false ? 'un'+name : '' |
16 | 16 … | } |
17 | 17 … | |
18 | 18 … | exports.needs = { |
19 … | + self_id: 'first', | |
19 | 20 … | avatar: 'first', |
20 | 21 … | avatar_name: 'first', |
21 | 22 … | avatar_link: 'first', |
22 | 23 … | message_confirm: 'first', |
@@ -29,8 +30,10 @@ | ||
29 | 30 … | avatar_action: true, |
30 | 31 … | } |
31 | 32 … | |
32 | 33 … | exports.create = function (api) { |
34 … | + var self_id = api.self_id | |
35 … | + | |
33 | 36 … | var exports = {} |
34 | 37 … | exports.message_content = |
35 | 38 … | exports.message_content_mini = function (msg) { |
36 | 39 … | var content = msg.value.content |
@@ -56,9 +59,8 @@ | ||
56 | 59 … | |
57 | 60 … | exports.avatar_action = function (id) { |
58 | 61 … | var follows_you, you_follow |
59 | 62 … | |
60 | - var self_id = require('../keys').id | |
61 | 63 … | api.follower_of(self_id, id, function (err, f) { |
62 | 64 … | you_follow = f |
63 | 65 … | update() |
64 | 66 … | }) |
modules_basic/invite.js | ||
---|---|---|
@@ -1,8 +1,7 @@ | ||
1 | 1 … | |
2 | 2 … | var ref = require('ssb-ref') |
3 | 3 … | var ssbClient = require('ssb-client') |
4 | -var id = require('../keys').id | |
5 | 4 … | var h = require('hyperscript') |
6 | 5 … | |
7 | 6 … | var Progress = require('hyperprogress') |
8 | 7 … | |
@@ -11,8 +10,9 @@ | ||
11 | 10 … | //var sbot_gossip_connect = plugs.first(exports.sbot_gossip_connect = []) |
12 | 11 … | //var follower_of = plugs.first(exports.follower_of = []) |
13 | 12 … | |
14 | 13 … | exports.needs = { |
14 … | + self_id: 'first', | |
15 | 15 … | sbot_publish: 'first', |
16 | 16 … | sbot_gossip_connect: 'first', |
17 | 17 … | follower_of: 'first', |
18 | 18 … | invite_parse: 'first', |
@@ -24,8 +24,10 @@ | ||
24 | 24 … | screen_view: true |
25 | 25 … | } |
26 | 26 … | |
27 | 27 … | exports.create = function (api) { |
28 … | + var self_id = api.self_id | |
29 … | + | |
28 | 30 … | var self |
29 | 31 … | return self = { |
30 | 32 … | invite_parse: function (invite) { |
31 | 33 … | return ref.parseInvite(invite) |
@@ -47,12 +49,12 @@ | ||
47 | 49 … | }, function (err, sbot) { |
48 | 50 … | if(err) return cb(err) |
49 | 51 … | onProgress('requesting follow...') |
50 | 52 … | console.log(sbot) |
51 | - sbot.invite.use({feed: id}, function (err, msg) { | |
53 … | + sbot.invite.use({feed: self_id}, function (err, msg) { | |
52 | 54 … | |
53 | 55 … | //if they already follow us, just check we actually follow them. |
54 | - if(err) api.follower_of(id, data.key, function (_err, follows) { | |
56 … | + if(err) api.follower_of(self_id, data.key, function (_err, follows) { | |
55 | 57 … | if(follows) cb(err) |
56 | 58 … | else next() |
57 | 59 … | }) |
58 | 60 … | else next() |
modules_basic/private.js | ||
---|---|---|
@@ -19,8 +19,9 @@ | ||
19 | 19 … | if(Array.isArray(ary)) return ary.map(iter) |
20 | 20 … | } |
21 | 21 … | |
22 | 22 … | exports.needs = { |
23 … | + self_id: 'first', | |
23 | 24 … | message_render: 'first', |
24 | 25 … | message_compose: 'first', |
25 | 26 … | message_unbox: 'first', |
26 | 27 … | sbot_log: 'first', |
@@ -36,8 +37,9 @@ | ||
36 | 37 … | message_content_mini: true |
37 | 38 … | } |
38 | 39 … | |
39 | 40 … | exports.create = function (api) { |
41 … | + var self_id = api.self_id | |
40 | 42 … | |
41 | 43 … | function unbox () { |
42 | 44 … | return pull( |
43 | 45 … | pull.filter(function (msg) { |
@@ -63,20 +65,19 @@ | ||
63 | 65 … | |
64 | 66 … | // if local id is different from sbot id, sbot won't have indexes of |
65 | 67 … | // private threads |
66 | 68 … | //TODO: put all private indexes client side. |
67 | - var id = require('../keys').id | |
68 | 69 … | api.sbot_whoami(function (err, feed) { |
69 | 70 … | if (err) return console.error(err) |
70 | - if(id !== feed.id) | |
71 … | + if(self_id !== feed.id) | |
71 | 72 … | return div.appendChild(h('h4', |
72 | 73 … | 'Private messages are not supported in the lite client.')) |
73 | 74 … | |
74 | 75 … | var compose = api.message_compose( |
75 | 76 … | {type: 'post', recps: [], private: true}, |
76 | 77 … | { |
77 | 78 … | prepublish: function (msg) { |
78 | - msg.recps = [id].concat(msg.mentions).filter(function (e) { | |
79 … | + msg.recps = [self_id].concat(msg.mentions).filter(function (e) { | |
79 | 80 … | return ref.isFeed('string' === typeof e ? e : e.link) |
80 | 81 … | }) |
81 | 82 … | if(!msg.recps.length) |
82 | 83 … | throw new Error('cannot make private message without recipients - just mention the user in an at reply in the message you send') |
@@ -124,5 +125,4 @@ | ||
124 | 125 … | } |
125 | 126 … | } |
126 | 127 … | |
127 | 128 … | } |
128 | - |
modules_basic/setup.js | ||
---|---|---|
@@ -11,8 +11,9 @@ | ||
11 | 11 … | //var sbot_query = plugs.first(exports.sbot_query = []) |
12 | 12 … | //var avatar = plugs.first(exports.avatar = []) |
13 | 13 … | |
14 | 14 … | exports.needs = { |
15 … | + self_id: 'first', | |
15 | 16 … | avatar: 'first', |
16 | 17 … | avatar_edit: 'first', |
17 | 18 … | invite_parse: 'first', |
18 | 19 … | invite_accept: 'first', |
@@ -37,16 +38,17 @@ | ||
37 | 38 … | }}] |
38 | 39 … | } |
39 | 40 … | |
40 | 41 … | exports.create = function (api) { |
42 … | + var self_id = api.self_id | |
41 | 43 … | |
42 | 44 … | var exports = {} |
43 | 45 … | |
44 | 46 … | //test whether we are connected to the ssb network. |
45 | 47 … | exports.setup_is_fresh_install = function (cb) { |
46 | 48 … | //test by checking whether you have any friends following you? |
47 | 49 … | pull( |
48 | - api.sbot_query({query: followers_query(id), limit: 1, live: false}), | |
50 … | + api.sbot_query({query: followers_query(self_id), limit: 1, live: false}), | |
49 | 51 … | pull.collect(function (err, ary) { |
50 | 52 … | cb(err, !!ary.length) |
51 | 53 … | }) |
52 | 54 … | ) |
@@ -131,10 +133,8 @@ | ||
131 | 133 … | exports.screen_view = function (path) { |
132 | 134 … | |
133 | 135 … | if(path !== '/setup') return |
134 | 136 … | |
135 | - var id = require('../keys').id | |
136 | - | |
137 | 137 … | //set up an avatar |
138 | 138 … | |
139 | 139 … | |
140 | 140 … | var status = h('span') |
@@ -142,17 +142,17 @@ | ||
142 | 142 … | return h('div.scroller', h('div.scroller__wrapper', |
143 | 143 … | h('h1', 'welcome to patchbay!'), |
144 | 144 … | h('div', |
145 | 145 … | 'please choose avatar image and name', |
146 | - api.avatar_edit(id) | |
146 … | + api.avatar_edit(self_id) | |
147 | 147 … | ), |
148 | 148 … | h('h2', 'join network'), |
149 | 149 … | invite_form(), |
150 | 150 … | //show avatars of anyone on the same local network. |
151 | 151 … | //show realtime changes in your followers, especially for local. |
152 | 152 … | |
153 | 153 … | exports.progress_bar(), |
154 | - exports.setup_joined_network(require('../keys').id) | |
154 … | + exports.setup_joined_network(self_id) | |
155 | 155 … | )) |
156 | 156 … | } |
157 | 157 … | |
158 | 158 … | return exports |
modules_basic/thread.js | ||
---|---|---|
@@ -4,9 +4,8 @@ | ||
4 | 4 … | var ref = require('ssb-ref') |
5 | 5 … | var h = require('hyperscript') |
6 | 6 … | var u = require('../util') |
7 | 7 … | var Scroller = require('pull-scroll') |
8 | -var self_id = require('../keys').id | |
9 | 8 … | |
10 | 9 … | function once (cont) { |
11 | 10 … | var ended = false |
12 | 11 … | return function (abort, cb) { |
@@ -31,8 +30,9 @@ | ||
31 | 30 … | //var sbot_get = plugs.first(exports.sbot_get = []) |
32 | 31 … | //var sbot_links = plugs.first(exports.sbot_links = []) |
33 | 32 … | |
34 | 33 … | exports.needs = { |
34 … | + self_id: 'first', | |
35 | 35 … | message_render: 'first', |
36 | 36 … | message_name: 'first', |
37 | 37 … | message_compose: 'first', |
38 | 38 … | message_unbox: 'first', |
@@ -43,8 +43,9 @@ | ||
43 | 43 … | exports.gives = 'screen_view' |
44 | 44 … | |
45 | 45 … | |
46 | 46 … | exports.create = function (api) { |
47 … | + var self_id = api.self_id | |
47 | 48 … | |
48 | 49 … | function getThread (root, cb) { |
49 | 50 … | //in this case, it's inconvienent that panel only takes |
50 | 51 … | //a stream. maybe it would be better to accept an array? |
modules_core/app.js | ||
---|---|---|
@@ -1,5 +1,4 @@ | ||
1 | -var plugs = require('../plugs') | |
2 | 1 … | var h = require('hyperscript') |
3 | 2 … | |
4 | 3 … | module.exports = { |
5 | 4 … | needs: {screen_view: 'first'}, |
modules_core/blob-url.js | ||
---|---|---|
@@ -1,13 +1,13 @@ | ||
1 | -var config = require('../config') | |
2 | - | |
3 | 1 … | module.exports = { |
2 … | + needs: {config: 'first'}, | |
4 | 3 … | gives: 'blob_url', |
5 | - create: function () { | |
4 … | + create: function (api) { | |
5 … | + var config = api.config | |
6 | 6 … | return function (link) { |
7 | 7 … | if('string' == typeof link.link) |
8 | 8 … | link = link.link |
9 | - return config().blobsUrl + '/'+link | |
9 … | + return config.blobsUrl + '/'+link | |
10 | 10 … | } |
11 | 11 … | } |
12 | 12 … | } |
13 | 13 … |
modules_core/crypto.js | ||
---|---|---|
@@ -1,6 +1,5 @@ | ||
1 | 1 … | var ref = require('ssb-ref') |
2 | -var keys = require('../keys') | |
3 | 2 … | var ssbKeys = require('ssb-keys') |
4 | 3 … | |
5 | 4 … | function unbox_value(msg) { |
6 | 5 … | var plaintext = ssbKeys.unbox(msg.content, keys) |
@@ -18,13 +17,14 @@ | ||
18 | 17 … | |
19 | 18 … | |
20 | 19 … | module.exports = { |
21 | 20 … | |
22 | - needs: {sbot_publish: 'first'}, | |
21 … | + needs: {keys: 'first',sbot_publish: 'first'}, | |
23 | 22 … | gives: { |
24 | 23 … | message_unbox: true, message_box: true, publish: true |
25 | 24 … | }, |
26 | 25 … | create: function (api) { |
26 … | + var keys = api.keys | |
27 | 27 … | |
28 | 28 … | var exports = {} |
29 | 29 … | exports.message_unbox = function (msg) { |
30 | 30 … | if(msg.value) { |
modules_core/index.js | ||
---|---|---|
@@ -1,12 +1,15 @@ | ||
1 | 1 … | module.exports = { |
2 | 2 … | // "_screen_view.js": require('./_screen_view.js'), |
3 | 3 … | "app.js": require('./app.js'), |
4 | 4 … | "blob-url.js": require('./blob-url.js'), |
5 … | + "config.js": require('./config.js'), | |
5 | 6 … | "crypto.js": require('./crypto.js'), |
6 | 7 … | "file-input.js": require('./file-input.js'), |
8 … | + "keys.js": require('./keys.js'), | |
7 | 9 … | "menu.js": require('./menu.js'), |
8 | 10 … | "message-confirm.js": require('./message-confirm.js'), |
9 | 11 … | "tabs.js": require('./tabs.js'), |
10 | - "sbot.js": require('./sbot.js') | |
12 … | + "sbot.js": require('./sbot.js'), | |
13 … | + "self-id.js": require('./self-id.js') | |
11 | 14 … | } |
12 | 15 … |
modules_core/message-confirm.js | ||
---|---|---|
@@ -1,13 +1,13 @@ | ||
1 | 1 … | var lightbox = require('hyperlightbox') |
2 | 2 … | var h = require('hyperscript') |
3 | 3 … | var u = require('../util') |
4 | -var self_id = require('../keys').id | |
5 | 4 … | //publish or add |
6 | 5 … | |
7 | 6 … | var plugs = require('../plugs') |
8 | 7 … | |
9 | 8 … | exports.needs = { |
9 … | + self_id: 'first', | |
10 | 10 … | publish: 'first', message_content: 'first', avatar: 'first', |
11 | 11 … | message_meta: 'map' |
12 | 12 … | } |
13 | 13 … | |
@@ -18,8 +18,10 @@ | ||
18 | 18 … | //var avatar = plugs.first(exports.avatar = []) |
19 | 19 … | //var message_meta = plugs.map(exports.message_meta = []) |
20 | 20 … | // |
21 | 21 … | exports.create = function (api) { |
22 … | + var self_id = api.self_id | |
23 … | + | |
22 | 24 … | return function (content, cb) { |
23 | 25 … | |
24 | 26 … | cb = cb || function () {} |
25 | 27 … |
modules_core/sbot.js | ||
---|---|---|
@@ -2,10 +2,8 @@ | ||
2 | 2 … | var ssbKeys = require('ssb-keys') |
3 | 3 … | var ref = require('ssb-ref') |
4 | 4 … | var Reconnect = require('pull-reconnect') |
5 | 5 … | var path = require('path') |
6 | -var config = require('ssb-config/inject')(process.env.ssb_appname) | |
7 | -config.keys = ssbKeys.loadOrCreateSync(path.join(config.path, 'secret')) | |
8 | 6 … | |
9 | 7 … | function Hash (onHash) { |
10 | 8 … | var buffers = [] |
11 | 9 … | return pull.through(function (data) { |
@@ -24,18 +22,16 @@ | ||
24 | 22 … | //also depends on having ssb-ws installed. |
25 | 23 … | //var createClient = require('ssb-lite') |
26 | 24 … | var createClient = require('ssb-client') |
27 | 25 … | |
28 | -var createConfig = require('ssb-config/inject') | |
29 | - | |
30 | 26 … | var createFeed = require('ssb-feed') |
31 | -var keys = require('../keys') | |
32 | -var ssbKeys = require('ssb-keys') | |
33 | 27 … | |
34 | 28 … | var cache = CACHE = {} |
35 | 29 … | |
36 | 30 … | module.exports = { |
37 | 31 … | needs: { |
32 … | + config: 'first', | |
33 … | + keys: 'first', | |
38 | 34 … | connection_status: 'map' |
39 | 35 … | }, |
40 | 36 … | gives: { |
41 | 37 … | // connection_status: true, |
@@ -55,9 +51,10 @@ | ||
55 | 51 … | |
56 | 52 … | //module.exports = { |
57 | 53 … | create: function (api) { |
58 | 54 … | |
59 | - var opts = createConfig() | |
55 … | + var opts = api.config | |
56 … | + var keys = api.keys | |
60 | 57 … | var sbot = null |
61 | 58 … | var connection_status = [] |
62 | 59 … | |
63 | 60 … | var rec = Reconnect(function (isConn) { |
@@ -66,9 +63,9 @@ | ||
66 | 63 … | } |
67 | 64 … | |
68 | 65 … | createClient(keys, { |
69 | 66 … | manifest: require('../manifest.json'), |
70 | - remote: require('../config')().remote, | |
67 … | + remote: config.remote, | |
71 | 68 … | caps: config.caps |
72 | 69 … | }, function (err, _sbot) { |
73 | 70 … | if(err) |
74 | 71 … | return notify(err) |
modules_core/config.js | ||
---|---|---|
@@ -1,0 +1,36 @@ | ||
1 … | +var extend = require('xtend') | |
2 … | +var Config = require('ssb-config/inject') | |
3 … | +var URL = require('url') | |
4 … | + | |
5 … | +module.exports = { | |
6 … | + gives: 'config', | |
7 … | + create: function () { | |
8 … | + var appName = process.env.ssb_appname | |
9 … | + var config = Config(appName) | |
10 … | + | |
11 … | + var remote = 'undefined' === typeof localStorage | |
12 … | + ? null //'ws://localhost:8989~shs:' + require('./keys') | |
13 … | + : localStorage.remote | |
14 … | + | |
15 … | + //TODO: use _several_ remotes, so if one goes down, | |
16 … | + // you can still communicate via another... | |
17 … | + // also, if a blob does not load, use another pub... | |
18 … | + | |
19 … | + //if we are the light client, get our blobs from the same domain. | |
20 … | + var blobsUrl | |
21 … | + if(remote) { | |
22 … | + var r = URL.parse(remote.split('~')[0]) | |
23 … | + //this will work for ws and wss. | |
24 … | + r.protocol = r.protocol.replace('ws', 'http') | |
25 … | + r.pathname = '/blobs/get' | |
26 … | + blobsUrl = URL.format(r) | |
27 … | + } | |
28 … | + else | |
29 … | + blobsUrl = 'http://localhost:8989/blobs/get' | |
30 … | + | |
31 … | + return extend(config, { | |
32 … | + remote: remote, | |
33 … | + blobsUrl: blobsUrl | |
34 … | + }) | |
35 … | + } | |
36 … | +} |
modules_core/keys.js | ||
---|---|---|
@@ -1,0 +1,13 @@ | ||
1 … | +var ssbKeys = require('ssb-keys') | |
2 … | +var Path = require('path') | |
3 … | + | |
4 … | +module.exports = { | |
5 … | + needs: {config: 'first'}, | |
6 … | + gives: 'keys', | |
7 … | + create: function (api) { | |
8 … | + var config = api.config | |
9 … | + var keysPath = Path.join(config.path, 'secret') | |
10 … | + var keys = ssbKeys.loadOrCreateSync(keysPath) | |
11 … | + return keys | |
12 … | + } | |
13 … | +} |
modules_core/self-id.js | ||
---|---|---|
@@ -1,0 +1,7 @@ | ||
1 … | +module.exports = { | |
2 … | + needs: {keys: 'first'}, | |
3 … | + gives: 'self_id', | |
4 … | + create: function (api) { | |
5 … | + return api.keys.id | |
6 … | + } | |
7 … | +} |
modules_extra/audio-mp3.js | ||
---|---|---|
@@ -14,9 +14,9 @@ | ||
14 | 14 … | exports.needs = { |
15 | 15 … | // message_link: 'first', |
16 | 16 … | // message_confirm: 'first', |
17 | 17 … | // sbot_links: 'first', |
18 | - blobs_url: 'first' | |
18 … | + blob_url: 'first' | |
19 | 19 … | } |
20 | 20 … | |
21 | 21 … | exports.gives = 'message_content' |
22 | 22 … |
modules_extra/git.js | ||
---|---|---|
@@ -20,8 +20,9 @@ | ||
20 | 20 … | //var avatar_name = plugs.first(exports.avatar_name = []) |
21 | 21 … | //var markdown = plugs.first(exports.markdown = []) |
22 | 22 … | |
23 | 23 … | exports.needs = { |
24 … | + self_id: 'first', | |
24 | 25 … | message_link: 'first', |
25 | 26 … | message_confirm: 'first', |
26 | 27 … | message_compose: 'first', |
27 | 28 … | sbot_links: 'first', |
@@ -36,16 +37,14 @@ | ||
36 | 37 … | message_meta: true, |
37 | 38 … | message_content: true |
38 | 39 … | } |
39 | 40 … | |
40 | - | |
41 | -var self_id = require('../keys').id | |
42 | - | |
43 | 41 … | function shortRefName(ref) { |
44 | 42 … | return ref.replace(/^refs\/(heads|tags)\//, '') |
45 | 43 … | } |
46 | 44 … | |
47 | 45 … | exports.create = function (api) { |
46 … | + var self_id = api.self_id | |
48 | 47 … | |
49 | 48 … | function getRefs(msg) { |
50 | 49 … | var updates = new KVGraph('key') |
51 | 50 … | var _cb, _refs |
@@ -134,9 +133,9 @@ | ||
134 | 133 … | }) |
135 | 134 … | ) |
136 | 135 … | } |
137 | 136 … | |
138 | - //todo: | |
137 … | + //todo: | |
139 | 138 … | function messageTimestampLink(msg) { |
140 | 139 … | var date = new Date(msg.value.timestamp) |
141 | 140 … | return h('a.timestamp', { |
142 | 141 … | timestamp: msg.value.timestamp, |
@@ -514,6 +513,4 @@ | ||
514 | 513 … | } |
515 | 514 … | } |
516 | 515 … | } |
517 | 516 … | } |
518 | - | |
519 | - |
modules_extra/notifications.js | ||
---|---|---|
@@ -14,8 +14,9 @@ | ||
14 | 14 … | //var sbot_user_feed = plugs.first(exports.sbot_user_feed = []) |
15 | 15 … | //var message_unbox = plugs.first(exports.message_unbox = []) |
16 | 16 … | |
17 | 17 … | exports.needs = { |
18 … | + self_id: 'first', | |
18 | 19 … | message_render: 'first', |
19 | 20 … | sbot_log: 'first', |
20 | 21 … | sbot_get: 'first', |
21 | 22 … | sbot_user_feed: 'first', |
@@ -28,8 +29,10 @@ | ||
28 | 29 … | screen_view: true |
29 | 30 … | } |
30 | 31 … | |
31 | 32 … | exports.create = function (api) { |
33 … | + var self_id = api.self_id | |
34 … | + | |
32 | 35 … | function unbox() { |
33 | 36 … | return pull( |
34 | 37 … | pull.map(function (msg) { |
35 | 38 … | return msg.value && 'string' === typeof msg.value.content ? |
@@ -124,11 +127,10 @@ | ||
124 | 127 … | if(path === '/notifications') { |
125 | 128 … | var ids = {} |
126 | 129 … | var oldest |
127 | 130 … | |
128 | - var id = require('../keys').id | |
129 | - ids[id] = true | |
130 | - getFirstMessage(id, function (err, msg) { | |
131 … | + ids[self_id] = true | |
132 … | + getFirstMessage(self_id, function (err, msg) { | |
131 | 133 … | if (err) return console.error(err) |
132 | 134 … | if (!oldest || msg.value.timestamp < oldest) { |
133 | 135 … | oldest = msg.value.timestamp |
134 | 136 … | } |
@@ -166,5 +168,4 @@ | ||
166 | 168 … | } |
167 | 169 … | } |
168 | 170 … | } |
169 | 171 … | } |
170 | - |
package.json | ||
---|---|---|
@@ -52,9 +52,10 @@ | ||
52 | 52 … | "ssb-sort": "^1.0.0", |
53 | 53 … | "ssb-ws": "^0.6.2", |
54 | 54 … | "suggest-box": "^2.2.1", |
55 | 55 … | "text-node-searcher": "^1.1.0", |
56 | - "visualize-buffer": "0.0.0" | |
56 … | + "visualize-buffer": "0.0.0", | |
57 … | + "xtend": "^4.0.1" | |
57 | 58 … | }, |
58 | 59 … | "devDependencies": { |
59 | 60 … | "browselectrify": "^1.0.1", |
60 | 61 … | "electro": "^2.0.3", |
config.js | ||
---|---|---|
@@ -1,32 +1,0 @@ | ||
1 | - | |
2 | -var URL = require('url') | |
3 | - | |
4 | -module.exports = function () { | |
5 | - var remote = 'undefined' === typeof localStorage | |
6 | - ? null //'ws://localhost:8989~shs:' + require('./keys') | |
7 | - : localStorage.remote | |
8 | - | |
9 | - | |
10 | - //TODO: use _several_ remotes, so if one goes down, | |
11 | - // you can still communicate via another... | |
12 | - // also, if a blob does not load, use another pub... | |
13 | - | |
14 | - //if we are the light client, get our blobs from the same domain. | |
15 | - var blobsUrl | |
16 | - if(remote) { | |
17 | - var r = URL.parse(remote.split('~')[0]) | |
18 | - //this will work for ws and wss. | |
19 | - r.protocol = r.protocol.replace('ws', 'http') | |
20 | - r.pathname = '/blobs/get' | |
21 | - blobsUrl = URL.format(r) | |
22 | - } | |
23 | - else | |
24 | - blobsUrl = 'http://localhost:8989/blobs/get' | |
25 | - | |
26 | - return { | |
27 | - remote: remote, | |
28 | - blobsUrl: blobsUrl | |
29 | - } | |
30 | -} | |
31 | - | |
32 | - |
Built with git-ssb-web