const express = require("express"); const path = require("path"); const app = express(); const fs = require("fs/promises"); const cheerio = require("cheerio"); const { File } = require('fetch-blob'); global.File = File; const PORT = process.env.PORT || 3000; app.get('/', (req, res) => { const url = 'https://www.spsejecna.cz/'; const cookies = `JSESSIONID=${req.query.session}; WTDGUID=10`; fetch(url, { method: 'GET', headers: { 'Cookie': cookies } }) .then(res => res.text()) .then(data => { const $ = cheerio.load(data); const firstLabelText = $('.label.label-icon').first().text().trim(); if (firstLabelText == "Přihlášení") { return res.status(403).send("Not logged in!"); } res.sendFile(path.join(__dirname, "db", "current.json")); }) .catch(err => { console.error('Fetch error:', err); res.status(500).send(); }); }); app.get("/status", async (_, res) => { const dataStr = await fs.readFile(path.resolve("./volume/customState.json"), {encoding: "utf8"}); const data = JSON.parse(dataStr); if (data.working) { res.json({working: true}) } else { res.json({working: data.working, message: data.message}) } }) // TODO: Reporting errors app.listen(PORT, () => { console.log(`Server is running at http://localhost:${PORT}`); });