Use names instead of IPs
This commit is contained in:
parent
ff99e1a828
commit
01a11263ce
36
lib/util.js
36
lib/util.js
@ -1,6 +1,10 @@
|
||||
var logger = require('./logger');
|
||||
|
||||
var config = require('../config.json');
|
||||
var servers = require('../servers.json');
|
||||
|
||||
var serverNameLookup = {};
|
||||
|
||||
// Checks if we have a server in config.json with the IP.
|
||||
function serverWithIpExists(ip) {
|
||||
for (var i = 0; i < servers.length; i++) {
|
||||
@ -14,6 +18,24 @@ function serverWithIpExists(ip) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function getServerNameByIp(ip) {
|
||||
var lookupName = serverNameLookup[ip];
|
||||
|
||||
if (lookupName) {
|
||||
return lookupName;
|
||||
}
|
||||
|
||||
for (var i = 0; i < servers.length; i++) {
|
||||
var entry = servers[i];
|
||||
|
||||
if (entry.ip === ip) {
|
||||
lookupName[entry.ip] = entry.name;
|
||||
|
||||
return entry.name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This method is a monstrosity.
|
||||
// Since we loaded ALL pings from the database, we need to filter out the pings so each entry is a minute apart.
|
||||
// This is done by iterating over the list, since the time between each ping can be completely arbitrary.
|
||||
@ -103,11 +125,19 @@ exports.convertPingsToGraph = function(sqlData) {
|
||||
for (var i = 0; i < sqlData.length; i++) {
|
||||
var entry = sqlData[i];
|
||||
|
||||
if (!graphData[entry.ip]) {
|
||||
graphData[entry.ip] = [];
|
||||
var name = getServerNameByIp(entry.ip);
|
||||
|
||||
if (!name) {
|
||||
logger.warn('Missing name for ' + entry.ip);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
graphData[entry.ip].push([entry.timestamp, entry.playerCount]);
|
||||
if (!graphData[name]) {
|
||||
graphData[name] = [];
|
||||
}
|
||||
|
||||
graphData[name].push([entry.timestamp, entry.playerCount]);
|
||||
}
|
||||
|
||||
// Break it into minutes.
|
||||
|
Loading…
Reference in New Issue
Block a user