All checks were successful
Compila e pubblica sul registro integrato / Build-Docker-Image (push) Successful in 8m22s
48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
const { Monitoring } = require("./hosts.js");
|
|
const { TokenRenew } = require("./tokens.js");
|
|
const { Log } = require("./logs.js");
|
|
const EventEmitter = require("node:events");
|
|
const shared = require("./shared.js");
|
|
const express = require("express");
|
|
const app = express();
|
|
const port = 3000;
|
|
const eventEmitter = new EventEmitter();
|
|
shared.eventEmitter = eventEmitter;
|
|
let baseToken = process.env.BASE_TOKEN;
|
|
shared.setToken(baseToken);
|
|
|
|
globalThis.minute = 1000 * 60;
|
|
globalThis.hour = minute * 60;
|
|
globalThis.day = hour * 24;
|
|
|
|
app.listen(port, () => {
|
|
Log(`[${shared.now()}] Il server è online sulla porta ${port}`);
|
|
});
|
|
|
|
if ("BASE_TOKEN" in process.env) {
|
|
Log(`[${shared.now()}] Token inserito: ${baseToken}`);
|
|
if (/^nbp_[a-z0-9A-Z]{36}$/.test(baseToken)) {
|
|
Monitoring();
|
|
TokenRenew();
|
|
} else {
|
|
Log(`[${shared.now()}] Il token inserito non è valido.`);
|
|
process.exit(2);
|
|
}
|
|
} else {
|
|
Log(`[${shared.now()}] Nessun token inserito.`);
|
|
process.exit(1);
|
|
}
|
|
|
|
app.get("/", (_, res) => {
|
|
res.json(shared.getHosts());
|
|
});
|
|
|
|
/*
|
|
TODO:
|
|
- Fare in modo che la durata del timer di rinnovo sia dinamica e dipenda dalla durata rimasta del token inserito
|
|
- Fare in modo che con CTRL+C il programma effettivamente esca (in docker)
|
|
- Aggiungere un timer modificato dall'esterno (opzionale, default 1 giorno) che decida per quanto tenere un log prima di cancellarlo
|
|
- All'uscita del programma far stampare l'ultimo token in uso
|
|
- Usare i log con docker logs
|
|
*/
|