From 53054ccd87b6f38e96c668304ec0651b5379b35d Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 29 Nov 2025 10:27:01 +0000 Subject: [PATCH] =?UTF-8?q?debug:=20Ajouter=20des=20logs=20d=C3=A9taill?= =?UTF-8?q?=C3=A9s=20pour=20diagnostiquer=20le=20probl=C3=A8me=20d'emojis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout de logs pour tracer: - Le parsing des emojis (combien détectés, URLs générées) - Le téléchargement des images (succès/échec, codes HTTP) - Le rendu final (succès/erreur avec détails) Cela permettra d'identifier si le problème vient de: - URLs Twemoji incorrectes - Échec de téléchargement depuis le CDN - Problème de chargement/décodage de l'image --- server/services/emojiRenderer.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/server/services/emojiRenderer.ts b/server/services/emojiRenderer.ts index ae9f190..648c880 100644 --- a/server/services/emojiRenderer.ts +++ b/server/services/emojiRenderer.ts @@ -19,6 +19,8 @@ export class EmojiRenderer { */ private parseTextWithEmojis(text: string): EmojiSegment[] { const emojis = parse(text); + console.log(`📝 Parse texte: "${text}" => ${emojis.length} emoji(s) trouvé(s)`); + if (emojis.length === 0) { return [{ type: 'text', content: text }]; } @@ -27,6 +29,8 @@ export class EmojiRenderer { let lastIndex = 0; for (const emoji of emojis) { + console.log(` - Emoji détecté: "${emoji.text}" => URL: ${emoji.url}`); + // Add text before emoji if (emoji.indices[0] > lastIndex) { const textContent = text.substring(lastIndex, emoji.indices[0]); @@ -64,7 +68,15 @@ export class EmojiRenderer { return this.emojiCache.get(url)!; } + console.log('🔍 Téléchargement emoji depuis:', url); const response = await fetch(url); + + if (!response.ok) { + console.error(`❌ Erreur téléchargement emoji: ${response.status} ${response.statusText}`); + throw new Error(`Failed to fetch emoji: ${response.status}`); + } + + console.log('✅ Emoji téléchargé avec succès'); const buffer = Buffer.from(await response.arrayBuffer()); this.emojiCache.set(url, buffer); return buffer; @@ -118,8 +130,10 @@ export class EmojiRenderer { ctx.drawImage(emojiImage, currentX, emojiY, emojiSize, emojiSize); currentX += emojiSize; + console.log(`✅ Emoji "${segment.content}" dessiné avec succès`); } catch (error) { - console.error('Error loading emoji:', error); + console.error(`❌ Erreur lors du chargement/rendu de l'emoji "${segment.content}":`, error); + console.error(' URL:', segment.url); // Fallback: draw text representation ctx.fillText(segment.content, currentX, y); currentX += ctx.measureText(segment.content).width;