diff --git a/webapp/core.py b/webapp/core.py index 6a9499e..b36bb91 100644 --- a/webapp/core.py +++ b/webapp/core.py @@ -267,21 +267,40 @@ def _extract_description(soup: BeautifulSoup) -> str: return soup.get_text('\n', strip=True)[:2000] +def _get_performance_text_blocks(soup: BeautifulSoup) -> list[str]: + """ + Retourne les blocs de texte contenant les vraies dates de représentation. + Cible d'abord les éléments CSS spécifiques au site de l'opéra, + puis utilise le texte complet en fallback. + """ + # Balises ciblées sur le site opera-orchestre-montpellier.fr + for css_class in ['section-spectacle-dates-date', 'section-spectacle-dates', + 'event-dates', 'dates-seances', 'programme-dates']: + elements = soup.find_all(class_=css_class) + if elements: + return [el.get_text(' ', strip=True) for el in elements] + + # Fallback : balises