From 84f41fbf9071ed98a255fdb0dc9d051f8afcae56 Mon Sep 17 00:00:00 2001 From: scanash00 Date: Sat, 9 Aug 2025 00:32:27 -0800 Subject: [PATCH] fix: try and expose the frontend correctly and remove the bot's ability to ping everyone/here --- Dockerfile | 17 ++++++++++++++--- src/events/messageCreate.ts | 20 ++++++++++++++------ 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9090b61..0fedd46 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,6 @@ RUN corepack enable RUN corepack prepare pnpm@latest --activate COPY package.json pnpm-lock.yaml ./ - RUN pnpm install --frozen-lockfile COPY src ./src @@ -32,8 +31,8 @@ RUN pnpm run build WORKDIR /app/web COPY web/package.json web/pnpm-lock.yaml ./ - RUN pnpm install --frozen-lockfile + COPY web/src ./src COPY web/public ./public COPY web/index.html ./ @@ -47,12 +46,24 @@ RUN pnpm run build FROM node:20-alpine AS production +ARG SOURCE_COMMIT +ARG VITE_BOT_API_URL +ARG VITE_STATUS_API_KEY +ARG VITE_FRONTEND_URL + +ENV SOURCE_COMMIT=${SOURCE_COMMIT} +ENV NODE_ENV=production +ENV VITE_BOT_API_URL=${VITE_BOT_API_URL} +ENV VITE_STATUS_API_KEY=${VITE_STATUS_API_KEY} +ENV VITE_FRONTEND_URL=${VITE_FRONTEND_URL} + RUN addgroup -g 1001 -S nodejs && \ adduser -S aethel -u 1001 WORKDIR /app -RUN npm install -g pnpm +RUN corepack enable +RUN corepack prepare pnpm@latest --activate COPY package.json pnpm-lock.yaml ./ COPY .env* ./ diff --git a/src/events/messageCreate.ts b/src/events/messageCreate.ts index 65db008..14eb4e0 100644 --- a/src/events/messageCreate.ts +++ b/src/events/messageCreate.ts @@ -247,13 +247,15 @@ export default class MessageCreateEvent { } if (!aiResponse) { - await message.reply( - 'Sorry, I encountered an error processing your message. Please try again later.', - ); + await message.reply({ + content: 'Sorry, I encountered an error processing your message. Please try again later.', + allowedMentions: { parse: ['users'] as const }, + }); return; } aiResponse.content = processUrls(aiResponse.content); + aiResponse.content = aiResponse.content.replace(/@(everyone|here)/gi, '@\u200b$1'); await this.sendResponse(message, aiResponse); @@ -290,15 +292,21 @@ export default class MessageCreateEvent { const maxLength = 2000; if (fullResponse.length <= maxLength) { - await message.reply(fullResponse); + await message.reply({ + content: fullResponse, + allowedMentions: { parse: ['users'] as const }, + }); } else { const chunks = splitResponseIntoChunks(fullResponse, maxLength); - await message.reply(chunks[0]); + await message.reply({ content: chunks[0], allowedMentions: { parse: ['users'] as const } }); for (let i = 1; i < chunks.length; i++) { if ('send' in message.channel) { - await message.channel.send(chunks[i]); + await message.channel.send({ + content: chunks[i], + allowedMentions: { parse: ['users'] as const }, + }); } } } -- 2.51.2