/**
* articleFetcher.ts
*
* Récupère le contenu textuel des 500 premiers mots d'un article web
* pour enrichir la classification IA quand le résumé RSS est trop court.
*
* Stratégie :
* - Fetch HTTP avec timeout 5 secondes
* - Extraction des balises
,
– du HTML brut (sans dépendance lourde)
* - Limite à 500 mots pour rester dans le contexte LLM
* - Retourne null en cas d'erreur (timeout, 403, paywall, JS-only…) — silencieux
*/
const FETCH_TIMEOUT_MS = 5_000;
const MAX_WORDS = 500;
/**
* Extrait le texte brut des balises de contenu d'un HTML.
* Approche légère sans parser DOM complet.
*/
function extractTextFromHtml(html: string): string {
// Supprimer les balises script, style, nav, header, footer, aside
let cleaned = html
.replace(/