diff options
author | Holden Rohrer <hr@hrhr.dev> | 2020-01-14 21:05:59 -0500 |
---|---|---|
committer | Holden Rohrer <hr@hrhr.dev> | 2020-01-14 21:12:15 -0500 |
commit | 0515275382ded30dffcb4a1b9b63627377f66da0 (patch) | |
tree | 2ce9502c5c1e95dde0d2acf4e05de6e5485f7fe6 | |
parent | 89ddce7ab6de3efb089f352209bad65f25ab27c9 (diff) |
moved exclusions to responder
-rw-r--r-- | examples/jarvis.js | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/examples/jarvis.js b/examples/jarvis.js index 0df6151..857943a 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,21 @@ 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); } |