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, TemplateSuffix,
} from "../../types/memberMessages.js"; } from "../../types/memberMessages.js";
import { sanitizeMemberMessageRoleIds } from "../../validators/memberMessages.js"; import { sanitizeMemberMessageRoleIds } from "../../validators/memberMessages.js";
import { renderMemberMessageImage } from "./imageRenderer.js";
import type { MemberMessageRepository } from "./repository.js"; import type { MemberMessageRepository } from "./repository.js";
export type { export type {
@@ -163,6 +162,13 @@ const buildMemberMessagePayload = async (
}; };
} }
if (renderType !== "image") {
return {
content: resolveTemplate(i18n, lang, kind, "simple", vars),
allowedMentions,
};
}
const imageTitle = resolveNonEmptyTemplate( const imageTitle = resolveNonEmptyTemplate(
i18n, i18n,
lang, lang,
@@ -178,21 +184,34 @@ const buildMemberMessagePayload = async (
vars, vars,
); );
const imageBuffer = await renderMemberMessageImage({ try {
kind, const { renderMemberMessageImage } = await import("./imageRenderer.js");
title: imageTitle,
subtitle: imageSubtitle,
username: user.globalName ?? user.username,
avatarUrl: user.displayAvatarURL({ extension: "png", size: 512 }),
});
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 { const fileName = `${kind}-${guild.id}-${user.id}.png`;
allowedMentions,
content: resolveTemplate(i18n, lang, kind, "simple", vars), return {
files: [new AttachmentBuilder(imageBuffer, { name: fileName })], 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 { export class MemberMessageService {