Skip to content

Commit bd0a619

Browse files
committed
Added on ready file with cron.js to perform daily check of old_roles
1 parent 2e1886a commit bd0a619

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

events/db_ready.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// @ts-check
2+
const { DBuser } = require("../lib/database/database");
3+
const { CronJob } = require('cron');
4+
5+
/* eslint-disable */
6+
const CSESOC_SERVER_ID = "693779865916276746";
7+
// const TEST_SERVER_ID = "1220297696829509713";
8+
9+
module.exports = {
10+
name: "ready",
11+
once: true,
12+
async execute(client) {
13+
/** @type {DBuser} */
14+
const userDB = new DBuser();
15+
global.userDB = userDB;
16+
17+
// Set up an automatic database check to see if there is any out of date roles.
18+
const role_job = new CronJob(
19+
'0 0 12 * * *',
20+
async function() {
21+
console.log("Performing daily check of old roles at 12:00pm");
22+
23+
const old_roles = await userDB.checkTimeAssigned();
24+
for (const removed_role of old_roles) {
25+
try {
26+
const guild = await client.guilds.fetch(CSESOC_SERVER_ID);
27+
const member = await guild.members.fetch(removed_role.userid);
28+
const roles = await guild.roles.fetch();
29+
const role = roles.find(r => r.name === removed_role.role_name);
30+
31+
if (member && role) {
32+
await member.roles.remove(role);
33+
await userDB.remove_user_role(removed_role.userid, removed_role.role_name);
34+
// console.log(`Removed role ${removed_role.role_name} from user ${removed_role.userid}`);
35+
} else {
36+
console.log(`Could not find role ${removed_role.role_name} or user ${removed_role.userid}`);
37+
}
38+
} catch (error) {
39+
console.log(error);
40+
}
41+
}
42+
},
43+
);
44+
45+
role_job.start();
46+
},
47+
};

0 commit comments

Comments
 (0)