AvalonDocumentationEngine/index.js

57 lines
1.9 KiB
JavaScript
Raw Normal View History

2023-01-05 04:18:04 +00:00
var express = require('express');
var path = require("path");
var fs = require("fs");
var app = express();
app.set('view engine', 'ejs');
app.use("/a", express.static(path.join(__dirname, 'assets')));
app.use("/assets", express.static(path.join(__dirname, 'assets', "Files")));
2023-01-05 20:58:03 +00:00
var templateIndex = (x, y) => ({"type": "page","pageName": x,"pageData": y,"allPages": pages});
var templateErrPage = (sc) => ({"tags": ["Meta",sc],"location": "system/" + sc});
var templateTag = (x, y) => ({"shortname": x,"color": y});
var pages;
var getPages = () => {
var __pg = JSON.parse(fs.readFileSync(path.join(__dirname, "views", "pages.json"), 'utf8'));
__pg.tags["Meta"] = templateTag("//","#808080");
__pg.tags["404"] = templateTag("404","#008000");
__pg.tags["500"] = templateTag("500","#FF0080");
2023-01-06 00:17:51 +00:00
__pg.documentationData.fullName = __pg.documentationData.name.join(" ");
2023-01-05 20:58:03 +00:00
pages = __pg;
}
setInterval(getPages, 10000);
getPages();
2023-01-05 04:18:04 +00:00
var getPage = (page) => {
2023-01-05 20:58:03 +00:00
if (!(pages.pages[page] || pages.redirects[page])) return {
type: "invaildrequest"
};
if (pages.redirects[page]) return {
type: "redirect",
page: pages.redirects[page]
2023-01-05 04:18:04 +00:00
};
2023-01-05 20:58:03 +00:00
return templateIndex(page, pages.pages[page]);
2023-01-05 04:18:04 +00:00
}
2023-01-06 00:17:51 +00:00
app.get('/', (_,r) => r.redirect("/page/Welcome"));
app.get('/page', (_,r) => r.redirect("/page/Welcome"));
2023-01-05 20:58:03 +00:00
2023-01-06 00:17:51 +00:00
app.get('/page/:page', function(req, res, next) {
2023-01-05 20:58:03 +00:00
var page = getPage(req.params.page);
switch (page.type) {
case "invaildrequest":
next();
break;
case "redirect":
res.redirect(page.page);
break;
case "page":
res.render('index', page, (err, html) => {
if (err) res.status(500).render('index', templateIndex("500_Internal_Server_Error", templateErrPage("500")));
else res.send(html);
});
2023-01-05 04:18:04 +00:00
}
});
2023-01-05 20:58:03 +00:00
app.use((_,r) => r.status(404).render('index', templateIndex("404_Not_Found", templateErrPage("404"))));
2023-01-05 23:02:39 +00:00
app.listen(80);