diff options
author | Minteck <contact@minteck.org> | 2022-05-24 23:06:46 +0200 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-05-24 23:06:46 +0200 |
commit | 94fea37d627a7f11a67d4eb472300dfa5abaafae (patch) | |
tree | 1729703dbc173ec7ffd574aacb24434d4cb96e38 /index.js | |
parent | a06bd771ff4ea43841edb8cba97df21258a9912b (diff) | |
download | vaportrail-94fea37d627a7f11a67d4eb472300dfa5abaafae.tar.gz vaportrail-94fea37d627a7f11a67d4eb472300dfa5abaafae.tar.bz2 vaportrail-94fea37d627a7f11a67d4eb472300dfa5abaafae.zip |
Pair programming with @CloudburstSys
Diffstat (limited to 'index.js')
-rw-r--r-- | index.js | 62 |
1 files changed, 49 insertions, 13 deletions
@@ -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 |