|
Some checks are pending
CI / validate (push) Waiting to run
Problem: 22 von 35 Venues hatten keine crawlbaren Events, weil ihre Programm-Seiten JS-rendered, hinter Auth-Wall, oder via Bot-Protection für WebFetch blockt. Untersucht (drei Angriffsflanken): 1. mana-research prod: läuft nicht auf mana-server (Container fehlt, research.mana.how → 530). Self-host wäre Aufwand. 2. Plain bun fetch mit Mozilla-UA: Theater Konstanz liefert 42 KB HTML ABER hinter Cookie-Auth-Wall (/auth/index.html?secure=true). K9 liefert 2 KB Skeleton → wirklich JS-only. 3. iCal/RSS-Feed-Probe: Apollo Kulturhaus exponiert TEC-Plugin-iCal unter /?ical=1 mit 14 Events und exakten DTSTART-Zeiten. Lösung: Feed-First-Pattern in Skill seepuls-curate-events. - Vor WebFetch: probiere TEC-Standard-Endpoints (/?ical=1, /events/?ical=1, /?post_type=tribe_events&ical=1 etc.). - Wenn ≥1 BEGIN:VEVENT: pure-Python-iCal-Parser (RFC 5545 strict). - Vorteile: strukturiertes Format (kein LLM-Halluzinations-Risiko), exakte Zeiten, kein Bot-Protection, kein Jahres-Drift. Apollo iCal-Re-Import: - 12 alte HTML-gescrapte Apollo-Events hard-deleted (mit falschen default-20:00-Zeiten). - 14 frische iCal-Events inserted, alle mit präzisen DTSTART-Zeiten. - Neu entdeckt: Babykonzert hat 2 Termine am 20.05 (09:00+10:45), + Wladimir Kaminer am 16.10 (hatte HTML-Scrape übersehen). - Slug-Kollisions-Fix: bei doppelten Titel+Tag-Slugs HHMM-Suffix anhängen (z.B. "...sonnenzauber-babykonzert-...-1045"). Skill-Update: - Stage 2 neu: 2.0 (Feed) → 2.1 (WebFetch) → 2.2 (Multi-Step) → 2.3 (Aggregator-Fallback). - Pure-Python-iCal-Parser-Snippet im Skill (~20 Zeilen, no deps). - Known-Endpoint-Tabelle: derzeit Apollo bestätigt. TEC-Probe-Scan über 19 weitere Venue-Domains: keine weiteren echten Event-Feeds. Andere Sites (zebra, theaterandergrenze, kult-x) haben zwar /feed/ aber als Post-Feed (Articles), nicht Event-Feed. Total events live: 58 (Apollo jetzt 14 statt 10). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| seepuls-curate-events.md | ||
| seepuls-curate-venue.md | ||
| seepuls-validate-venue.md | ||