aboutsummaryrefslogtreecommitdiff
path: root/server.js
diff options
context:
space:
mode:
authorEv Bogue <ev@evbogue.com>2019-11-22 10:50:47 -0600
committerEv Bogue <ev@evbogue.com>2019-11-22 10:50:47 -0600
commit2a8e4ab57aa420727b439f983d8a37d729a2c893 (patch)
tree18e870f0e0a147ece4190be41d8bbcbf0aa79c0b /server.js
parent6f73dcee4fbf3935a411c7a5434779ff1935d342 (diff)
bogbook @ 1.6.0 -- real-time bogbook and only send 25 posts at a time
Diffstat (limited to 'server.js')
-rw-r--r--server.js21
1 files changed, 15 insertions, 6 deletions
diff --git a/server.js b/server.js
index c278a3a..e2b2f06 100644
--- a/server.js
+++ b/server.js
@@ -39,12 +39,10 @@ bog.keys().then(key => {
} else {
bog.unbox(req.box, req.requester, key).then(unboxed => {
var unboxedreq = JSON.parse(nacl.util.encodeUTF8(unboxed))
- if (unboxedreq.seq) {
+ if (unboxedreq.seq >= 0) {
console.log(req.requester + ' asked for feed ' + unboxedreq.author + ' after sequence ' + unboxedreq.seq)
- // check to see if we have the feed on disk
fs.readFile(bogdir + unboxedreq.author, 'UTF-8', function (err, data) {
if (data) {
- // TODO open the latest message, and check the sequence number
var feed = JSON.parse(data)
bog.open(feed[0]).then(msg => {
if (unboxedreq.seq === msg.seq) {
@@ -63,10 +61,21 @@ bog.keys().then(key => {
ws.send(JSON.stringify(obj))
})
}
-
+
if (unboxedreq.seq < msg.seq) {
- console.log('client feed is shorter, sending diff to client')
- var diff = JSON.stringify(feed.slice(0, msg.seq - unboxedreq.seq))
+ var endrange = feed.length - unboxedreq.seq - 25
+ if (endrange < 0) {
+ endrange = feed.length - unboxedreq.seq - 1
+ }
+ var baserange = feed.length - unboxedreq.seq
+
+ console.log('client feed is shorter, sending from ' + baserange + ' to ' + endrange + ' to client')
+ var diff = JSON.stringify(
+ feed.slice(
+ endrange,
+ baserange)
+ )
+ //var diff = JSON.stringify(feed.slice(0, msg.seq - unboxedreq.seq))
bog.box(diff, req.requester, key).then(boxed => {
var obj = {
requester: key.publicKey,