Merge pull request #164 from BeaudanBrown/message-filtering

Message filtering
pull/167/head
sachaaaaa 6 years ago committed by GitHub
commit b1cd0e2a65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -723,6 +723,7 @@
<script type='text/javascript' src='js/models/blockedNumbers.js'></script>
<script type='text/javascript' src='js/models/profile.js'></script>
<script type='text/javascript' src='js/expiring_messages.js'></script>
<script type='text/javascript' src='js/queue_manager.js'></script>
<script type='text/javascript' src='js/chromium.js'></script>
<script type='text/javascript' src='js/registration.js'></script>

@ -282,7 +282,7 @@ class LokiMessageAPI {
await Promise.all(
Object.entries(ourSwarmNodes)
.splice(0, remainingRequests)
.map(([nodeUrl, lastHash]) => doRequest(nodeUrl, lastHash))
.map(([nodeUrl, nodeData]) => doRequest(nodeUrl, nodeData))
);
}
}

@ -103,7 +103,7 @@ class LokiSnodeAPI {
};
});
}
return this.ourSwarmNodes;
return { ...this.ourSwarmNodes };
}
async refreshSwarmNodesForPubKey(pubKey) {

@ -0,0 +1,28 @@
/* eslint-disable more/no-then */
// eslint-disable-next-line func-names
(function() {
'use strict';
class JobQueue {
constructor() {
this.pending = Promise.resolve();
}
add(job) {
const previous = this.pending || Promise.resolve();
this.pending = previous.then(job, job);
const current = this.pending;
current.then(() => {
if (this.pending === current) {
delete this.pending;
}
});
return current;
}
}
window.JobQueue = JobQueue;
})();

@ -65,9 +65,12 @@
handleRequest = request => request.respond(404, 'Not found');
}
let connected = false;
const jobQueue = new window.JobQueue();
const processMessages = async messages => {
const newMessages = await filterIncomingMessages(messages);
const newMessages = await jobQueue.add(() =>
filterIncomingMessages(messages)
);
newMessages.forEach(async message => {
const { data } = message;
this.handleMessage(data);

Loading…
Cancel
Save