blob: 3558d1f066c80877789d477118aa0e90c618ab3d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
import express from 'express';
import dotenv from 'dotenv-defaults';
import * as page from './routes/page/router.js';
import * as blog from './routes/blog/router.js';
import { logger } from './logger.js'
import { PageDirectory } from './pages.js';
// import { SpotifyClient } from './spotify/client.js';
// import { WebSocketServer } from 'ws';
// import * as spotifyauth from './routes/spotify/router.js';
// import * as spotifyWs from './websocket/spotify.js';
// TODO: Figure out Spotify's tedious auth flow
dotenv.config()
const app = express();
app.set('view engine', 'ejs');
app.set('views', 'views');
app.use(express.static('static', {
etag: true,
maxAge: '1d'
}));
app.use(blog.router);
app.use(page.router);
// app.use(spotifyauth.router);
app.use((req, res) => {
res.render('error.ejs', {
code: '404',
});
});
const server = app.listen(process.env.PORT, () => {
logger.info(`App listening on port ${process.env.PORT}`);
});
// const websocketServer: WebSocketServer = spotifyWs.createWebsocketServer(server);
const exit = () => {
logger.info('Stopping server...');
// websocketServer.clients.forEach(client => {
// client.terminate();
// });
// websocketServer.close();
server.close(() => {
process.exit(0);
})
}
PageDirectory.rebuild('pages');
// SpotifyClient.initialise();
process.on('SIGINT', exit);
process.on('SIGTERM', exit);
|