(Proper) Initial commit
This commit is contained in:
parent
48c0059860
commit
32796e4026
19 changed files with 6094 additions and 97 deletions
76
backend/app.ts
Normal file
76
backend/app.ts
Normal 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}`);
|
||||
});
|
Reference in a new issue