ParLDokAdapter: Skip Hits mit leerem PDF-Link (#61 Bug 1, TH-Pipeline-Blocker)
Live-Verifikation in der Container-DB hat aufgedeckt, dass TH ParlDok für sehr frische Vorlagen (z.B. 8/1594, datum 2026-03-31, allowed=false) ``link``/``prelink`` als leeren String liefert — das PDF ist noch nicht zur Veröffentlichung freigegeben. Bisheriges Verhalten: Adapter konstruierte einen Drucksache-Eintrag mit ``link=''``, der dann durch die Pipeline rutschte und im Frontend als unklickbarer Eintrag erschien. ``download_text()`` würde später an ``not doc.link`` scheitern, was die Analyse blockt. Sauberer Skip an der Quelle: ``_hit_to_drucksache`` returnt None, wenn weder ``link`` noch ``prelink`` einen Pfad liefern. Das ist konsistent mit den anderen None-Returns für unbrauchbare Hits (kein lp, kein number). Lokal verifiziert: 176 Unit-Tests grün. Live-Verifikation gegen Production folgt nach Deploy via Sub-A-Test im Container. Refs: #61 (Bug 1: TH leerer Link) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6ebd7aac7a
commit
4bc583e490
@ -999,16 +999,27 @@ class ParLDokAdapter(ParlamentAdapter):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def _hit_to_drucksache(self, hit: dict) -> Optional[Drucksache]:
|
def _hit_to_drucksache(self, hit: dict) -> Optional[Drucksache]:
|
||||||
"""Convert one ParlDok JSON hit to a Drucksache. None if unusable."""
|
"""Convert one ParlDok JSON hit to a Drucksache. None if unusable.
|
||||||
|
|
||||||
|
ParlDok markiert frische Vorlagen mit leerem ``link``/``prelink``
|
||||||
|
wenn das PDF noch nicht freigegeben ist (z.B. TH 8/1594, datum
|
||||||
|
2026-03-31, ``allowed: false``). Solche Hits sind für unsere
|
||||||
|
Pipeline wertlos — `download_text` würde an `not doc.link`
|
||||||
|
scheitern und das Frontend würde einen unklickbaren Eintrag
|
||||||
|
anzeigen. Sauberer Skip an dieser Stelle. Issue #61, Bug 1.
|
||||||
|
"""
|
||||||
lp = hit.get("lp")
|
lp = hit.get("lp")
|
||||||
number = hit.get("number")
|
number = hit.get("number")
|
||||||
if not lp or not number:
|
if not lp or not number:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
link_field = hit.get("link") or hit.get("prelink") or ""
|
link_field = hit.get("link") or hit.get("prelink") or ""
|
||||||
|
if not link_field:
|
||||||
|
return None
|
||||||
|
|
||||||
# Strip "#navpanes=0" fragment and prepend the prefix.
|
# Strip "#navpanes=0" fragment and prepend the prefix.
|
||||||
path = link_field.split("#", 1)[0]
|
path = link_field.split("#", 1)[0]
|
||||||
pdf_url = f"{self.base_url}{self.prefix}{path}" if path else ""
|
pdf_url = f"{self.base_url}{self.prefix}{path}"
|
||||||
|
|
||||||
return Drucksache(
|
return Drucksache(
|
||||||
drucksache=f"{lp}/{number}",
|
drucksache=f"{lp}/{number}",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user