Add support for sending stats to Matrix, split out some code into more generic classes. #1

Open
rory.gay wants to merge 35 commits from rory.gay/freepbx-stats:main into main
3 changed files with 19 additions and 16 deletions
Showing only changes of commit c6ed8ecfcd - Show all commits

View file

@ -359,7 +359,7 @@ ij_javascript_class_method_decorator_wrap = off
ij_javascript_comma_on_new_line = false
ij_javascript_do_while_brace_force = never
ij_javascript_else_on_new_line = false
ij_javascript_enforce_trailing_comma = keep
ij_javascript_enforce_trailing_comma = remove
ij_javascript_extends_keyword_wrap = off
ij_javascript_extends_list_wrap = off
ij_javascript_field_prefix = _
@ -369,8 +369,8 @@ ij_javascript_for_brace_force = never
ij_javascript_for_statement_new_line_after_left_paren = false
ij_javascript_for_statement_right_paren_on_new_line = false
ij_javascript_for_statement_wrap = off
ij_javascript_force_quote_style = false
ij_javascript_force_semicolon_style = false
ij_javascript_force_quote_style = true
ij_javascript_force_semicolon_style = true
ij_javascript_function_expression_brace_style = end_of_line
ij_javascript_function_parameter_decorator_wrap = off
ij_javascript_if_brace_force = never

View file

@ -2,7 +2,10 @@
<code_scheme name="Project" version="173">
<option name="AUTODETECT_INDENTS" value="false" />
<JSCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACKETS" value="true" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
</JSCodeStyleSettings>

View file

@ -1,12 +1,12 @@
require("dotenv").config()
require("dotenv").config();
const cron = require("node-cron");
const os = require("os")
const os = require("os");
const Discord = require('discord.js');
const { connect } = require("http2");
const mysql = require('mysql');
const fs = require('fs').promises;
const hook = new Discord.WebhookClient({ url: process.env.DISCORD_WEBHOOK_URL })
const hook = new Discord.WebhookClient({ url: process.env.DISCORD_WEBHOOK_URL });
const JSON_FILE = process.env.JSON_FILE || "records.json";
@ -64,7 +64,7 @@ async function getPreviousDayData() {
FROM cdr;
`, [ startTime, endTime, previousDay, previousDay ], (err, res) => {
if (err) {
reject(err)
reject(err);
}
connection.end();
let output = {
@ -74,10 +74,10 @@ async function getPreviousDayData() {
"System Uptime": getSystemUptime(),
"All Time Record": null, // Placeholder
}
console.log(output)
console.log(output);
resolve(output);
});
})
});
}
function getSystemUptime() {
@ -118,13 +118,13 @@ function updateRecords(data, root) {
}
async function sendSummary() {
console.log("Preparing summary.")
console.log("Preparing summary.");
const data = await getPreviousDayData();
console.log("Loading records.")
console.log("Loading records.");
const root = await loadRecords();
console.log("Updating records...")
console.log("Updating records...");
const updatedData = await updateRecords(data, root);
console.log("Saving.")
console.log("Saving.");
await saveRecords(root);
const previousDayStart = new Date(getStartOfYesterdayTimestamp());
@ -145,9 +145,9 @@ async function sendSummary() {
embed.fields.push({ name: key, value: value, inline: false });
}
}
console.log("Sending message.")
console.log("Sending message.");
await hook.send({ embeds: [ embed ] });
}
console.log("Scheduling...")
const schedule = cron.schedule("0 1 * * *", sendSummary)
console.log("Scheduling...");
const schedule = cron.schedule("0 1 * * *", sendSummary);