diff --git a/src/app.ts b/src/app.ts index 026f74c..5bc2b2c 100644 --- a/src/app.ts +++ b/src/app.ts @@ -129,7 +129,8 @@ function setupRoutes(app: Express) { app.post('/api/segmentShift', postSegmentShift); if (config.postgres) { - app.get('/database', dumpDatabase); + app.get('/database', (req, res) => dumpDatabase(req, res, true)); + app.get('/database.json', (req, res) => dumpDatabase(req, res, false)); } else { app.get('/database.db', function (req: Request, res: Response) { res.sendFile("./databases/sponsorTimes.db", {root: "./"}); diff --git a/src/routes/dumpDatabase.ts b/src/routes/dumpDatabase.ts index fb8363d..0d0ab02 100644 --- a/src/routes/dumpDatabase.ts +++ b/src/routes/dumpDatabase.ts @@ -32,12 +32,14 @@ const tables = [{ name: "vipUsers" }]; -const links: string = tables.map((table) => `
`) +const links: string[] = tables.map((table) => `/database/${table.name}.csv`); + +const linksHTML: string = tables.map((table) => ``) .reduce((acc, url) => acc + url, ""); let lastUpdate = 0; -export default function dumpDatabase(req: Request, res: Response) { +export default function dumpDatabase(req: Request, res: Response, showPage: boolean) { if (!config.postgres) { res.status(404).send("Not supported on this instance"); return; @@ -46,9 +48,19 @@ export default function dumpDatabase(req: Request, res: Response) { const now = Date.now(); const updateQueued = now - lastUpdate > ONE_MINUTE; - res.status(200).send(`${styleHeader} -