3.0 KiB
name, description, type
| name | description | type |
|---|---|---|
| HTML structure of "À prévoir" section | Pattern HTML, sélecteurs et règles de mapping pour la section "À prévoir" des pages de quête dofuspourlesnoobs.com | 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 <div class="paragraph">, en HTML plat, avec des cascades de <span> parasites.
Identification de la section : il n'existe pas de classe CSS dédiée. La seule clé fiable est le libellé textuel <strong>À prévoir</strong> (encodé À prévoir, parfois suivi d'un espace, parfois : à l'intérieur ou à l'extérieur du <strong>). Les couleurs <font color="..."> 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 :
<strong>À prévoir :</strong>
<ul>
<li>2 x combats (réalisable en groupe).</li>
<li>1 x Donjon Antre du Dragon Cochon.</li>
</ul>
Stratégie de parsing robuste : sur le inner_html() du <div class="paragraph">, splitter via regex (?i)<strong[^>]*>\s*À\s*prévoir\s*</strong>\s*:? puis couper au prochain <strong rencontré. Parser ce fragment avec Html::parse_fragment et itérer les <li>. Cette approche tolère la cascade de <span> Weebly mieux que la navigation par siblings.
Cas "À savoir" : sur quêtes simples (cryptologie, mise-à-l'épreuve), un <strong>À savoir :</strong> apparaît à la place — texte libre sans <ul>. 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é :
donjondans 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 à <lieu>→"deplacement"n x <Nom>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<String> et evitable: bool pour préserver l'info riche.