From 7facefccd8099a83946807dbffa7ad6c6d949fec Mon Sep 17 00:00:00 2001 From: Naomi Carrigan Date: Tue, 2 Sep 2025 14:14:03 -0700 Subject: [PATCH] feat: track when naomi is recently active --- src/events/handleMessageCreate.ts | 5 +++++ src/index.ts | 4 ++++ src/interfaces/amari.ts | 1 + src/modules/respondToMention.ts | 5 ++++- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/events/handleMessageCreate.ts b/src/events/handleMessageCreate.ts index 6761b0a..d18cb37 100644 --- a/src/events/handleMessageCreate.ts +++ b/src/events/handleMessageCreate.ts @@ -4,6 +4,7 @@ * @author Naomi Carrigan */ +import { ids } from "../config/ids.js"; import { respondToMention } from "../modules/respondToMention.js"; import { updateMentorshipThread } from "../modules/updateMentorshipThread.js"; import type { Amari } from "../interfaces/amari.js"; @@ -22,6 +23,10 @@ export const handleMessageCreate = async( if (message.author.bot || message.system) { return; } + if (message.author.id === ids.users.naomi + && !amari.recentlyActiveChannels.has(message.channel.id)) { + amari.recentlyActiveChannels.add(message.channel.id); + } await updateMentorshipThread(amari, message); await respondToMention(amari, message); }; diff --git a/src/index.ts b/src/index.ts index d928788..f9c95cd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -51,6 +51,7 @@ const amari: Amari = { freeCodeCamp: null, hackerNews: null, }, + recentlyActiveChannels: new Set(), }; amari.discord.once(Events.ClientReady, () => { @@ -65,6 +66,9 @@ amari.discord.once(Events.ClientReady, () => { await logger.log("debug", "Auditing guild tags."); await cacheData(amari); }); + setInterval(() => { + amari.recentlyActiveChannels = new Set(); + }, 10 * 60 * 1000); }); amari.discord.on(Events.MessageCreate, (message) => { diff --git a/src/interfaces/amari.ts b/src/interfaces/amari.ts index fa071c3..40b1c45 100644 --- a/src/interfaces/amari.ts +++ b/src/interfaces/amari.ts @@ -14,4 +14,5 @@ export interface Amari { freeCodeCamp: string | null; hackerNews: string | null; }; + recentlyActiveChannels: Set; } diff --git a/src/modules/respondToMention.ts b/src/modules/respondToMention.ts index f000c48..08d6d26 100644 --- a/src/modules/respondToMention.ts +++ b/src/modules/respondToMention.ts @@ -25,10 +25,13 @@ export const respondToMention = async( try { const naomi = amari.discord.users.cache.get(ids.users.naomi) ?? await amari.discord.users.fetch(ids.users.naomi); - const { mentions, content, author, url } = message; + const { mentions, content, author, url, channel } = message; if (author.bot || author.id === ids.users.naomi) { return; } + if (amari.recentlyActiveChannels.has(channel.id)) { + return; + } if (mentions.has(ids.users.naomi, { ignoreEveryone: true, ignoreRepliedUser: true,