Compare commits
1 Commits
master
...
anniversar
| Author | SHA1 | Date | |
|---|---|---|---|
| 1b5004462a |
78
timers/memberAnniversaries.js
Normal file
78
timers/memberAnniversaries.js
Normal file
@@ -0,0 +1,78 @@
|
||||
const db = require("../core/db");
|
||||
|
||||
|
||||
async function fetchAnniversary(id) {
|
||||
console.log(await db);
|
||||
let query = await db.prepare(`SELECT * FROM anniversaries WHERE discord_id = ?`)
|
||||
return await query.get(id);
|
||||
}
|
||||
|
||||
function insertNewMember(member) {
|
||||
db.run(
|
||||
`INSERT INTO anniversaries (name, guild_id, discord_id, last_anniversary_notification) VALUES (?, ?, ?, ?)`,
|
||||
[member.user.username, member.guild.id, member.id, Date.now()],
|
||||
function (error) {
|
||||
if (error) {
|
||||
console.error(error.message);
|
||||
}
|
||||
console.log(`Inserted a row with the ID: ${this.lastID}`);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function isAnniversary(date) {
|
||||
const now = new Date("Thu Nov 11 2024");// new Date();
|
||||
console.log(`${date.getDate()} - ${now.getDate()}`);
|
||||
return date.getDate() === now.getDate() && date.getMonth() === now.getMonth();
|
||||
}
|
||||
|
||||
function getTimeSince(date) {
|
||||
const now = new Date();
|
||||
const diff = now - date; // `date` is already a Date object
|
||||
|
||||
const seconds = Math.floor(diff / 1000);
|
||||
const minutes = Math.floor(seconds / 60);
|
||||
const hours = Math.floor(minutes / 60);
|
||||
const days = Math.floor(hours / 24);
|
||||
const weeks = Math.floor(days / 7);
|
||||
const months = Math.floor(days / 30);
|
||||
const years = Math.floor(days / 365);
|
||||
|
||||
if (years > 0) return `${years} years ago`;
|
||||
if (months > 0) return `${months} months ago`;
|
||||
if (weeks > 0) return `${weeks} weeks ago`;
|
||||
if (days > 0) return `${days} days ago`;
|
||||
if (hours > 0) return `${hours} hours ago`;
|
||||
if (minutes > 0) return `${minutes} minutes ago`;
|
||||
return `${seconds} seconds ago`;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
timeout: 60000,
|
||||
immediate: true,
|
||||
name: 'Daily member anniversary check',
|
||||
|
||||
async tick(client, timer) {
|
||||
return;
|
||||
console.log(`[TIMER] Anniversary Check`);
|
||||
let debugChannel = await client.channels.fetch('1214134516247957504');
|
||||
|
||||
let subscribedChannels = [
|
||||
{ guild: '442059309581336578', channel: '1214134516247957504' } //toho-test
|
||||
]
|
||||
|
||||
for (let channelIndex = 0; channelIndex < subscribedChannels.length; channelIndex++) {
|
||||
const guild = await client.guilds.fetch(subscribedChannels[channelIndex].guild);
|
||||
const channel = await client.channels.fetch(subscribedChannels[channelIndex].channel);
|
||||
let guildMembers = await guild.members.fetch();
|
||||
guildMembers.forEach(member => {
|
||||
if(isAnniversary(member.joinedAt)) {
|
||||
//debugChannel.send(`Upcoming anniversary ${member.displayName} ${member.joinedAt} ${getTimeSince(member.joinedAt)}`);
|
||||
console.log(`User anniversary ${member.displayName} ${member.joinedAt} ${getTimeSince(member.joinedAt)}`);
|
||||
let dbEntry = fetchAnniversary(member.id);
|
||||
console.log(dbEntry);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user