From 5652d9aa26f684ff294bc985d2bd4955ed9db1ec Mon Sep 17 00:00:00 2001 From: ChrisChrome Date: Tue, 29 Oct 2024 07:11:47 -0600 Subject: [PATCH] Mmmmm Built-in cron --- index.js | 12 ++++++++---- package-lock.json | 22 +++++++++++++++++++++- package.json | 3 ++- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index e804dfe..cc0c102 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,5 @@ require("dotenv").config() +const cron = require("node-cron"); const os = require("os") const Discord = require('discord.js'); const { connect } = require("http2"); @@ -9,7 +10,6 @@ const hook = new Discord.WebhookClient({ url: process.env.DISCORD_WEBHOOK_URL }) const JSON_FILE = process.env.JSON_FILE || "records.json"; - function getStartOfYesterdayTimestamp() { const today = new Date(); // Set the date to yesterday @@ -113,9 +113,13 @@ function updateRecords(data, root) { } async function sendSummary() { + console.log("Preparing summary.") const data = await getPreviousDayData(); + console.log("Loading records.") const root = await loadRecords(); + console.log("Updating records...") const updatedData = await updateRecords(data, root); + console.log("Saving.") await saveRecords(root); const previousDayStart = new Date(getStartOfYesterdayTimestamp()); @@ -139,8 +143,8 @@ async function sendSummary() { embed.fields.push({ name: key, value: value, inline: false }); } } - + console.log("Sending message.") await hook.send({ embeds: [embed] }); } -console.log("Initializing...") -sendSummary() \ No newline at end of file + +const schedule = cron.schedule("0 1 * * *", sendSummary) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 85db867..befe7c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,8 @@ "dependencies": { "discord.js": "^14.16.3", "dotenv": "^16.4.5", - "mysql": "^2.18.1" + "mysql": "^2.18.1", + "node-cron": "^3.0.3" } }, "node_modules/@discordjs/builders": { @@ -306,6 +307,17 @@ "node": ">= 0.6" } }, + "node_modules/node-cron": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-3.0.3.tgz", + "integrity": "sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==", + "dependencies": { + "uuid": "8.3.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -374,6 +386,14 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", diff --git a/package.json b/package.json index 3eb59c0..fb672a4 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "dependencies": { "discord.js": "^14.16.3", "dotenv": "^16.4.5", - "mysql": "^2.18.1" + "mysql": "^2.18.1", + "node-cron": "^3.0.3" } }