INNER CODE UNIT · Python
_strip_html
lawve-ai/awesome-legal-skills · skills/ktzr-polskie-umowy-gospodarcze-adam-piotrowski/tools/legal-cite/legal_cite/core.py:104
def _strip_html(raw_html: str) -> str:
# 1) usuń <script>/<style> WRAZ z treścią — api.sejm.gov.pl wstrzykuje strukturę
# aktu jako JSON w <script>, inaczej kradłby dopasowanie nagłówka „Art. N.".
raw_html = re.sub(r'<(script|style)\b[^>]*>.*?</\1>', ' ', raw_html,
flags=re.IGNORECASE | re.DOTALL)
# 2) strip tagów → 3) DEKODUJ encje (kluczowe: nagłówki to „Art. 45." —
# to twarda spacja \xa0; po unescape regex „Art.\s*N." łapie) →
# 4) zwiń białe znaki (w tym \xa0) do zwykłej spacji.
text = re.sub(r'<[^>]+>', ' ', raw_html)
text = _html.unescape(text)
return re.sub(r'\s+', ' ', text).strip()
async def _fetch_pl(info: dict) -> str | None:
"""Pobiera AKTUALNY tekst aktu (tekst jednolity), nie pierwotny z dnia
ogłoszenia. api.sejm `/text.html` pod pozycją oryginału zwraca brzmienie
pierwotne (np. KC 1964 — „PRL", bez art. 385¹). Dlatego z metadanych bierzemy
najnowszy tekst jednolity z dostępnym HTML; oryginał = fallback."""