LastFMDownloader/notification-server.js

38 lines
1 KiB
JavaScript
Raw Normal View History

require('dotenv').config();
const express = require('express');
const { createServer } = require('node:http');
const { Server } = require('socket.io');
2024-02-22 14:29:31 +00:00
const { fork } = require("child_process");
const app = express();
const server = createServer(app);
const io = new Server(server);
io.on('connection', (socket) => {
console.log('A client connected!');
socket.on('nodeMessage', (msg) => {
if (msg.password === process.env.NOTIFICATION_SERVER_PASSWORD)
io.emit('message', msg.message);
})
});
2024-02-22 14:29:31 +00:00
app.get("/webscrobbler", (req, res) => {
res.status(204).end();
})
app.post("/webscrobbler", (req, res) => {
if (req.query.password === process.env.NOTIFICATION_SERVER_PASSWORD) {
const process = fork("./index.js");
process.on('error', function (err) {
res.status(500).end();
});
process.on('exit', function (code) {
res.status(204).end();
});
}
else res.status(403).end();
})
server.listen(process.env.NOTIFICATION_SERVER_PORT, () => {
console.log(`server running on port ${process.env.NOTIFICATION_SERVER_PORT}`);
});