|
|
@@ -94,6 +94,20 @@ The `api` mode requires `api_url` to be set in your `config.json`:
|
|
|
}
|
|
|
```
|
|
|
|
|
|
+### Booking.com chat 2FA (`booking-2fa`)
|
|
|
+
|
|
|
+Booking.com requires a separate SMS 2FA challenge before the messaging API will accept outgoing messages. This is distinct from the main login session and must be triggered separately:
|
|
|
+
|
|
|
+```bash
|
|
|
+uv run booking-2fa
|
|
|
+```
|
|
|
+
|
|
|
+The script navigates to the messaging inbox, triggers the SMS challenge, and completes it automatically. It requires:
|
|
|
+- A valid Booking.com login session (run `refresh-creds` first)
|
|
|
+- An SMS gateway configured to forward incoming codes to `POST /sms/code` on the running room-api
|
|
|
+
|
|
|
+`booking-2fa` only needs to be re-run when the messaging session expires — it is not part of the normal `refresh-creds` flow.
|
|
|
+
|
|
|
---
|
|
|
|
|
|
## Web calendar (`calendar.html`)
|
|
|
@@ -107,6 +121,7 @@ The web calendar provides a month view of all pricing and availability data. Key
|
|
|
- **Per-month sync controls** — bulk push or fetch prices and closed status for the entire visible month; a Fill button creates default local prices for any missing dates
|
|
|
- **iCal feed blocks** — external feed closures (e.g. a fire safety calendar) are shown and can be fetched per day
|
|
|
- **Rule discounts** — pipeline-generated discounts are shown alongside manual discounts; mismatches between the rule output and what's on the calendar are surfaced
|
|
|
+- **Chat panel** — select a reservation to open a message thread; shows guest conversation history and a send field; send is disabled for platforms that require additional auth (e.g. Booking.com until `booking-2fa` is run)
|
|
|
- **Health indicator** — a header button polls `GET /health` and shows green/amber/red based on CalDAV connectivity and service credential status
|
|
|
|
|
|
---
|
|
|
@@ -132,5 +147,5 @@ uv run python scripts/gen_example_config.py > room_cal/config-all.json
|
|
|
Store tests run without any live server. Service API and CalDAV tests require live credentials:
|
|
|
|
|
|
```bash
|
|
|
-uv run python -m pytest tests/
|
|
|
+uv run --group dev python -m pytest
|
|
|
```
|