2020-04-21 22:59:53 +00:00
const App = require ( './lib/app' )
const ServerRegistration = require ( './lib/servers' )
const logger = require ( './lib/logger' )
const config = require ( './config' )
const servers = require ( './servers' )
const app = new App ( )
2020-04-29 09:01:10 +00:00
servers . forEach ( ( server , serverId ) => {
2020-04-21 22:59:53 +00:00
// Assign a generated color for each servers.json entry if not manually defined
// These will be passed to the frontend for use in rendering
if ( ! server . color ) {
let hash = 0
for ( let i = server . name . length - 1 ; i >= 0 ; i -- ) {
hash = server . name . charCodeAt ( i ) + ( ( hash << 5 ) - hash )
}
const color = Math . floor ( Math . abs ( ( Math . sin ( hash ) * 10000 ) % 1 * 16777216 ) ) . toString ( 16 )
server . color = '#' + Array ( 6 - color . length + 1 ) . join ( '0' ) + color
}
// Init a ServerRegistration instance of each entry in servers.json
2020-05-11 23:12:29 +00:00
app . serverRegistrations . push ( new ServerRegistration ( app , serverId , server ) )
2020-04-21 22:59:53 +00:00
} )
2020-05-08 06:54:04 +00:00
if ( ! config . serverGraphDuration ) {
logger . log ( 'warn' , '"serverGraphDuration" is not defined in config.json - defaulting to 3 minutes!' )
config . serverGraphDuration = 3 * 60 * 10000
}
2020-04-21 22:59:53 +00:00
if ( ! config . logToDatabase ) {
logger . log ( 'warn' , 'Database logging is not enabled. You can enable it by setting "logToDatabase" to true in config.json. This requires sqlite3 to be installed.' )
app . handleReady ( )
} else {
app . loadDatabase ( ( ) => {
app . handleReady ( )
} )
}