From 94fea37d627a7f11a67d4eb472300dfa5abaafae Mon Sep 17 00:00:00 2001 From: Minteck Date: Tue, 24 May 2022 23:06:46 +0200 Subject: Pair programming with @CloudburstSys --- index.js | 62 +++++++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 13 deletions(-) (limited to 'index.js') diff --git a/index.js b/index.js index 797791a..f0cb4fd 100644 --- a/index.js +++ b/index.js @@ -1,39 +1,75 @@ +/* + * MIT License + * + * Copyright (c) 2022- Equestria.dev Developers + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + // noinspection JSUnresolvedVariable,HttpUrlsUsage const express = require('express'); const app = express(); -app.use(express.static('public')); -app.set("view engine", "ejs"); - +// Public pages app.get('/', (req, res) => { res.render("index"); }); +app.get('/servers', (req, res) => { + res.render("servers"); +}); + // API -var serverCache = {}; +let serverCache = {}; +let pluralCache = {}; app.get("/api/servers", (req, res) => { res.json(serverCache); }); -const refresh = require('./refresh'); -setInterval(() => { +// Refresh handling +const refresh = require('./refresh/servers'); +const pkRefresh = require('./refresh/pluralkit'); +setInterval(cacheReload, 300000); + +function cacheReload() { console.log("Running refresh..."); refresh().then(data => { - console.log("Refresh done!"); + console.log("Refresh halfway done!"); serverCache = data; + pkRefresh().then(data => { + console.log("Refresh totally done!"); + pluralCache = data; + }); }); -}, 300000); +} + +// Server +app.use(express.static('public')); +app.set("view engine", "ejs"); const server = app.listen(8099, function () { let host = server.address().address let port = server.address().port console.log("Vapor Trail server listening at http://%s:%s", host, port) - console.log("Running refresh..."); - refresh().then(data => { - console.log("Refresh done!"); - serverCache = data; - }); + cacheReload(); }) \ No newline at end of file -- cgit