summaryrefslogtreecommitdiffstats
path: root/index.js
blob: b57e2bcf84911c34b9108ab2d975152eec969aa6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
var statuscake = require("statuscake");
var express = require("express");
var ejs = require("ejs");

var app = express();
app.set("views", __dirname + "/views");
app.engine("html", ejs.renderFile);
app.use(express.static("public"));

var args = process.argv.slice(2);
if (args.length != 2) {
    console.log("Please provide user and key as positional arguments.");
    process.exit(1);
}

var UPDATE_INTERVAL = 60000;
var PORT = 3000;

var username = args[0];
var password = args[1];

statuscake
  .username(username)
  .key(password);
 
var currentStatus = {};

app.get("/", function(req, res) {
    res.render("index.html");
});

app.get("/status", function(req, res) {
    res.json(currentStatus);
});

app.listen(PORT, function() {
    console.log("radiodiodi status display listening on port " + PORT + ".");
});

function get_status(err, data) {
    currentStatus = [];
    for (var i = 0; i < data.length; i++) {

        var system = {}
        system.name = data[i].WebsiteName;
        system.status = data[i].Status == 'Up';
        system.uptime = data[i].Uptime;
        currentStatus.push(system);
    }

    console.log(currentStatus);
}

statuscake.tests(get_status);
setInterval(function() {
    statuscake.tests(get_status);
}, UPDATE_INTERVAL);