import schedule from "node-schedule"; import { chromium } from "playwright"; const SUBDOMAIN = process.env.FALIX_SUBDOMAIN; const START_URL = "https://falixnodes.net/startserver"; async function keepAlive() { const browser = await chromium.launch({ headless: true }); const page = await browser.newPage(); await page.goto(START_URL, { waitUntil: "networkidle" }); await page.fill('input[type="text"]', SUBDOMAIN); const siteKey = await page.getAttribute("div.cf-turnstile", "data-sitekey"); const token = await page.evaluate((key) => { return new Promise((resolve) => { window.turnstile.render(document.querySelector("div.cf-turnstile"), { sitekey: key, callback: resolve }); }); }, siteKey); await page.fill('input[name="cf-turnstile-response"]', token); await page.click('button[type="submit"]'); await browser.close(); console.log(new Date(), "✅ Server start request sent."); } schedule.scheduleJob("*/55 * * * *", keepAlive); keepAlive();