const { app, globalConfig, fs, globalVersion } = require("../index.js") // Get globals from index var timeSinceLastQuery = Date.now()-10000 var cachedResult = "" app.get("/static/*", (rreq,rres) => { rres.sendFile(globalConfig.frontpage.frontpageDir+"/static/"+rreq.url.replace("/static/","")) }) app.get("/posts/*", (rreq,rres) => { rres.sendFile(globalConfig.frontpage.frontpageDir+"/posts/"+rreq.url.replace("/posts/","")) }) app.get("/", (rreq, rres) => { if (Date.now() < timeSinceLastQuery+10000) { rres.send(cachedResult) } else { let indexFile = fs.readFileSync(globalConfig.frontpage.frontpageDir+"/index.html","utf-8") cachedResult = indexFile.replace("",parseFiles()).replace("",`API Version ${globalVersion}`) rres.send(cachedResult) } }) function parseFiles() { let files = fs.readdirSync(globalConfig.frontpage.frontpageDir+"/posts/") let result = "" for (x in files) { if (files[x].endsWith(".html") === false) { break } // If file/dir is not .html then ignore let date = files[x].split("-")[0] if (date < 10000000 || date > 99999999) { break } // If date does not fit ISO8601 format then ignore date = date.replace(/.{2}/g,"$&-").replace("-","").slice(0,-1) // Insert a dash every 2 characters, remove the first dash, remove the last character let name = files[x].slice(9).replace(/-/g," ").replace(".html","") // Strip Date, replace seperator with space & remove file extension result = `${date} ${name}`+result } return result } module.exports = {app}