10 Commits

Author SHA1 Message Date
Jan Novak
2d214e1a7f Fix entrypoint: export DATA_DIR before exec
All checks were successful
Build and Push / build (push) Successful in 6s
exec does not support inline VAR=value assignments in bash —
the shell was trying to execute the literal string as a binary.
DATA_DIR is already set on line 4, so just export it.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0.04
2026-02-25 14:02:43 +01:00
Jan Novak
c2bc3f452f Unify server, persist ratings via API, refresh scraper data
All checks were successful
Build and Push / build (push) Successful in 13s
- Replace split setup (ratings_server.py on :8081 + http.server on :8080)
  with a single combined Flask server (server.py) on :8080 that serves
  static files and the /api/ratings GET/POST endpoints
- Ratings are now persisted server-side: mapa_bytu.html loads ratings
  from GET /api/ratings on startup (API as source of truth) and POSTs
  on every change — enables cross-browser and cross-device state sharing
  while keeping localStorage as a synchronous read cache
- Dockerfile: install flask, copy server.py instead of ratings_server.py,
  expose only port 8080
- entrypoint.sh: start single server process instead of two
- Makefile: add serve / serve-debug targets for local development
- scrape_psn.py: fix log label, add --max-pages stub arg for CLI parity
- Refresh all scraped property data

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0.03
2026-02-25 13:51:02 +01:00
b8d4d44164 Rewrite PSN + CityHome scrapers, add price/m² map coloring, ratings system, and status dashboard
- Rewrite PSN scraper to use /api/units-list endpoint (single API call, no HTML parsing)
- Fix CityHome scraper: GPS from multiple URL patterns, address from table cells, no 404 retries
- Color map markers by price/m² instead of disposition (blue→green→orange→red scale)
- Add persistent rating system (favorite/reject) with Flask ratings server and localStorage fallback
- Rejected markers show original color at reduced opacity with 🚫 SVG overlay
- Favorite markers shown as  star icons with gold pulse animation
- Add "new today" marker logic (scraped_at == today) with larger pulsing green outline
- Add filter panel with floor, price, hide-rejected controls and ☰/✕ toggle buttons
- Add generate_status.py for scraper run statistics and status.html dashboard
- Add scraped_at field to all scrapers for freshness tracking
- Update run_all.sh with log capture and status generation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 15:15:25 +01:00
Jan Novak
c6089f0da9 Add Gitea Actions CI pipeline for Docker image builds
Triggers on tag push or manual dispatch. Builds the image using
build/Dockerfile and pushes to the Gitea container registry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:40:23 +00:00
Jan Novak
327688d9d2 Add comprehensive project documentation
Cover the full pipeline (scrapers, merge, map generation), all 6 data
sources with their parsing methods, filter criteria, CLI arguments,
Docker setup, caching, rate limiting, and project structure.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:40:23 +00:00
Jan Novak
09a853aa05 Add validation mode, structured logging, and CLI args to all scrapers
- Replace print() with Python logging module across all 6 scrapers
  for configurable log levels (DEBUG/INFO/WARNING/ERROR)
- Add --max-pages, --max-properties, and --log-level CLI arguments
  to each scraper via argparse for limiting scrape scope
- Add validation Make targets (validation, validation-local,
  validation-local-debug) for quick test runs with limited data
- Update run_all.sh to parse and forward CLI args to all scrapers
- Update mapa_bytu.html with latest scrape results

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:40:23 +00:00
Jan Novak
5207c48890 add docker build, makefile, and some more shit before we move forward 2026-02-14 22:40:23 +00:00
215b51aadb Initial commit from Mac 2026-02-14 17:50:42 +01:00
846d0bd9f2 Upload files to "/"
v1 scrapery
2026-02-13 16:11:28 +00:00
82d1f94104 v1 2026-02-13 16:10:14 +00:00