Removed id which was not needed for seen messages. Refactored filter logic into function and found function name error

pull/45/head
Beaudan 7 years ago
parent 712566ef3b
commit 5278abefb6

@ -394,9 +394,8 @@ async function updateToSchemaVersion6(currentVersion, instance) {
await instance.run( await instance.run(
`CREATE TABLE seenMessages( `CREATE TABLE seenMessages(
id STRING PRIMARY KEY ASC, hash STRING PRIMARY KEY,
expiresAt INTEGER, expiresAt INTEGER
hash STRING
);` );`
); );
@ -1256,15 +1255,12 @@ async function saveSeenMessageHash(data) {
} = data; } = data;
await db.run( await db.run(
`INSERT INTO seenMessages ( `INSERT INTO seenMessages (
id,
expiresAt, expiresAt,
hash hash
) values ( ) values (
$id,
$expiresAt, $expiresAt,
$hash $hash
);`, { );`, {
$id: generateUUID(),
$expiresAt: expiresAt, $expiresAt: expiresAt,
$hash: hash, $hash: hash,
} }

@ -40,6 +40,17 @@
}; };
}; };
const filterIncomingMessages = async function filterIncomingMessages(messages) {
const incomingHashes = messages.map(m => m.hash);
const dupHashes = await window.Signal.Data.getSeenMessagesByHashList(incomingHashes);
const newMessages = messages.filter(m => !dupHashes.includes(m.hash));
const newHashes = newMessages.map(m => ({
expiresAt: m.expiration,
hash: m.hash,
}));
await window.Signal.Data.saveSeenMessageHashes(newHashes);
return newMessages;
};
window.HttpResource = function HttpResource(_server, opts = {}) { window.HttpResource = function HttpResource(_server, opts = {}) {
server = _server; server = _server;
@ -68,19 +79,8 @@
setTimeout(() => { pollServer(callBack); }, 5000); setTimeout(() => { pollServer(callBack); }, 5000);
return; return;
} }
const incomingHashes = result.messages.map(m => m.hash); const newMessages = await filterIncomingMessages(result.messages);
const dupHashes = await window.Signal.Data.getSeenMessagesByHashList(incomingHashes); newMessages.forEach(async message => {
if (incomingHashes.length === dupHashes.length) {
setTimeout(() => { pollServer(callBack); }, 5000);
return;
}
const NewMessages = result.messages.filter(m => !dupHashes.includes(m.hash));
const NewHashes = NewMessages.map(m => ({
expiresAt: m.expiration,
hash: m.hash,
}));
await window.Signal.Data.saveMessageHashes(NewHashes);
NewMessages.forEach(async message => {
const { data } = message; const { data } = message;
const dataPlaintext = stringToArrayBufferBase64(data); const dataPlaintext = stringToArrayBufferBase64(data);
const messageBuf = textsecure.protobuf.WebSocketMessage.decode(dataPlaintext); const messageBuf = textsecure.protobuf.WebSocketMessage.decode(dataPlaintext);

Loading…
Cancel
Save