--- name: HTML structure of "À prévoir" section description: Pattern HTML, sélecteurs et règles de mapping pour la section "À prévoir" des pages de quête dofuspourlesnoobs.com type: project --- Le site est rendu via Weebly. L'en-tête de quête (Prérequis, Position de lancement, Récompenses, À prévoir) tient dans un seul `
`, en HTML plat, avec des cascades de `` parasites. **Identification de la section** : il n'existe pas de classe CSS dédiée. La seule clé fiable est le libellé textuel `À prévoir` (encodé `À prévoir`, parfois suivi d'un espace, parfois `:` à l'intérieur ou à l'extérieur du ``). Les couleurs `` du header (`#f00` Prérequis, `#3a96b8` Position de lancement, `#5fa233` Récompenses) **ne s'appliquent pas** à À prévoir — ne pas s'en servir comme discriminateur. **Structure typique** : ```html À prévoir :
  • 2 x combats (réalisable en groupe).
  • 1 x Donjon Antre du Dragon Cochon.
``` **Stratégie de parsing robuste** : sur le `inner_html()` du `
`, splitter via regex `(?i)]*>\s*À\s*prévoir\s*\s*:?` puis couper au prochain ``. Cette approche tolère la cascade de `` Weebly mieux que la navigation par siblings. **Cas "À savoir"** : sur quêtes simples (cryptologie, mise-à-l'épreuve), un `À savoir :` apparaît à la place — texte libre sans `
    `. Section distincte, ne pas la confondre. **Cas "absence"** : certaines quêtes (la-colere-des-dieux) n'ont ni À prévoir ni À savoir → retourner Vec::new(), c'est valide. **Mapping texte → combat_type observé** : - `donjon` dans le texte → `"donjon"` (label = nom du donjon) - `combat` + `seul` → `"solo"` - `combat` + `groupe`/`réalisable en groupe` → `"groupe"` - `combat à vagues` → `"combat_vagues"` - `combat "tactique"` → `"combat_tactique"` - `combats aléatoires` → `"combat_aleatoire"` - `combats contre des monstres` → `"combat_zone"` - `Aller à ` → `"deplacement"` - `n x ` sans "combat"/"donjon" → `"item"` (matériaux à fournir) - modifier observé : `évitable` → flag boolean **Count** : extraire via regex `^(\d+)\s*x\s*`. Si commence par `Des ` → quantité indéterminée (`"x?"`). **Why** : ces patterns ont été validés sur 10 pages réelles (espoirs-et-trageacutedies, dans-la-gueule-du-milimilou, voir-le-dark-vlad-et-mourir-ou-pas, mise-agrave-leacutepreuve, cryptologie, plongeon-et-dragon, le-dragon-noir, une-acircme-en-colegravere, a-la-recherche-de-crocoburio, l-oeuf-de-crocabulia) en avril 2026. **How to apply** : utiliser ce mapping dans `src-tauri/src/commands.rs` pour peupler `CombatIndicator`. Si la struct actuelle (combat_type + count) est conservée, le label du donjon/item est perdu — recommander d'ajouter `label: Option` et `evitable: bool` pour préserver l'info riche.