From d66056d031d8a39db5b473e5447c8fa0b45418cd Mon Sep 17 00:00:00 2001 From: Puechberty Arthur Date: Mon, 27 Apr 2026 22:19:54 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20g=C3=A9rer=20le=20rendu=20des=20messages?= =?UTF-8?q?=20d'image=20avec=20un=20fallback=20vers=20le=20texte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../legacy/features/memberMessages/service.ts | 47 +++++++++++++------ 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/apps/bot/src/legacy/features/memberMessages/service.ts b/apps/bot/src/legacy/features/memberMessages/service.ts index e3b0095..c77fc65 100644 --- a/apps/bot/src/legacy/features/memberMessages/service.ts +++ b/apps/bot/src/legacy/features/memberMessages/service.ts @@ -25,7 +25,6 @@ import type { TemplateSuffix, } from "../../types/memberMessages.js"; import { sanitizeMemberMessageRoleIds } from "../../validators/memberMessages.js"; -import { renderMemberMessageImage } from "./imageRenderer.js"; import type { MemberMessageRepository } from "./repository.js"; export type { @@ -163,6 +162,13 @@ const buildMemberMessagePayload = async ( }; } + if (renderType !== "image") { + return { + content: resolveTemplate(i18n, lang, kind, "simple", vars), + allowedMentions, + }; + } + const imageTitle = resolveNonEmptyTemplate( i18n, lang, @@ -178,21 +184,34 @@ const buildMemberMessagePayload = async ( vars, ); - const imageBuffer = await renderMemberMessageImage({ - kind, - title: imageTitle, - subtitle: imageSubtitle, - username: user.globalName ?? user.username, - avatarUrl: user.displayAvatarURL({ extension: "png", size: 512 }), - }); + try { + const { renderMemberMessageImage } = await import("./imageRenderer.js"); - const fileName = `${kind}-${guild.id}-${user.id}.png`; + const imageBuffer = await renderMemberMessageImage({ + kind, + title: imageTitle, + subtitle: imageSubtitle, + username: user.globalName ?? user.username, + avatarUrl: user.displayAvatarURL({ extension: "png", size: 512 }), + }); - return { - allowedMentions, - content: resolveTemplate(i18n, lang, kind, "simple", vars), - files: [new AttachmentBuilder(imageBuffer, { name: fileName })], - }; + const fileName = `${kind}-${guild.id}-${user.id}.png`; + + return { + allowedMentions, + content: resolveTemplate(i18n, lang, kind, "simple", vars), + files: [new AttachmentBuilder(imageBuffer, { name: fileName })], + }; + } catch (error) { + console.warn( + "[memberMessages] image renderer unavailable, falling back to text", + error, + ); + return { + content: resolveTemplate(i18n, lang, kind, "simple", vars), + allowedMentions, + }; + } }; export class MemberMessageService {