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