fp/services/scout/src/index.js
CJ_Clippy 6d77138ebd
Some checks failed
ci / build (push) Failing after 1s
ci / Tests & Checks (push) Failing after 1s
improve parser
2025-06-27 22:54:40 -08:00

41 lines
1.1 KiB
JavaScript

const { env } = require('./config.js');
const browser = require('./browser.js');
const fs = require('fs/promises');
const logger = require('./logger.js');
function parseEvent(evt) {
try {
evt = JSON.parse(evt)
} catch (e) {
logger.error(`failed to parse event=${evt}`)
}
if (typeof evt?.action === "number") {
logger.debug(`event with action=${evt.action}`);
if (evt.action === 0) return false; // heartbeat
if (evt.action === 15) return true; // chat message
} else {
logger.warn(`event with NO ACTION. evt=${JSON.stringify(evt)} ${typeof evt}`)
}
}
(async function main() {
const gen = browser(); // this is an async generator
for await (const event of gen) {
logger.debug(`Received event from browser: ${event}`);
const signal = parseEvent(event)
if (signal) {
try {
await fs.writeFile(env.VODDO_RETRY_FILE, `reset ${Date.now()}\n`);
logger.debug(`Touched retry file at ${env.VODDO_RETRY_FILE}`);
} catch (err) {
logger.error(`Failed to write retry file: ${err.message}`);
}
}
}
})();