# Bristol Eurostar Source: https://git.4angle.com/edward/bristol-eurostar Plan a trip from Bristol Temple Meads to Europe via Eurostar. Combines GWR trains (Bristol → Paddington) with Eurostar services (St Pancras → destination) and shows all valid same-day connections, including Circle Line times for the Paddington → St Pancras transfer. Displays GWR walk-on fares, Eurostar Standard prices, seat availability, and total journey cost. ## Destinations - Paris Gare du Nord - Brussels Midi - Lille Europe - Amsterdam Centraal - Rotterdam Centraal - Cologne Hbf ## How it works Train times and prices are fetched from two sources: - **GWR** — scraped from [Realtime Trains](https://www.realtimetrains.co.uk/) using httpx - **Eurostar** — fetched from the Eurostar GraphQL API (single call returns timetable, Standard fares, and seat availability) The Paddington → St Pancras transfer uses a real Circle Line timetable parsed from a TfL TransXChange XML file, accounting for walk time to the platform at Paddington and walk time from the platform to the St Pancras check-in. Results are cached to disk by date and destination. ## Connection constraints Configurable via the search form. Defaults: | | | |---|---| | Minimum Paddington → St Pancras | 50 min | | Maximum Paddington → St Pancras | 110 min | Valid range: 45–120 min (min), 60–180 min (max). ## GWR fares Walk-on single fares for Bristol Temple Meads → Paddington, selected automatically by departure time: | Ticket | Price | Restriction (weekdays) | |---|---|---| | Super Off-Peak | £45.00 | Not valid 05:05–09:57 | | Off-Peak | £63.60 | Not valid before 08:26 | | Anytime | £138.70 | No restriction | Weekends always use Super Off-Peak. ## Setup ```bash pip install -e ".[dev]" ``` ### Configuration Copy or create `config/local.py` (gitignored) to override defaults: ```python CACHE_DIR = '/var/cache/bristol-eurostar' CIRCLE_LINE_XML = '/path/to/output_txc_01CIR_.xml' ``` Defaults (in `config/default.py`) use `~/lib/data/tfl/`. The Circle Line XML is a TfL TransXChange timetable file. The Paddington (H&C Line) stop is `9400ZZLUPAH1`; the King's Cross St Pancras stop is `9400ZZLUKSX3`. ## Running ```bash flask --app app run ``` Then open http://localhost:5000. ## Tests ```bash pytest ``` ## License MIT