- Split src/adapters/ssr.py (2160 LOC) into ssr/ package grouped by CMS:
realworks.py, sure.py, schiedam.py, denhaag.py, overige.py
- Add _og_detail() to api.py; all OG Online scrapers now fall back to
detail page fetch when energielabel/bouwjaar are missing from the API
- Fix run() to recalculate travel times for existing listings where
fiets_mark IS NULL; upsert() now writes travel cols on existing rows too
- Update tests/cache.py to patch fetch_soup in every ssr submodule
- Update docs to reflect new package structure and mark API enrichment TODO done
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- vandriel (Schiedam): OG Online API, filtered by city=schiedam
- vanherk (Schiedam): SURE WordPress plugin (card-house), detail page kenmerken
- vanoord (Delft + Schiedam): Elementor WordPress, two filtered listing URLs, rw-object-features-list detail parsing
- makelaars.md: mark all three as done, add TODO for API scraper detail page enrichment
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- fetch_vandaal: OG Online API, covers Delft/Rijswijk/Den Haag area,
includes is_bought→verkocht status mapping
- fetch_vansilfhout: HTML scraper, all listings on single page,
extracts postcode from embedded JS variable (objectZipcode)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- fetch_moerman: OG Online realtime-listings API (same platform as bjornd),
includes bouwjaar from dateOfConstruction, energielabel, strips postcode space
- fetch_schielandborsboom: paginated HTML scraper filtered to Schiedam,
fetches #kenmerken detail page for full specs (bouwjaar, kamers, etc.)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fetches 51+ listings from D&S with full details:
- Paginates through /aanbod/koopwoningen
- Extracts property postcode from Google Maps iframe URL
- Parses all kenmerken (features) from detail pages
- Includes price, address, rooms, area, build year, energy label
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>