This repository has been archived on 2026-04-30. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files

39 lines
1.5 KiB
JavaScript

//environment variables
require('dotenv').config();
//libraries
let CronJob = require('cron').CronJob;
//utilities
let { log } = require('../common/utilities.js');
const runDailyDiagnostics = (connection) => {
let dailyJob = new CronJob('0 0 0 * * *', () => {
let query = 'INSERT INTO diagnostics (playerCount, returnedPlayerCount, totalGold, totalRecruitments, totalDeaths, totalCombats, activity) VALUES ((SELECT COUNT(*) FROM profiles), (SELECT COUNT(*) FROM profiles WHERE (recruits + soldiers + spies + scientists) >= 2), (SELECT SUM(gold) FROM profiles), (IFNULL((SELECT SUM(quantity) FROM diagnosticsEvents WHERE eventName = "recruit"), 0)), (IFNULL((SELECT SUM(quantity) FROM diagnosticsEvents WHERE eventName = "death"), 0)), (SELECT COUNT(*) FROM pastCombat WHERE eventTime >= DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)), (SELECT COUNT(*) FROM accounts WHERE lastActivityTime >= DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)));';
connection.query(query, (err) => {
if (err) throw err;
let query = 'DELETE FROM diagnosticsEvents;';
connection.query(query, (err) => {
if (err) throw err;
log('Daily diagnostics taken');
});
});
});
dailyJob.start();
};
//current name parameters: 'recruit', 'death'
const logDiagnostics = (connection, name, quantity) => {
let query = 'INSERT INTO diagnosticsEvents (eventName, quantity) VALUES (?, ?);';
connection.query(query, [name, quantity], (err) => {
if (err) throw err;
});
};
module.exports = {
runDailyDiagnostics: runDailyDiagnostics,
logDiagnostics: logDiagnostics
};