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}`); } } } })();