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