Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions plugin/plugin_chrome/releases/Plugin-dima/data/keywords.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ const DIMA_ENHANCED_KEYWORDS = {
],
},
temporal: ["imminent", "proche", "bientôt", "soon", "approaching"],
formal: ["situation critique", "état d'urgence", "alerte maximale"],
informal: ["c'est la cata", "on est foutu", "ça craint"],
},
patterns: [
/(?:alerte|alert|warning|attention)\s+(?:rouge|red|maximum)/i,
Expand Down Expand Up @@ -126,6 +128,43 @@ const DIMA_ENHANCED_KEYWORDS = {
/(?:expire|ends?)\s+(?:bientôt|soon|today|demain|tomorrow)/i,
],
},
TE0251: {
core: ["tout le monde", "consensus", "everyone", "la plupart", "most people", "nous pensons", "we think"],
variants: {
universal_claims: [
"personne ne peut nier",
"nobody can deny",
"c'est du bon sens",
"it's common sense",
"chacun sait que",
"everyone knows"
],
majority_appeals: [
"la majorité pense",
"the majority thinks",
"l'opinion générale",
"most agree"
]
},
patterns: [
/(?:tout le monde|everyone)\s+(?:sait|knows?|dit|says?)/i,
/(?:la plupart|most)\s+(?:des gens|people)\s+(?:pensent|think)/i
],
},

TE0422: {
core: ["autorité", "authority", "expert", "spécialiste", "specialist", "professeur", "professor", "docteur", "doctor", "officiel"],
variants: {
titles: ["Dr.", "Pr.", "Prof.", "PhD", "expert reconnu", "spécialiste renommé"],
institutions: ["selon Harvard", "université de", "une étude de", "des chercheurs de"],
appeal_phrases: ["selon les experts", "la science prouve", "études montrent", "scientifiquement prouvé"]
},
patterns: [
/(?:selon|according to)\s+(?:les?\s+)?(?:experts?|spécialistes?)/i,
/(?:étude|study|research)\s+(?:révèle|shows?|démontre)/i,
/(?:Dr\.|Prof\.|PhD)\s+\w+\s+(?:affirme|says?)/i
],
},
};

const CONTEXT_PATTERNS = {
Expand Down
57 changes: 42 additions & 15 deletions plugin/plugin_chrome/releases/Plugin-dima/data/techniques.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ const DIMA_TECHNIQUES = [
"case",
"témoignage",
"testimony",
"histoire vraie", "true story", "vécu", "expérience", "prenons l'exemple",
"take the example","illustration", "démonstration", "spécimen", "par exemple", "for example"
],
weight: 1.0,
type: "technique",
Expand All @@ -132,10 +134,8 @@ const DIMA_TECHNIQUES = [
phase: "Detect",
description: "Répétition pour créer une familiarité artificielle",
mots_cles: [
"encore",
"again",
"toujours",
"always",
"encore et toujours",
"again and again",
"répétition",
"repetition",
"familier",
Expand All @@ -159,6 +159,8 @@ const DIMA_TECHNIQUES = [
"frequent",
"épidémie",
"epidemic",
"sans cesse", "constantly", "en permanence", "all the time", "se répand", "spreading",
"prolifère", "multiplies", "tendance", "trend", "phénomène", "phenomenon", "on en parle partout"
],
weight: 1.1,
type: "technique",
Expand All @@ -174,8 +176,7 @@ const DIMA_TECHNIQUES = [
"same as",
"cela rappelle",
"déjà vu",
"par ailleurs",
"contexte",
"dans ce contexte",
],
weight: 0.9,
type: "technique",
Expand All @@ -198,6 +199,8 @@ const DIMA_TECHNIQUES = [
"shocking",
"inhabituel",
"unusual",
"surprenant", "surprising", "inattendu", "unexpected", "anormal", "abnormal", "hors norme", "extraordinary",
"stupéfiant", "mind-blowing", "hallucinant", "unbelievable", "jamais vu", "never seen", "renversant"
],
weight: 1.3,
type: "technique",
Expand Down Expand Up @@ -232,8 +235,11 @@ const DIMA_TECHNIQUES = [
phase: "Detect",
description: "Mise en avant de l'unicité pour marquer les esprits",
mots_cles: [
"unique",
"seul",
"uniquement",
"seuleument",
"rien de comparable",
"sans comparaison",
"sans équivalent",
"only",
"exclusif",
"exclusive",
Expand Down Expand Up @@ -453,6 +459,9 @@ const DIMA_TECHNIQUES = [
"selon une étude",
"un témoignage",
"un témoin",
"prenons l'exemple de", "regardez le cas de", "voici l'histoire de", "j'ai un ami qui", "mon voisin",
"cela prouve que", "this proves that", "la preuve c'est que", "comme le montre", "cet exemple illustre",
"une connaissance", "dans ma famille", "someone I know", "consider the case of"
],
weight: 1.4,
type: "technique",
Expand Down Expand Up @@ -483,15 +492,13 @@ const DIMA_TECHNIQUES = [
"stéréotype",
"les étrangers",
"les immigrants",
"all the",
"toujours",
"always",
"jamais",
"never",
"en général",
"in general",
"les français",
"americans",
"tous les", "toutes les", "every single", "sans exception", "généralement", "typically",
"ils sont tous", "comme tous les", "usually they", "systématiquement", "invariablement",
"à chaque fois", "every time", "c'est toujours comme ça", "always the same", "c'est typique des"
],
weight: 1.6,
type: "technique",
Expand Down Expand Up @@ -544,6 +551,9 @@ const DIMA_TECHNIQUES = [
"suffit de",
"just need to",
"solution",
"basique", "basic", "élémentaire", "elementary", "logique", "logical", "naturel", "natural",
"sans effort", "effortless", "automatique", "automatic", "c'est simple", "it's simple",
"il suffit de", "la solution est simple", "the solution is simple"
],
weight: 1.3,
type: "technique",
Expand Down Expand Up @@ -659,7 +669,9 @@ const DIMA_TECHNIQUES = [
"sources confirment",
"rien ne démontre",
"hasard ?",
"les faits",
"les faits rapportés",
"selon certains", "some say", "il paraît que", "apparently", "on dit que", "they say",
"j'ai entendu dire", "I heard", "des experts", "some experts", "certaines sources", "various sources"
],
weight: 1.2,
type: "technique",
Expand Down Expand Up @@ -692,6 +704,9 @@ const DIMA_TECHNIQUES = [
"image",
"imaginez",
"supposons",
"visualisez", "visualize", "pensez à", "think about", "ne trouvez-vous pas", "don't you think",
"n'est-ce pas", "isn't it", "si jamais", "what if", "dans l'hypothèse", "hypothetically",
"cela rappelle", "this reminds", "picture this"
],
weight: 1.1,
type: "technique",
Expand All @@ -715,6 +730,9 @@ const DIMA_TECHNIQUES = [
"i was right",
"évident",
"obvious",
"valide", "validates", "corrobore", "corroborates", "je le savais", "I knew it", "exactement", "exactly",
"forcément", "inevitably", "logiquement", "logically", "cela confirme", "this confirms",
"comme attendu", "as anticipated", "évidemment", "obviously"
],
weight: 1.5,
type: "technique",
Expand Down Expand Up @@ -770,6 +788,7 @@ const DIMA_TECHNIQUES = [
description: "Mise en avant des bénéfices personnels pour motiver l'action",
mots_cles: [
"vous bénéficiez",
"vous gagnez",
"you benefit",
"votre avantage",
"your advantage",
Expand Down Expand Up @@ -828,11 +847,13 @@ const DIMA_TECHNIQUES = [
"confident",
"sûr",
"sure",
"certain",
"capable",
"expert",
"maîtrise",
"mastery",
"assuré", "assured", "convaincu", "convinced", "spécialiste", "specialist", "professionnel", "professional",
"indubitable", "undoubtable", "incontestable", "unquestionable", "je suis sûr", "i am sure",
"sans aucun doute", "without a doubt", "évidemment", "obviously"
],
weight: 1.2,
type: "technique",
Expand All @@ -852,6 +873,9 @@ const DIMA_TECHNIQUES = [
"invest more",
"ne pas abandonner",
"don't give up",
"persévérer", "persevere", "tenir bon", "hold on", "doubler la mise", "double down",
"aller plus loin", "go further", "s'engager", "commit", "ne pas lâcher", "don't quit",
"continue à", "continue to", "keep going", "coûte que coûte", "quoi qu'il en coûte"
],
weight: 1.1,
type: "technique",
Expand Down Expand Up @@ -893,6 +917,9 @@ const DIMA_TECHNIQUES = [
"status quo",
"comme ça",
"as is",
"stabilité", "stability", "équilibre", "balance", "préserver", "preserve", "garder", "keep",
"résister au changement", "resist change", "mieux vaut rester", "better to stay",
"ne changeons rien", "let's not change", "comme avant", "as before"
],
weight: 1.0,
type: "technique",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,16 +130,32 @@ class ContentExtractor {
"advertisement",
"social",
"share",
"cookie", "popup", "modal", "overlay", "banner", "newsletter",
"related", "suggest", "recommend", "widget", "promo", "promotion",
"comment", "rating", "review", "breadcrumb", "pagination", "tag",
"metadata", "byline", "author-bio", "subscription", "paywall"
];
const skipIds = ["nav", "menu", "footer", "header", "sidebar", "comments","cookie-banner", "newsletter", "popup", "modal", "overlay",
"related-articles", "advertisement", "social-sharing"];
const skipAttributes = [
'data-module="Advertisement"',
'data-component="SocialShare"',
'data-track-component="Newsletter"',
'role="banner"',
'role="navigation"',
'role="complementary"'
];
const skipIds = ["nav", "menu", "footer", "header", "sidebar", "comments"];

const className = element.className?.toLowerCase() || "";
const id = element.id?.toLowerCase() || "";

return (
skipClasses.some((skip) => className.includes(skip)) ||
skipIds.some((skip) => id.includes(skip)) ||
skipAttributes.some((attr) => element.getAttribute(attr.split('=')[0]) === attr.split('=')[1]?.replace(/"/g, '')) ||
element.getAttribute("aria-hidden") === "true" ||
element.getAttribute("role") === "banner" ||
element.getAttribute("role") === "navigation" ||
getComputedStyle(element).display === "none"
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,17 @@ class TechniqueAnalyzer {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}

calculatePositionWeight(position, textLength) {
const relativePosition = position / textLength;
// Boost pour les éléments en début de texte (titres, accroches)
if (relativePosition < 0.15) return 1.4;
// Boost modéré pour le premier tiers
if (relativePosition < 0.33) return 1.1;
// Boost pour la fin (conclusions, appels à l'action)
if (relativePosition > 0.85) return 1.2;
// Poids normal pour le milieu
return 1.0;
}
calculateRiskLevel(score) {
if (score < 15) return "Faible";
if (score < 30) return "Modéré";
Expand Down