Hey, check out this crazy news article that totally isn't a rickroll
1const path = require('path');
2const express = require('express');
3const exuseragent = require('express-useragent');
4
5
6class Web {
7 constructor() {
8 const port = process.env.PORT || 8080;
9 const app = express();
10 app.set('trust proxy', 1);
11 app.use(exuseragent.express());
12 app.use('/assets/', express.static('assets'));
13
14 app.get('/', (_, res) => {
15 res.sendFile(path.join(__dirname, 'views', 'index.html'));
16 });
17
18 app.get('/healthcheck', (req, res) => {
19 res.send('Healthy');
20 });
21
22 app.get('/*all', (req, res) => {
23 if (req.useragent.isBot) {
24 let components = req.url.substring(1).split('/').reverse();
25 if (components.length && !components[0]) {
26 components.push(components.shift());
27 }
28 res.redirect(`https://${components.join('/')}`);
29 }
30 else {
31 res.redirect('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
32 }
33 });
34
35 this._server = app.listen(port, () => console.log(`rickognito running on port ${port}!`));
36 }
37
38 close() {
39 if (this._server) {
40 this._server.close();
41 }
42 }
43}
44
45module.exports = Web;