// OwlBoard - © Fred Boniface 2022 // Licensed under GPLv3 (or later) // Please see the included LICENSE file // Version Number: var version = 0.1 console.log(`Starting OwlBoard version ${version}`) // Load Modules: const fs = require('fs'); const ldb = require('ldbs-json'); const http = require('http'); const url = require('url'); // Get API Keys: try { var keys = JSON.parse(fs.readFileSync('/srv/keys/owlboard/keys.json', 'utf8')); console.log('API Keys loaded from /srv/keys/ownboard/keys.json'); } catch (err) { var keys = 'ERR'; console.error('Unable to obtain API Keys from file'); console.error(err); }; // Get Settings: //let settings try { var settings = JSON.parse(fs.readFileSync('./settings.json', 'utf8')); console.log("Settings loaded from .settings.json"); } catch (err) { console.warn('Unable to load settings, using defaults'); console.log(err); var settings = {"webPort":8460,"listen":"localhost"}; }; // Create Web Service: try { http.createServer((req, res) => { const queryOpt = url.parse(req.url, true).query; const query = url.parse(req.url, true).pathname.replace(/[/]/g, ''); switch (req.url){ case "": res.writeHead(200, { 'Content-Type':'application/json' }); res.end(JSON.stringify({"OwlBoardStatus":"ready","OwnBoardVersion":version})); break; } switch (req.url){ case "/crs": res.writeHead(200, { 'Content-Type':'application/json'}); res.end(crs); break; } }).listen(settings.webPort); console.log(`Web server started on http://${settings.listen}:${settings.webPort}`); } catch (err) { console.error('Unable to start webserver'); console.error(err); }; // Check Athena API Key: // Routes: var crs = JSON.stringify({"resource":"crs_lookup"});