import { set } from "https://esm.town/v/std/set?v=11";
import { discordGetMembers } from "https://esm.town/v/vtdocs/discordGetMembers";
import { discordSendDM } from "https://esm.town/v/vtdocs/discordSendDM";
import process from "node:process";
let { discordDMs } = await import("https://esm.town/v/vtdocs/discordDMs");
let { discordWelcomedMembers } = await import("https://esm.town/v/vtdocs/discordWelcomedMembers");
let { discordWelcomeBotStartedAt } = await import("https://esm.town/v/vtdocs/discordWelcomeBotStartedAt");
export const discordWelcomeBotCron = async () => {
if (discordWelcomeBotStartedAt === undefined) {
discordWelcomeBotStartedAt = Date.now();
}
if (discordWelcomedMembers === undefined) {
discordWelcomedMembers = [];
}
if (discordDMs === undefined) {
discordDMs = [];
}
const members = await discordGetMembers(
process.env.discordBot,
process.env.discordServerId,
);
await Promise.all(members.map(async (member) => {
const existingMember = (new Date(member.joined_at)).getTime()
< discordWelcomeBotStartedAt;
const alreadyWelcomed = discordWelcomedMembers.includes(
member.user.id,
);
if (existingMember || alreadyWelcomed) {
return;
}
const DMid = await discordSendDM(
process.env.discordBot,
member.user.id,
"👋 Welcome!",
);
console.log(`Sent a message to ${member.user.id}`);
discordWelcomedMembers.push(member.user.id);
if (DMid !== undefined)
discordDMs.push(DMid);
}));
await Promise.all([
set(
"discordWelcomeBotStartedAt",
discordWelcomeBotStartedAt,
),
set("discordDMs", discordDMs),
set(
"discordWelcomedMembers",
discordWelcomedMembers,
),
]);
};