an experiment in putting together a wiki and an object-oriented mud.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
const { graphFromList } = require('../graphStuff.js');
|
|
|
|
|
|
|
|
const sqlite = require('better-sqlite3');
|
|
|
|
const db = new sqlite('the_big_db.db', { verbose: console.log });
|
|
|
|
|
|
|
|
const express = require('express');
|
|
|
|
const app = express.Router();
|
|
|
|
|
|
|
|
const page_routes = require('./pages.js');
|
|
|
|
app.use(page_routes);
|
|
|
|
|
|
|
|
const user_routes = require('./users.js');
|
|
|
|
app.use(user_routes);
|
|
|
|
|
|
|
|
const socket_routes = require('./sockets.js');
|
|
|
|
app.use(socket_routes);
|
|
|
|
|
|
|
|
const graphQuery = db.prepare(`
|
|
|
|
select p.number, p.html, p.time
|
|
|
|
from pages p
|
|
|
|
where time >= (
|
|
|
|
select max(s.time)
|
|
|
|
from pages s
|
|
|
|
where s.number = p.number
|
|
|
|
)
|
|
|
|
order by p.time desc
|
|
|
|
`);
|
|
|
|
app.get('/graph', (req, res) => {
|
|
|
|
try {
|
|
|
|
const rows = graphQuery.all();
|
|
|
|
const graph = graphFromList(rows);
|
|
|
|
res.status(200).json(graph);
|
|
|
|
} catch (error) {
|
|
|
|
res.status(500).json({"error": error});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
module.exports = app;
|