api.violets-purgatory.dev/index.js

85 lines
2.1 KiB
JavaScript
Raw Normal View History

2023-10-20 21:53:49 -05:00
const express = require('express'),
2023-11-16 19:29:22 -06:00
path = require('path'),
fs = require('fs'),
2024-04-20 12:56:37 -05:00
pageUpdater = require('./pageUpdater.js'),
WebSocket = require("ws")
2023-10-20 21:53:49 -05:00
var app = express()
const PORT = process.env.PORT || 8080
2023-11-16 15:16:22 -06:00
const staticpath = path.join(__dirname, 'static')
2024-01-25 23:29:28 -06:00
var config = JSON.parse(fs.readFileSync(path.join(__dirname, 'config.json')))
2023-11-16 15:16:22 -06:00
app.listen(PORT, () => {
console.log("Violet's Purgatory is now listening on port: " + PORT)
2023-11-03 13:01:13 -05:00
})
2024-04-18 21:39:08 -05:00
var cachePath = path.join(__dirname, 'cached')
var assetPath = path.join(__dirname, "assets")
2024-02-29 08:50:37 -06:00
2024-04-20 06:50:20 -05:00
app.use("/fonts", express.static(path.join(assetPath, "fonts")))
2024-03-08 10:49:47 -06:00
app.use("/cached", express.static(cachePath))
2024-04-18 21:39:08 -05:00
app.use("/imgs", express.static(path.join(assetPath, "Images")))
2024-04-18 23:50:10 -05:00
app.use("/snds", express.static(path.join(assetPath, "Sounds")))
2024-03-08 10:49:47 -06:00
2024-02-18 08:01:58 -06:00
if (!fs.existsSync(cachePath)) {
fs.mkdirSync(cachePath)
} else {
var files = fs.readdirSync(cachePath)
for (let index = 0; index < files.length; index++) {
const file = files[index];
fs.rmSync(path.join(cachePath, file))
2024-01-25 23:07:26 -06:00
}
}
2024-04-13 00:08:16 -05:00
app.get("/discHTML", (req, res) => {
res.send(pageUpdater.getActivities())
})
app.use(pageUpdater.middleWare)
2024-04-20 12:56:37 -05:00
var sockets = []
wsServer = WebSocket.Server;
let server = require('http').createServer()
wsServer = new wsServer({
server: server,
perMessageDeflate: false
})
server.on('request', app)
wsServer.on("connection", function connection(socket) {
socket.on('message', function message(data) {
data = JSON.parse(data)
if (data.op == 3) {
for (let index = 0; index < sockets.length; index++) {
const socketData = sockets[index];
if (socketData.socket == socket) {
sockets[index].lastPing = Date.now()
}
}
socket.send(`{"op": 3}`)
}
})
socket.send(JSON.stringify(lanyardData))
socket.send(`{ "op": 1 }`)
sockets.push({ socket, lastPing: Date.now() })
})
process.on('uncaughtException', (err, origin) => {
fs.writeSync(
process.stderr.fd,
`Caught exception: ${err}\n` +
`Exception origin: ${origin}`,
);
});