2023-05-18 18:34:14 +02:00
|
|
|
const fs = require("fs");
|
2023-05-17 16:17:45 +02:00
|
|
|
const analysis = require("./analysis");
|
2023-05-15 15:06:30 +02:00
|
|
|
|
2023-05-15 14:30:23 +02:00
|
|
|
(async () => {
|
2023-05-25 20:19:40 +02:00
|
|
|
const dataDir = 'data';
|
|
|
|
|
|
|
|
if (!fs.existsSync(dataDir)) {
|
|
|
|
fs.mkdirSync(dataDir)
|
2023-05-25 20:08:34 +02:00
|
|
|
}
|
|
|
|
|
2023-05-25 20:19:40 +02:00
|
|
|
if (fs.existsSync(`${dataDir}/latest-canonical.json`)) {
|
2023-05-26 09:16:26 +02:00
|
|
|
fs.copyFileSync(`${dataDir}/latest-canonical.json`, `site/latest-canonical.json`);
|
2023-05-25 20:19:40 +02:00
|
|
|
analysis.updateData(dataDir, (newItems) => {
|
2023-05-26 09:16:26 +02:00
|
|
|
fs.copyFileSync(`${dataDir}/latest-canonical.json`, `site/latest-canonical.json`);
|
2023-05-19 16:01:43 +02:00
|
|
|
});
|
2023-05-18 18:34:14 +02:00
|
|
|
} else {
|
2023-05-26 09:16:26 +02:00
|
|
|
await analysis.updateData(dataDir)
|
|
|
|
fs.copyFileSync(`${dataDir}/latest-canonical.json`, `site/latest-canonical.json`);
|
2023-05-18 18:34:14 +02:00
|
|
|
}
|
2023-05-25 20:19:40 +02:00
|
|
|
setInterval(async () => {
|
|
|
|
items = await analysis.updateData(dataDir)
|
2023-05-26 09:16:26 +02:00
|
|
|
fs.copyFileSync(`${dataDir}/latest-canonical.json`, `site/latest-canonical.json`);
|
2023-05-25 20:19:40 +02:00
|
|
|
}, 1000 * 60 * 60 * 24);
|
2023-05-17 16:17:45 +02:00
|
|
|
|
2023-05-18 18:34:14 +02:00
|
|
|
const express = require('express')
|
|
|
|
const compression = require('compression');
|
|
|
|
const app = express()
|
2023-05-25 17:07:38 +02:00
|
|
|
const port = process?.argv?.[2] ?? 3000
|
2023-05-17 16:17:45 +02:00
|
|
|
|
2023-05-23 14:24:32 +02:00
|
|
|
app.use(express.static('site'));
|
2023-05-18 18:34:14 +02:00
|
|
|
app.use(compression());
|
2023-05-17 16:17:45 +02:00
|
|
|
|
2023-05-18 18:34:14 +02:00
|
|
|
app.listen(port, () => {
|
|
|
|
console.log(`Example app listening on port ${port}`)
|
|
|
|
})
|
2023-05-15 14:30:23 +02:00
|
|
|
})();
|