fix: gérer le rendu des messages d'image avec un fallback vers le texte

This commit is contained in:
Puechberty Arthur
2026-04-27 22:19:54 +02:00
parent 08adc97a7a
commit d66056d031
@@ -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,6 +184,9 @@ const buildMemberMessagePayload = async (
vars,
);
try {
const { renderMemberMessageImage } = await import("./imageRenderer.js");
const imageBuffer = await renderMemberMessageImage({
kind,
title: imageTitle,
@@ -193,6 +202,16 @@ const buildMemberMessagePayload = async (
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 {