diff options
Diffstat (limited to 'examples')
| -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);  } | 
