Commit 3a6b42e980da99c6778fd2db5f693fa7d89d7207
Merge pull request #30 from ssbc/caps
use capsmix irving authored on 8/21/2017, 4:28:57 AM
GitHub committed on 8/21/2017, 4:28:57 AM
Parent: dd429902f3108d6b49d95c16ad3d853cfc7dc12a
Parent: 4c04e7c94d477b89e0a5fca62c30370df719af11
Files changed
contact/async.js | changed |
invite.js | changed |
sbot.js | changed |
contact/async.js | ||
---|---|---|
@@ -4,9 +4,10 @@ | ||
4 | 4 … | var ref = require('ssb-ref') |
5 | 5 … | |
6 | 6 … | exports.needs = nest({ |
7 | 7 … | 'contact.obs.following': 'first', |
8 | - 'sbot.async.publish': 'first' | |
8 … | + 'sbot.async.publish': 'first', | |
9 … | + 'sbot.async.friendsGet': 'first' | |
9 | 10 … | }) |
10 | 11 … | |
11 | 12 … | exports.gives = nest({ |
12 | 13 … | 'contact.async': ['follow', 'unfollow', 'followerOf'] |
@@ -17,13 +18,9 @@ | ||
17 | 18 … | 'contact.async': {follow, unfollow, followerOf} |
18 | 19 … | }) |
19 | 20 … | |
20 | 21 … | function followerOf (source, dest, cb) { |
21 | - var following = api.contact.obs.following(source) | |
22 | - onceTrue(following.sync, () => { | |
23 | - var value = resolve(following) | |
24 | - cb(null, value && value.has(dest)) | |
25 | - }) | |
22 … | + api.sbot.async.friendsGet({source: source, dest: dest}, cb) | |
26 | 23 … | } |
27 | 24 … | |
28 | 25 … | function follow (id, cb) { |
29 | 26 … | if (!ref.isFeed(id)) throw new Error('a feed id must be specified') |
@@ -42,4 +39,8 @@ | ||
42 | 39 … | following: false |
43 | 40 … | }, cb) |
44 | 41 … | } |
45 | 42 … | } |
43 … | + | |
44 … | + | |
45 … | + | |
46 … | + |
invite.js | |||
---|---|---|---|
@@ -7,9 +7,10 @@ | |||
7 | 7 … | exports.needs = nest({ | |
8 | 8 … | 'sbot.async.publish': 'first', | |
9 | 9 … | 'sbot.async.gossipConnect': 'first', | |
10 | 10 … | 'contact.async.followerOf': 'first', | |
11 | - 'keys.sync.id': 'first' | ||
11 … | + 'keys.sync.id': 'first', | ||
12 … | + 'config.sync.load': 'first' | ||
12 | 13 … | }) | |
13 | 14 … | ||
14 | 15 … | exports.gives = nest({ | |
15 | 16 … | 'invite.async.accept': true, | |
@@ -20,8 +21,11 @@ | |||
20 | 21 … | function accept (invite, cb) { | |
21 | 22 … | var progress = Value('Connecting...') | |
22 | 23 … | var data = ref.parseInvite(invite) | |
23 | 24 … | var id = api.keys.sync.id() | |
25 … | + | ||
26 … | + var config = api.config.sync.load() | ||
27 … | + | ||
24 | 28 … | if (!data) return cb(new Error('Not a valid invite code. Please make sure you copied the entire code and try again.')) | |
25 | 29 … | ||
26 | 30 … | api.sbot.async.gossipConnect(data.remote, function (err) { | |
27 | 31 … | if (err) console.log(err) | |
@@ -29,9 +33,10 @@ | |||
29 | 33 … | ||
30 | 34 … | // connect to the remote pub using the invite code | |
31 | 35 … | ssbClient(null, { | |
32 | 36 … | remote: data.invite, | |
33 | - manifest: { invite: {use: 'async'}, getAddress: 'async' } | ||
37 … | + manifest: { invite: {use: 'async'}, getAddress: 'async' }, | ||
38 … | + appKey: config.caps.shs | ||
34 | 39 … | }, function (err, sbot) { | |
35 | 40 … | if (err) return cb(err) | |
36 | 41 … | progress.set('Requesting follow...') | |
37 | 42 … | ||
@@ -81,9 +86,9 @@ | |||
81 | 86 … | var id = api.keys.sync.id() | |
82 | 87 … | var data = ref.parseInvite(invite) | |
83 | 88 … | api.contact.async.followerOf(id, data.key, function (_, follows) { | |
84 | 89 … | if (follows) console.log('already following', cb()) | |
85 | - else accept(invite, cb) | ||
90 … | + else console.log('accept invite:'+invite, accept(invite, cb)) | ||
86 | 91 … | }) | |
87 | 92 … | } | |
88 | 93 … | }) | |
89 | 94 … | } |
sbot.js | ||
---|---|---|
@@ -23,9 +23,10 @@ | ||
23 | 23 … | async: { |
24 | 24 … | get: true, |
25 | 25 … | publish: true, |
26 | 26 … | addBlob: true, |
27 | - gossipConnect: true | |
27 … | + gossipConnect: true, | |
28 … | + friendsGet: true | |
28 | 29 … | }, |
29 | 30 … | pull: { |
30 | 31 … | log: true, |
31 | 32 … | userFeed: true, |
@@ -59,9 +60,19 @@ | ||
59 | 60 … | function notify (value) { |
60 | 61 … | isConn(value); connectionStatus.set(value) |
61 | 62 … | } |
62 | 63 … | |
63 | - createClient(keys, config, function (err, _sbot) { | |
64 … | + var opts = { | |
65 … | + path: config.path, | |
66 … | + remote: config.remote, | |
67 … | + host: config.host, | |
68 … | + port: config.port, | |
69 … | + key: config.key, | |
70 … | + appKey: config.caps.shs, | |
71 … | + timers: config.timers | |
72 … | + } | |
73 … | + | |
74 … | + createClient(keys, opts, function (err, _sbot) { | |
64 | 75 … | if (err) { |
65 | 76 … | return notify(err) |
66 | 77 … | } |
67 | 78 … | |
@@ -178,8 +189,11 @@ | ||
178 | 189 … | ) |
179 | 190 … | }), |
180 | 191 … | gossipConnect: rec.async(function (opts, cb) { |
181 | 192 … | sbot.gossip.connect(opts, cb) |
193 … | + }), | |
194 … | + friendsGet: rec.async(function (opts, cb) { | |
195 … | + sbot.friends.get(opts, cb) | |
182 | 196 … | }) |
183 | 197 … | }, |
184 | 198 … | pull: { |
185 | 199 … | backlinks: rec.source(query => { |
Built with git-ssb-web