Initial commit.

This commit is contained in:
Edward Betts 2026-03-30 19:34:46 +01:00
commit a8e0bd39e5
16 changed files with 981 additions and 0 deletions

53
README.md Normal file
View file

@ -0,0 +1,53 @@
# Bristol Eurostar
Plan a trip from Bristol Temple Meads to Europe on Eurostar.
Combines GWR trains (Bristol → Paddington) with Eurostar services (St Pancras → destination) and shows all valid same-day connections, filtering by journey time and minimum/maximum transfer window at Paddington/St Pancras.
## Destinations
- Paris Gare du Nord
- Brussels Midi
- Lille Europe
- Amsterdam Centraal
## How it works
Train times are fetched from two sources simultaneously:
- **GWR** — scraped from [Realtime Trains](https://www.realtimetrains.co.uk/) using httpx
- **Eurostar** — scraped from the Eurostar timetable pages via the embedded `__NEXT_DATA__` JSON (no browser required)
Results are cached to disk by date and destination.
## Connection constraints
| | |
|---|---|
| Minimum Paddington → St Pancras | 75 min |
| Maximum Paddington → St Pancras | 2h 20m |
| Maximum Bristol → Paddington | 1h 50m |
## Setup
```bash
pip install -e ".[dev]"
```
## Running
```bash
flask --app app run
```
Then open http://localhost:5000.
## Tests
```bash
pytest
```
## License
MIT