From d146dbbab184a6e78f58bda9f997d68bac34b240 Mon Sep 17 00:00:00 2001
From: Holden Rohrer <hr@hrhr.dev>
Date: Tue, 14 Jan 2020 21:05:59 -0500
Subject: moved exclusions to responder

---
 examples/jarvis.js | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/examples/jarvis.js b/examples/jarvis.js
index 0df6151..157808f 100644
--- a/examples/jarvis.js
+++ b/examples/jarvis.js
@@ -138,10 +138,8 @@ 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<locs.length; i++){
     let loc = locs[i];
     if (read.has(loc)){
@@ -150,20 +148,22 @@ function detectPrompt(send, tiles, locs){ // tries to detect the prompt ('jarvis
       read.del(loc);
     }
     let results = read.add(loc, tiles[loc]);
-    if (results.length > 0) respond(results);
+    if (results.length > 0) respond(results, send);
     expire[loc] = setTimeout(() => {read.del(loc); delete expire[loc];}, 30000);
   }
   limits.push(send);
-  setTimeout(() => {limits.splice(limits.indexOf(send))}, 5*1000);
 }
 
 let response = new Space();
 response.adhoc('yes, my liege');
 
-function respond(coord){
+var limits = []; // an array of senders within the last 5 seconds to act as a 'rate limiter'
+function respond(coord, send){
+  if (limits.indexOf(send) >= 0) return;
   console.log('called at', coord);
   callct += 1;
   response.loc = coord;
   writes.enqueue(response.towrite().concat(notifRefresh()));
   read.update(response);
+  setTimeout(() => {limits.splice(limits.indexOf(send))}, 5*1000);
 }
-- 
cgit