- 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>
27 lines
716 B
Docker
27 lines
716 B
Docker
FROM python:3.13-alpine
|
|
|
|
RUN apk add --no-cache curl bash tzdata \
|
|
&& cp /usr/share/zoneinfo/Europe/Prague /etc/localtime \
|
|
&& echo "Europe/Prague" > /etc/timezone
|
|
|
|
ENV PYTHONUNBUFFERED=1
|
|
|
|
WORKDIR /app
|
|
|
|
COPY scrape_and_map.py scrape_realingo.py scrape_bezrealitky.py \
|
|
scrape_idnes.py scrape_psn.py scrape_cityhome.py \
|
|
merge_and_map.py regen_map.py run_all.sh ratings_server.py ./
|
|
|
|
COPY build/crontab /etc/crontabs/root
|
|
COPY build/entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh run_all.sh
|
|
|
|
RUN mkdir -p /app/data
|
|
|
|
EXPOSE 8080 8081
|
|
|
|
HEALTHCHECK --interval=60s --timeout=5s --start-period=300s \
|
|
CMD wget -q -O /dev/null http://localhost:8080/ || exit 1
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|