rates/backend
jtricerolph c49985bec7 Add hotel discovery scrape, manual hotel add, and competitor-only filtering
- Scraper: restrict hotel-page scraper to 'competitor' tier only (was own+competitor); own hotel rates come from Newbook API, not Booking.com
- Backend: POST /competitors/discover — runs search-results scrape for one date to find market hotels regardless of current backend setting
- Backend: POST /competitors/hotels — add hotel manually from Booking.com URL + name + tier; upserts on slug conflict
- Frontend (Settings tab): Discover Market Hotels button added below manual date-range scrape
- Frontend (Hotels tab): Add Hotel form at top — paste URL (auto-derives name from slug), choose tier, submit

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-10 00:08:58 +00:00
..
api Add hotel discovery scrape, manual hotel add, and competitor-only filtering 2026-07-10 00:08:58 +00:00
jobs Parity: best-available comparison as default, term-matching optional 2026-07-06 08:04:15 +00:00
services Add hotel discovery scrape, manual hotel add, and competitor-only filtering 2026-07-10 00:08:58 +00:00
auth.py
database.py
Dockerfile Revert to headed Chrome + Xvfb; add shm_size 256m to fix Xvfb in Docker 2026-07-09 17:36:27 +00:00
main.py
migrate_direct_data.py Restore guestline-monitor features: room stock/occupancy, rate history, room stats 2026-07-06 06:50:37 +00:00
requirements.txt Scraper stealth: headful+xvfb, playwright-stealth, coherent UA, warm-up, click-paginate 2026-07-05 16:26:01 +00:00
scheduler.py Scraper: force-reset endpoint + watchdog to prevent stuck lock 2026-07-09 16:56:35 +00:00
schema.sql Add hotel-page scraper backend with full room/rate plan extraction 2026-07-09 23:08:03 +00:00