diff --git a/plugin/plugin_chrome/releases/Plugin-dima/modules/uiManager.js b/plugin/plugin_chrome/releases/Plugin-dima/modules/uiManager.js index c753733..7d4f7f5 100644 --- a/plugin/plugin_chrome/releases/Plugin-dima/modules/uiManager.js +++ b/plugin/plugin_chrome/releases/Plugin-dima/modules/uiManager.js @@ -107,6 +107,110 @@ ${techniques.map(t => `• ${t.nom}`).join('\n')} Contenu: ${this.analysisResults.contentLength} caractères`; } + getScoreIcon(score) { + if (score >= 75) return '🚨'; // Critique + if (score >= 50) return '⚠️'; // Élevé + if (score >= 30) return '⚡'; // Modéré + if (score >= 15) return '👀'; // Faible + return '✅'; // Très faible + } + + generateExecutiveSummary() { + const score = this.analysisResults.globalScore; + const techniqueCount = this.analysisResults.detectedTechniques.length; + const topTechniques = this.analysisResults.detectedTechniques.slice(0, 3); + + let summary = ""; + + // Évaluation générale selon le score + if (score >= 75) { + summary = `🚨 Manipulation intensive détectée : Ce contenu présente un niveau critique de techniques manipulatoires (${techniqueCount} technique${techniqueCount > 1 ? 's' : ''}). `; + } else if (score >= 50) { + summary = `⚠️ Manipulation significative : Ce contenu utilise plusieurs techniques suspectes (${techniqueCount} technique${techniqueCount > 1 ? 's' : ''}). `; + } else if (score >= 30) { + summary = `⚡ Éléments manipulatoires présents : Quelques techniques détectées nécessitent votre attention (${techniqueCount} technique${techniqueCount > 1 ? 's' : ''}). `; + } else { + summary = `👀 Faible niveau de manipulation : Peu d'éléments manipulatoires détectés (${techniqueCount} technique${techniqueCount > 1 ? 's' : ''}). `; + } + + // Analyse des phases dominantes + if (this.analysisResults.phaseScores && Object.keys(this.analysisResults.phaseScores).length > 0) { + const sortedPhases = Object.entries(this.analysisResults.phaseScores) + .sort(([,a], [,b]) => b - a) + .slice(0, 2); + + if (sortedPhases.length > 0) { + const dominantPhase = sortedPhases[0][0]; + summary += `La manipulation se concentre principalement sur la phase "${dominantPhase}" (${this.getPhaseExplanation(dominantPhase)}). `; + } + } + + // Technique principale + if (topTechniques.length > 0) { + const mainTechnique = topTechniques[0]; + summary += `La technique dominante est ${mainTechnique.nom} avec ${mainTechnique.confidence}% de confiance. `; + + // Conseil spécifique selon la technique + summary += this.getTechniqueAdvice(mainTechnique.index); + } + + return summary; + } + + getPhaseEmoji(phase) { + const emojis = { + 'Detect': '👁️', + 'Informer': '📢', + 'Mémoriser': '🧠', + 'Act': '⚡' + }; + return emojis[phase] || '📍'; + } + + getPhaseColor(phase) { + const colors = { + 'Detect': '#e3f2fd', // Bleu clair + 'Informer': '#f3e5f5', // Violet clair + 'Mémoriser': '#e8f5e8', // Vert clair + 'Act': '#fff3e0' // Orange clair + }; + return colors[phase] || '#f5f5f5'; + } + + getPhaseDescription(phase) { + const descriptions = { + 'Detect': 'Capter l\'attention', + 'Informer': 'Influencer ou orienter la compréhension', + 'Mémoriser': 'Ancrer l\'information', + 'Act': 'Provoquer l\'action' + }; + return descriptions[phase] || phase; + } + + getPhaseExplanation(phase) { + const explanations = { + 'Detect': 'techniques pour attirer et capter votre attention', + 'Informer': 'méthodes pour orienter votre interprétation des faits', + 'Mémoriser': 'stratégies pour ancrer certaines idées dans votre mémoire', + 'Act': 'pressions pour vous pousser à agir rapidement' + }; + return explanations[phase] || 'manipulation cognitive'; + } + + getTechniqueAdvice(techniqueIndex) { + const advices = { + 'TE0500': 'Méfiez-vous des titres sensationnalistes et vérifiez les sources.', + 'TE0132': 'Prenez du recul face aux messages alarmistes excessifs.', + 'TE0501': 'Résistez à la pression temporelle et prenez le temps de réfléchir.', + 'TE0422': 'Vérifiez les qualifications réelles des "experts" cités.', + 'TE0251': 'Questionnez les affirmations sur ce que "tout le monde" pense.', + 'TE0221': 'Attention aux généralisations excessives sur des groupes.', + 'TE0212': 'Ne tirez pas de conclusions générales à partir d\'anecdotes.', + 'TE0321': 'Cherchez des sources contradictoires pour éviter le biais de confirmation.' + }; + return advices[techniqueIndex] || 'Restez critique et vérifiez les informations.'; + } + showModal() { try { this.log('Affichage du modal'); @@ -173,6 +277,18 @@ Contenu: ${this.analysisResults.contentLength} caractères`; + + ${this.analysisResults.globalScore > 15 ? ` +
+

+ ${this.getScoreIcon(this.analysisResults.globalScore)} Résumé de l'analyse +

+

+ ${this.generateExecutiveSummary()} +

+
+ ` : ''} +

📄 Page analysée

@@ -184,6 +300,38 @@ Contenu: ${this.analysisResults.contentLength} caractères`;
+ + ${this.analysisResults.phaseScores && Object.keys(this.analysisResults.phaseScores).length > 0 ? ` +
+

📊 Répartition par phase DIMA

+
+ ${Object.entries(this.analysisResults.phaseScores).map(([phase, score]) => { + const maxScore = Math.max(...Object.values(this.analysisResults.phaseScores)); + const percentage = maxScore > 0 ? (score / maxScore) * 100 : 0; + return ` +
+
+ ${this.getPhaseEmoji(phase)} ${phase} +
+
+
+
+
+ ${score.toFixed(1)} pts +
+
+ ${this.getPhaseDescription(phase)} +
+
+ `; + }).join('')} +
+
+ 💡 La matrice DIMA analyse comment l'information traverse les 4 phases cognitives +
+
+ ` : ''} + ${this.analysisResults.detectedTechniques.length === 0 ? `