import { statusItem } from "glimpseui"; import refresh from "./handlers/refresh.mjs"; import { base } from "./helpers/html.mjs"; import { log } from "./helpers/logger.mjs"; import { differenceInDays } from "date-fns"; import open from "open"; let lastDate = new Date(); let interval; const app = statusItem(base, { title: "✝️", width: 800, height: 400, }); app.on("message", (message) => { log("Received message:", message); switch (message.action) { case "ready": interval = setInterval(() => { log("Checking for new reading..."); const now = new Date(); if (Math.abs(differenceInDays(now, lastDate)) >= 1) { refresh(app); lastDate = now; log("Updated reading for date:", lastDate); } log("Next check in 1 minute"); }, 60 * 1000); // Check every minute refresh(app); break; case "openUrl": if (message.url) { log("Opening URL:", message.url); open(message.url); } break; } }); app.on("closed", () => clearInterval(interval) && process.exit(0));