UntisBot/src/tasks/cleanDB.ts

46 lines
1.3 KiB
TypeScript

import main from '../index';
const { db } = main;
/**
* To-Do:
* - Remove invalid entries from usersDB
* - Clean up seenMessages DB
*/
// Deletes old, unneeded entries from the database
const run = async () => {
// Known lessons DB
try {
let deleted = 0;
db.knownLessons.forEach(userDB => {
Object.entries(userDB).forEach(data => {
let key: string | number = data[0];
let entry: any = data[1];
if (!entry.date || unfuckDate(entry.date).getTime() < Date.now() - (86400000 * 2)) {
deleted++;
db.knownLessons.delete(key);
}
});
});
if (deleted > 0) console.log(`Cleared ${deleted} entries from knownLessons`);
} catch(e) {
console.error(e);
}
}
let unfuckDate = (date: number): Date => {
let dateInfo = {
year: Number(`${date}`.substr(0, 4)),
month: Number(`${date}`.substr(4, 2)),
day: Number(`${date}`.substr(6, 2))
}
let newDate = new Date()
newDate.setFullYear(dateInfo.year);
newDate.setMonth(dateInfo.month - 1);
newDate.setDate(dateInfo.day);
return newDate;
}
run();
setInterval(run, 1000 * 60 * 60 * 12); // Run every 12 hours