forked from cory/tildefriends
Add a callback for when messages are added to the database. Abuse it to forward messages semi-live.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3686 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
57
core/ssb.js
57
core/ssb.js
@ -144,35 +144,42 @@ ssb.addRpc(['createHistoryStream'], function(request) {
|
||||
var id = request.args[0].id;
|
||||
var seq = request.args[0].seq;
|
||||
var keys = request.args[0].keys || request.args[0].keys === undefined;
|
||||
ssb.sqlStream(
|
||||
'SELECT previous, id, sequence, timestamp, hash, content, signature FROM messages WHERE author = ?1 AND sequence >= ?2 ORDER BY sequence',
|
||||
[id, seq ?? 0],
|
||||
function(row) {
|
||||
if (keys) {
|
||||
var message = {
|
||||
key: row.id,
|
||||
value: {
|
||||
previous: row.previous,
|
||||
author: id,
|
||||
sequence: row.sequence,
|
||||
timestamp: row.timestamp,
|
||||
hash: row.hash,
|
||||
content: JSON.parse(row.content),
|
||||
signature: row.signature,
|
||||
},
|
||||
timestamp: row.timestamp,
|
||||
};
|
||||
} else {
|
||||
var message = {
|
||||
function sendMessage(row) {
|
||||
if (keys) {
|
||||
var message = {
|
||||
key: row.id,
|
||||
value: {
|
||||
previous: row.previous,
|
||||
author: id,
|
||||
author: row.author,
|
||||
sequence: row.sequence,
|
||||
timestamp: row.timestamp,
|
||||
hash: row.hash,
|
||||
content: JSON.parse(row.content),
|
||||
signature: row.signature,
|
||||
};
|
||||
}
|
||||
request.send_json(message);
|
||||
});
|
||||
},
|
||||
timestamp: row.timestamp,
|
||||
};
|
||||
} else {
|
||||
var message = {
|
||||
previous: row.previous,
|
||||
author: row.author,
|
||||
sequence: row.sequence,
|
||||
timestamp: row.timestamp,
|
||||
hash: row.hash,
|
||||
content: JSON.parse(row.content),
|
||||
signature: row.signature,
|
||||
};
|
||||
}
|
||||
request.send_json(message);
|
||||
}
|
||||
ssb.sqlStream(
|
||||
'SELECT previous, author, id, sequence, timestamp, hash, content, signature FROM messages WHERE author = ?1 AND sequence >= ?2 ORDER BY sequence',
|
||||
[id, seq ?? 0],
|
||||
sendMessage);
|
||||
ssb.addEventListener('message', function(id) {
|
||||
ssb.sqlStream(
|
||||
'SELECT previous, author, id, sequence, timestamp, hash, content, signature FROM messages WHERE id = ?1',
|
||||
[id],
|
||||
sendMessage);
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user