From 51ba72aca77bc98635f267042a38e54d6093147c Mon Sep 17 00:00:00 2001
From: Holden Rohrer
Date: Fri, 10 Jan 2020 20:23:13 -0500
Subject: added rate limiter in jarvis
---
examples/jarvis.js | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/examples/jarvis.js b/examples/jarvis.js
index 0b4b2fe..93061d7 100644
--- a/examples/jarvis.js
+++ b/examples/jarvis.js
@@ -137,8 +137,10 @@ var search = new Space();
search.adhoc('jarvis'); // The search space is the word jarvis, so whenever that's caught, a relevant function can be called.
var read = new Search(search);
var expire = {};
+var limits = []; // an array of senders within the last 5 seconds to act as a 'rate limiter'
function detectPrompt(send, tiles, locs){ // tries to detect the prompt ('jarvis') and calls respond if found.
+ if (limits.indexOf(send) >= 0) return;
for (let i=0; i 0) respond(results);
expire[loc] = setTimeout(() => {read.del(loc)}, 30000);
}
+ limits.push(send);
+ setTimeout(() => {limits.splice(limits.indexOf(send))});
}
let response = new Space();
--
cgit