discord_bot/util/timer/checkTimer.js
SileNce5k d41b28ec91
Use an sqlite3 database for timer feature
There were some other small edits as well, mostly formatting or better
logging in certain functions
2023-06-01 12:01:03 +02:00

37 lines
1.1 KiB
JavaScript

const sendTimerReminder = require('./sendTimerReminder')
const fs = require('fs')
const sqlite3 = require('sqlite3').verbose();
module.exports = async function (client) {
const checkTimer = require('./checkTimer')
const db = new sqlite3.Database('data/database.db')
let currentUnixTime = Math.floor(new Date() / 1000);
await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM timers WHERE reminderTime <= ? AND hasPassed = ?`,
[currentUnixTime, false],
function (error, timer) {
if (error) {
console.error(error);
reject(error);
} else {
if (timer !== undefined) {
db.run(`UPDATE timers SET hasPassed = ? WHERE ID = ?`, [true, timer.ID],
function (error) {
if (error) {
console.error(`Error while updating ${timer.ID} setPassed to true`, error);
reject(error);
} else {
console.log(`Updated ${timer.ID}, set hasPassed to true.`);
}
})
sendTimerReminder(client, timer);
}
db.close();
resolve();
}
}
);
})
setTimeout(checkTimer, 1000, client);
}