diff --git a/app/api/rocket-chat/messages/route.ts b/app/api/rocket-chat/messages/route.ts index 432c3856..1e7b244a 100644 --- a/app/api/rocket-chat/messages/route.ts +++ b/app/api/rocket-chat/messages/route.ts @@ -211,8 +211,31 @@ export async function GET(request: Request) { }); if (messageData.success && messageData.messages?.length > 0) { - // Process each message from the room - for (const message of messageData.messages) { + // Filter out system messages and join notifications for channels + const validMessages = messageData.messages.filter((message: any) => { + // For channels, apply strict filtering + if (subscription.t === 'c') { + // Skip if: + // 1. No message text + // 2. System message (has type 't') + // 3. No user info + // 4. Join/leave messages + // 5. User added/removed messages + if (!message.msg || // No message text + message.t || // System message + !message.u || // No user info + message.msg.includes('has joined the channel') || + message.msg.includes('has left the channel') || + message.msg.includes('added') || + message.msg.includes('removed')) { + return false; + } + } + return true; + }); + + // Process filtered messages + for (const message of validMessages) { const messageUser = message.u || {}; const username = messageUser.username || 'unknown';