diff options
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/gateway/src/listeners/clientReady/umagramCatchup.ts | 118 | ||||
| -rw-r--r-- | packages/gateway/src/listeners/messageCreate/index.ts | 3 |
2 files changed, 62 insertions, 59 deletions
diff --git a/packages/gateway/src/listeners/clientReady/umagramCatchup.ts b/packages/gateway/src/listeners/clientReady/umagramCatchup.ts index 07ea08b..384e5db 100644 --- a/packages/gateway/src/listeners/clientReady/umagramCatchup.ts +++ b/packages/gateway/src/listeners/clientReady/umagramCatchup.ts @@ -1,80 +1,80 @@ import { Client } from "discord.js"; +import { GUILD_ID } from "../../constants"; import { ROLEPLAY_UMAGRAM_CHANNEL_ID } from "../constants"; export const handleUmagramCatchup = async (client: Client) => { try { const channel = client.channels.cache.get(ROLEPLAY_UMAGRAM_CHANNEL_ID); - if (channel && channel.isTextBased()) { - const processChannelMessages = async ( - targetChannel: any, - channelName: string, - ) => { - let lastMessageId: string | undefined; - let messageCount = 0; - let heartCount = 0; - - while (true) { - const messages = await targetChannel.messages.fetch({ - limit: 100, - before: lastMessageId, - }); - - if (messages.size === 0) break; - - for (const message of messages.values()) { - messageCount += 1; - - const existingReaction = message.reactions.cache.get("❤️"); - - if ( - existingReaction && - existingReaction.users.cache.has(client.user!.id) - ) - continue; - - try { - await message.react("❤️"); - - heartCount += 1; - - await new Promise((resolve) => setTimeout(resolve, 100)); - } catch (error) { - console.error( - `Failed to heart message ${message.id} in ${channelName}:`, - error, - ); - } - } + if (!channel || !channel.isTextBased() || !("guildId" in channel) || channel.guildId !== GUILD_ID) return; - lastMessageId = messages.last()?.id; + const processChannelMessages = async ( + targetChannel: any, + channelName: string, + ) => { + let lastMessageId: string | undefined; + let messageCount = 0; + let heartCount = 0; - await new Promise((resolve) => setTimeout(resolve, 500)); - } + while (true) { + const messages = await targetChannel.messages.fetch({ + limit: 100, + before: lastMessageId, + }); + + if (messages.size === 0) break; - return { messageCount, heartCount }; - }; + for (const message of messages.values()) { + messageCount += 1; - await processChannelMessages(channel, "Main Channel"); + const existingReaction = message.reactions.cache.get("❤️"); - try { - const activeThreads = await (channel as any).threads?.fetchActive(); - const archivedThreads = await (channel as any).threads?.fetchArchived(); - const allThreads = [ - ...activeThreads.threads.values(), - ...archivedThreads.threads.values(), - ]; + if ( + existingReaction && + existingReaction.users.cache.has(client.user!.id) + ) + continue; - for (const thread of allThreads) { try { - await processChannelMessages(thread, `Thread: ${thread.name}`); + await message.react("❤️"); + + heartCount += 1; + + await new Promise((resolve) => setTimeout(resolve, 100)); } catch (error) { - console.error(`Error processing thread ${thread.name}:`, error); + console.error( + `Failed to heart message ${message.id} in ${channelName}:`, + error, + ); } } - } catch (error) { - console.error("Error fetching threads:", error); + + lastMessageId = messages.last()?.id; + + await new Promise((resolve) => setTimeout(resolve, 500)); } + + return { messageCount, heartCount }; + }; + + await processChannelMessages(channel, "Main Channel"); + + try { + const activeThreads = await (channel as any).threads?.fetchActive(); + const archivedThreads = await (channel as any).threads?.fetchArchived(); + const allThreads = [ + ...activeThreads.threads.values(), + ...archivedThreads.threads.values(), + ]; + + for (const thread of allThreads) + try { + await processChannelMessages(thread, `Thread: ${thread.name}`); + } catch (error) { + console.error(`Error processing thread ${thread.name}:`, error); + } + } catch (error) { + console.error("Error fetching threads:", error); } } catch (error) { console.error("Error adding hearts to existing messages:", error); diff --git a/packages/gateway/src/listeners/messageCreate/index.ts b/packages/gateway/src/listeners/messageCreate/index.ts index b294a30..1fb185f 100644 --- a/packages/gateway/src/listeners/messageCreate/index.ts +++ b/packages/gateway/src/listeners/messageCreate/index.ts @@ -1,4 +1,5 @@ import { Client, Events, Message } from "discord.js"; +import { GUILD_ID } from "../../constants"; import { handleIqdbModeration } from "./iqdbModeration"; import { handleRoleplayUmagram } from "./roleplayUmagram"; // import { handleArtMediaModeration } from "./artMediaModeration"; @@ -8,6 +9,8 @@ import { handleAICommand } from "./aiCommandHandler"; export const handleMessageCreate = (client: Client) => { client.on(Events.MessageCreate, async (message: Message) => { + if (message.guildId !== GUILD_ID) return; + await Promise.allSettled([ handleIqdbModeration(message), handleRoleplayUmagram(message), |