(Proper) Initial commit

This commit is contained in:
Tibo De Peuter 2025-01-05 23:56:55 +01:00
parent 48c0059860
commit 32796e4026
Signed by: tdpeuter
GPG key ID: 38297DE43F75FFE2
19 changed files with 6094 additions and 97 deletions

76
backend/app.ts Normal file
View file

@ -0,0 +1,76 @@
import express, {Express} from 'express';
import cors from 'cors';
import queueRoutes from "./routes/queue.routes";
import bodyParser from 'body-parser';
import pingRoutes from "./routes/ping.routes";
import queueManager from "./queueManager";
import {DEFAULT_LUCIDA_OPTIONS} from "./types/queue";
const app: Express = express();
app.use(cors());
app.use(express.json());
app.use(bodyParser.urlencoded({extended: true}));
/* Routes */
app.use('/api/v1/ping', pingRoutes);
app.use('/api/v1/queue', queueRoutes);
/* Setup */
let port: number = 3000;
let baseUrl: string = DEFAULT_LUCIDA_OPTIONS.baseUrl;
let headless: boolean = DEFAULT_LUCIDA_OPTIONS.headless;
let proxy: string | undefined = DEFAULT_LUCIDA_OPTIONS.proxy;
// Parse command line arguments
let i: number = 0;
while (i < process.argv.length) {
switch (process.argv[i]) {
case '--port':
i++;
port = parseInt(process.argv[i]);
break;
case '--lucida':
i++;
baseUrl = process.argv[i];
break;
case '--headless':
i++;
headless = process.argv[i] === 'true';
break;
case '--proxy':
i++;
proxy = process.argv[i];
break;
case '--help':
console.log(`
Options:
--port Specify the port to run the server on. Default is 3000.
--lucida Specify the url to the Lucida server. Default is 'https://lucida.to/'
--headless Run the Lucida browser in headless mode.
--proxy Specify a proxy to use for requests. Example: --proxy 'socks5://localhost:9050' (Tor)
--help Show this help message and exit.
`);
process.exit();
default:
console.error(`App: Unknown option ${process.argv[i]}`);
break;
}
i++;
}
const lucidaOptions = {
baseUrl: baseUrl,
headless: headless,
proxy: proxy
};
queueManager.setLucidaOptions(lucidaOptions);
process.on('SIGINT', async () => {
console.log('App: Received SIGINT');
await queueManager.forceStop();
process.exit();
});
app.listen(port, () => {
console.log(`App: Server running on port ${port}`);
});