diff --git a/apps/cron/src/crons/reminder.ts b/apps/cron/src/crons/reminder.ts index e35d7a9ec..4413ce96c 100644 --- a/apps/cron/src/crons/reminder.ts +++ b/apps/cron/src/crons/reminder.ts @@ -137,6 +137,14 @@ function genCronLogic(webhook: WebhookClient): () => Promise { 0, ); + console.log(`Found a total of ${totalEvents} events`); + for (const group of groupedPrefixes) { + console.log(`Events for ${group.prefix}`); + for (const event of group.events) { + console.log(`Title: ${event.name}`); + } + } + if (totalEvents === 0) return; // Sunday gets all events @@ -156,19 +164,18 @@ function genCronLogic(webhook: WebhookClient): () => Promise { await webhook.send({ content: `# Events this Week (${formattedDate})\nWe hope you've had an amazing weekend so far, @everyone :D\nHere are some of the events planned for this week!`, }); - return; - } - - const today = new Date(); - const formattedDate = today.toLocaleDateString("en-US", { - weekday: "long", - month: "long", - day: "numeric", - }); + } else { + const today = new Date(); + const formattedDate = today.toLocaleDateString("en-US", { + weekday: "long", + month: "long", + day: "numeric", + }); - await webhook.send({ - content: `# Event Reminders\nGood morning, <@&${DISCORD_REMINDER_ROLE_ID}>!\nToday is ${formattedDate}, and here are some reminders about upcoming events!`, - }); + await webhook.send({ + content: `# Event Reminders\nGood morning, <@&${DISCORD_REMINDER_ROLE_ID}>!\nToday is ${formattedDate}, and here are some reminders about upcoming events!`, + }); + } // For each prefix group, send a line announcing the prefix, then send each event as an embed for (const group of groupedPrefixes) { diff --git a/apps/cron/src/crons/role-sync.ts b/apps/cron/src/crons/role-sync.ts index 9ab47d866..2a33443a6 100644 --- a/apps/cron/src/crons/role-sync.ts +++ b/apps/cron/src/crons/role-sync.ts @@ -32,6 +32,9 @@ export const roleSync = new CronBuilder({ let addedCount = 0; let removedCount = 0; let skippedCount = 0; + let errorCount = 0; + + const erroredUsers = []; for (const user of users) { try { @@ -57,9 +60,6 @@ export const roleSync = new CronBuilder({ // Check 1: Remove permissions from Blade if user doesn't have role on Discord for (const perm of userPermissions) { if (!discordRoleIds.includes(perm.discordRoleId)) { - console.log( - `Removing "${perm.roleName}" from user ${user.name} (${user.discordUserId}) - not on Discord`, - ); await db .delete(Permissions) .where(eq(Permissions.id, perm.permissionId)); @@ -78,9 +78,6 @@ export const roleSync = new CronBuilder({ continue; } - console.log( - `Adding "${role.name}" to user ${user.name} (${user.discordUserId}) - found on Discord`, - ); await db.insert(Permissions).values({ roleId: role.id, userId: user.id, @@ -90,21 +87,23 @@ export const roleSync = new CronBuilder({ } catch (error) { // User might not be in the guild anymore if ((error as { status?: number } | undefined)?.status === 404) { - console.log( - `User ${user.name} (${user.discordUserId}) not found in guild - skipping`, - ); skippedCount++; } else { - console.error( - `Error syncing user ${user.name} (${user.discordUserId}):`, - error, - ); + errorCount++; + if (erroredUsers.length < 5) erroredUsers.push(user.name); } } } console.log( - `Sync completed. Added: ${addedCount}, Removed: ${removedCount}, Skipped: ${skippedCount}`, + `Sync completed. Added: ${addedCount}, Removed: ${removedCount}, Skipped: ${skippedCount}, Errors: ${errorCount}`, ); + + if (errorCount > 0) { + console.warn(`First ${erroredUsers.length} users it errored for:`); + for (const name of erroredUsers) { + console.warn(name); + } + } }, ); diff --git a/apps/cron/src/index.ts b/apps/cron/src/index.ts index 3d97e6244..90a8c9275 100644 --- a/apps/cron/src/index.ts +++ b/apps/cron/src/index.ts @@ -2,7 +2,7 @@ import { alumniAssign } from "./crons/alumni-assign"; import { capybara, cat, duck, goat } from "./crons/animals"; import { backupFilteredDb } from "./crons/backup-filtered-db"; import { leetcode } from "./crons/leetcode"; -import { hackReminders, preReminders, reminders } from "./crons/reminder"; +import { preReminders, reminders } from "./crons/reminder"; import { roleSync } from "./crons/role-sync"; alumniAssign.schedule(); @@ -18,6 +18,8 @@ leetcode.schedule(); preReminders.schedule(); reminders.schedule(); -hackReminders.schedule(); + +// Silencing for now, needs to be manually re-enabled for hacks @WHOEVER_IS_DEV_LEAD_RN +// hackReminders.schedule(); roleSync.schedule();