From 62b67c3abaf0d17a0d03a961dac0a03d4b8224c2 Mon Sep 17 00:00:00 2001 From: Nathan Tran Date: Wed, 28 Jan 2026 01:00:58 -0800 Subject: [PATCH 1/2] add message handler to prevent wordle bot from flooding general, it will only post the streak message --- src/handlers/MessageHandler.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/handlers/MessageHandler.js b/src/handlers/MessageHandler.js index 6223a64..6269a69 100644 --- a/src/handlers/MessageHandler.js +++ b/src/handlers/MessageHandler.js @@ -47,6 +47,15 @@ class MessageHandler { try { // Add a botStartTime field to the message object message.botStartTime = this.startTime; + + // Delete Wordle messages except streak results + const WORDLE_BOT_ID = '1211781489931452447'; + if (message.author.id === WORDLE_BOT_ID && + !message.content.toLowerCase().includes('your group')) { + await message.delete().catch(() => {}); + return; + } + if (message.author.bot) { return; } From 2d6d56cdae4e0929f8d767c351c7d9501b2e6a3c Mon Sep 17 00:00:00 2001 From: Nathan Tran Date: Wed, 28 Jan 2026 09:50:35 -0800 Subject: [PATCH 2/2] turn the filter into its own function + add the wordle bot id into its own thing in config --- config.example.json | 3 ++- src/handlers/MessageHandler.js | 8 ++++---- src/util/WordleFilter.js | 24 ++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 src/util/WordleFilter.js diff --git a/config.example.json b/config.example.json index e793d9f..00d5141 100644 --- a/config.example.json +++ b/config.example.json @@ -19,5 +19,6 @@ "NEW_MEMBER_CHANNEL_ID": "xxxxxxxxxxx" }, "guildId": "xxxxxxxxxx", - "PARKING_CHANNEL_ID": "xxxxxxxx" + "PARKING_CHANNEL_ID": "xxxxxxxx", + "WORDLE_BOT_ID": "xxxxxxxxxx" } diff --git a/src/handlers/MessageHandler.js b/src/handlers/MessageHandler.js index 6269a69..4833ae0 100644 --- a/src/handlers/MessageHandler.js +++ b/src/handlers/MessageHandler.js @@ -7,6 +7,7 @@ const { CommandHandler } = require(handlersPath + '/CommandHandler'); const { NonPrefixHandler } = require(handlersPath + '/NonPrefixHandler'); const { createNonPrefixRegex } = require(utilPath + '/NonPrefixRegexCreator'); const { ScamDetector } = require(utilPath + '/ScamDetector'); +const { WordleFilter } = require(utilPath + '/WordleFilter'); /** * Class which handles interpreting an input message and invoking the correct @@ -25,6 +26,7 @@ class MessageHandler { this.commandHandler = new CommandHandler(); this.nonPrefixHandler = new NonPrefixHandler(); this.scamDetector = new ScamDetector(); + this.wordleFilter = new WordleFilter(); } /** @@ -49,10 +51,8 @@ class MessageHandler { message.botStartTime = this.startTime; // Delete Wordle messages except streak results - const WORDLE_BOT_ID = '1211781489931452447'; - if (message.author.id === WORDLE_BOT_ID && - !message.content.toLowerCase().includes('your group')) { - await message.delete().catch(() => {}); + if (this.wordleFilter.isWordleSpam(message)) { + await this.wordleFilter.handleWordleSpam(message); return; } diff --git a/src/util/WordleFilter.js b/src/util/WordleFilter.js new file mode 100644 index 0000000..c3cc139 --- /dev/null +++ b/src/util/WordleFilter.js @@ -0,0 +1,24 @@ +const logger = require('./logger'); +const config = require('../../config.json'); + +class WordleFilter { + isWordleSpam(message) { + if (message.author.id !== config.WORDLE_BOT_ID) { + return false; + } + // keep streak result messages, delete everything else + return !message.content.toLowerCase().includes('your group'); + } + + async handleWordleSpam(message) { + try { + await message.delete(); + return true; + } catch (error) { + logger.error('Error deleting Wordle message:', error); + return false; + } + } +} + +module.exports = { WordleFilter };