Initial commit.
This commit is contained in:
commit
a8e0bd39e5
16 changed files with 981 additions and 0 deletions
53
README.md
Normal file
53
README.md
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue