diff options
author | Ev Bogue <ev@evbogue.com> | 2019-05-14 20:34:02 -0500 |
---|---|---|
committer | Ev Bogue <ev@evbogue.com> | 2019-05-14 20:34:02 -0500 |
commit | 68f0710616286e6aee972e6ed4d4b55d27a96098 (patch) | |
tree | 14cb41cedece438330b2149c1a4e87e9f670b354 | |
parent | 6ce8ecd57f789815ebbdd6349af6bb94654254fd (diff) |
auto-gossip on profile load and publish
-rw-r--r-- | bog.js | 3 | ||||
-rw-r--r-- | gossip.js | 23 | ||||
-rw-r--r-- | views.js | 11 |
3 files changed, 14 insertions, 23 deletions
@@ -150,7 +150,7 @@ async function publish (post, keys) { feed.unshift(message) localforage.setItem(keys.publicKey, feed) - + sync(keys.publicKey, keys) return message } else { @@ -175,6 +175,7 @@ async function publish (post, keys) { var feed = [message] localforage.setItem(keys.publicKey, feed) + sync(keys.publicKey, keys) return message } } @@ -1,10 +1,10 @@ -function sync (src, server, keys) { +function sync (src, keys) { + var server = 'ws://localhost:8080/' + var ws = new WebSocket(server + src) - console.log(server) - console.log(src) - console.log(keys.publicKey) - + console.log('SYNCING') + bog(src).then(srclog => { if (srclog) { open(srclog[0]).then(msg => { @@ -13,43 +13,30 @@ function sync (src, server, keys) { seq: msg.seq, requester: keys.publicKey } - console.log(req) ws.onopen = function () { ws.send(JSON.stringify(req)) } ws.onmessage = function (message) { var serverMsg = JSON.parse(message.data) - console.log(serverMsg) if (msg.seq === serverMsg.seq) { - console.log('DO NOTHING') } else if (msg.seq > serverMsg.seq) { - console.log('SENDING') var diff = msg.seq - serverMsg.seq - console.log(diff) var sendlog = srclog.slice(0, diff) - console.log(sendlog) var send = { src, log: sendlog, requester: keys.publicKey } - console.log(send) ws.send(JSON.stringify(send)) } else { if (serverMsg.log) { - console.log('RECEIVING') var newlog = serverMsg.log.concat(srclog) - console.log('NEWLOG') - localforage.setItem(src, newlog).then(function () {regenerate()}) - - console.log(newlog) } } } }) } else { - console.log('NO LOG!') var req = { src, seq: null, @@ -5,12 +5,12 @@ function threadPage (src, keys) { } function profilePage (src, keys) { - var server = 'ws://localhost:8080/' - var profile = h('div', {classList: 'profile'}) scroller.appendChild(profile) + sync(src, keys) + var input = h('input', {placeholder: 'New name'}) profile.appendChild(h('a', {href: '#' + src}, [getName(src)])) @@ -32,13 +32,16 @@ function profilePage (src, keys) { profile.appendChild(h('button', { onclick: function () { - sync(src, server, keys) + sync(src, keys) } }, ['Sync feed'])) profile.appendChild(h('button', { onclick: function () { - localforage.removeItem(src).then(function () { regenerate() }) + localforage.removeItem(src).then(function () { + location.hash = '' + regenerate() + }) } }, ['Delete feed'])) |