diff --git a/index.js b/index.js index ae4aa36..3e8f05e 100644 --- a/index.js +++ b/index.js @@ -42,7 +42,7 @@ async function queryScalarAsync(query, ...params) { if (err) { reject(err); } else { - if(process.env.DATABASE_LOG_TIMINGS) console.log(`Query took ${Date.now() - start}ms:`, query, params, "=>", results); + if (process.env.DATABASE_LOG_TIMINGS) console.log(`Query took ${Date.now() - start}ms:`, query, params, "=>", results); resolve(results[0][Object.keys(results[0])[0]]); } connection.end(); @@ -64,7 +64,7 @@ async function getPreviousDayData() { queryScalarAsync(` SELECT COUNT(DISTINCT uniqueid) AS call_count FROM cdr - WHERE MONTH(calldate) = ? AND YEAR(calldate) = ?; + WHERE MONTH (calldate) = ? AND YEAR (calldate) = ?; `, getYesterday().startDate.getMonth(), getYesterday().startDate.getFullYear()), queryScalarAsync(` SELECT COUNT(DISTINCT uniqueid) AS call_count @@ -78,51 +78,6 @@ async function getPreviousDayData() { }); console.log("Got stats:", stats, "built from query results:", { callsYesterday, callsThisMonth, callsTotal }); return stats; - // return new Promise(async (resolve, reject) => { - // const yesterday = getYesterday(); - // const connection = await mysql.createConnection({ - // host: process.env.DATABASE_HOST, - // user: process.env.DATABASE_USER, - // password: process.env.DATABASE_PASSWORD, - // database: process.env.DATABASE_NAME, - // multipleStatements: true - // }); - // await connection.connect(); - // await connection.query(` - // SELECT COUNT(DISTINCT uniqueid) AS call_count - // FROM cdr - // WHERE calldate BETWEEN ? AND ?; - // - // SELECT COUNT(DISTINCT uniqueid) AS call_count - // FROM cdr - // WHERE MONTH (calldate) = MONTH (?) AND YEAR (calldate) = YEAR (?); - // - // SELECT COUNT(DISTINCT uniqueid) AS call_count - // FROM cdr; - // `, [ yesterday.start, yesterday.end, yesterday.start, yesterday.start ], (err, res) => { - // if (err) { - // reject(err); - // } - // connection.end(); - // // let output = { - // // "Calls Made": res[0][0].call_count, - // // "Monthly Total": res[1][0].call_count, - // // "Total Calls Ever Placed": res[2][0].call_count, - // // "System Uptime": getSystemUptime().toString(false, false), - // // "All Time Record": null, // Placeholder - // // } - // - // const stats = new CallStats({ - // callsMadeToday: res[0][0].call_count, - // totalCallsThisMonth: res[1][0].call_count, - // totalCallsEverPlaced: res[2][0].call_count, - // allTimeRecord: null // Placeholder - // }); - // - // console.log(stats); - // resolve(stats); - // }); - // }); } function getSystemUptime() { @@ -178,6 +133,42 @@ async function sendSummary() { const yesterday = getYesterday(); await sendSummaryDiscord(yesterday, stats) + await sendSummaryMatrix(yesterday, stats) +} + +async function sendSummaryMatrix(yesterday, stats) { + const html = ``` + + + + + + + + + + + + + ${stats.isNewRecord ? `` : ''} + +
Summary from ${yesterday.startDate.toString()} to ${yesterday.endDate.toString()}
Calls Made${stats.totalCallsMade}
Monthly Total${stats.totalCallsThisMonth}
Total Calls Ever Placed${stats.totalCallsEverPlaced}
System Uptime${getSystemUptime().toString(false, false)}
All Time Record${stats.allTimeRecord}
🎉 NEW RECORD! 🎉 A new record has been set, at ${stats.totalCallsMade}!
+ ```; + var message = { + "msgtype": "m.text", + "format": "org.matrix.custom.html", + "body": `Summary from ${new Date(yesterday.start).toDateString()} to ${new Date(yesterday.end).toDateString()}\n +Calls Made: ${stats.totalCallsMade} +Monthly Total: ${stats.totalCallsThisMonth} +Total Calls Ever Placed: ${stats.totalCallsEverPlaced} +System Uptime: ${getSystemUptime().toString(false, false)} +All Time Record: ${stats.allTimeRecord} +${stats.isNewRecord ? `🎉 NEW RECORD! 🎉 A new record has been set, at ${stats.totalCallsMade}!` : ''}`, + "formatted_body": html, + "tel.litenet.call_stats_summary": { + ...stats, date: yesterday + } + } } async function sendSummaryDiscord(yesterday, stats) {