Ensure we only process 1 line at a time
Also debounce unknown cards, rather than processing them as fast as possible.
This commit is contained in:
parent
ab89453d76
commit
1636bffd71
16
player.js
16
player.js
@ -85,20 +85,32 @@ function appendLog(message) {
|
||||
wss.broadcast(JSON.stringify(data));
|
||||
}
|
||||
|
||||
tag_reader.stdout.on('data', (data) => {
|
||||
function processLine(data) {
|
||||
if (Date.now() / 1000 < debounce_until) {
|
||||
return;
|
||||
}
|
||||
|
||||
last_tag = String(data).trim();
|
||||
console.log("[tag] " + last_tag);
|
||||
|
||||
// min 1 sec debounce
|
||||
debounce_until = Date.now() / 1000 + 1;
|
||||
|
||||
lookup(last_tag, function(action, wait_sec) {
|
||||
wait_sec = wait_sec || 1;
|
||||
if (action) {
|
||||
debounce_until = Date.now() / 1000 + wait_sec;
|
||||
if (action) {
|
||||
console.log(`[action] [${action}] for [${last_tag}]`);
|
||||
player.stdin.write(action + "\n");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
tag_reader.stdout.on('data', (data) => {
|
||||
var s = data.toString(), lines = s.split(/\n/g);
|
||||
for (var i = 0, l = lines.length; i < l; i++) {
|
||||
processLine(lines[i]);
|
||||
}
|
||||
});
|
||||
|
||||
tag_reader.stderr.on('data', (data) => {
|
||||
|
Loading…
Reference in New Issue
Block a user