Commit graph

812 commits

Author SHA1 Message Date
Birte Kristina Friesel
5554deed5f
fix v55 migration: we also need to sync hafas->iris in some cases 2024-07-26 20:06:58 +02:00
Birte Kristina Friesel
f1ef2e472a
influxdb: per-backend stats 2024-07-26 19:20:50 +02:00
Birte Kristina Friesel
47f76da4f8
Multi-backend support
Squashed commit of the following:

commit 92518024ba295456358618c0e8180bd8e996fdf1
Author: Birte Kristina Friesel <birte.friesel@uos.de>
Date:   Fri Jul 26 18:39:46 2024 +0200

    add_or_update station: remove superfluos 'new backend id := old backend id'

commit df21c20c6e4c86454f8a9ac69121404415217f2a
Author: Birte Kristina Friesel <birte.friesel@uos.de>
Date:   Fri Jul 26 18:35:51 2024 +0200

    revert connection targets min_count to 3

commit be335cef07d0b42874f5fc1de4a1d13396e8e807
Author: Birte Kristina Friesel <birte.friesel@uos.de>
Date:   Fri Jul 26 18:20:05 2024 +0200

    mention backend selection in API documentation

commit 9f41828fb4f18fd707e0087def3032e8d4c8d7d8
Author: Birte Kristina Friesel <derf@finalrewind.org>
Date:   Thu Jul 25 20:19:23 2024 +0200

    use_history: not all backends provide route data in departure monitor

commit 09714b4d89684b8331d0e96f564a4c7432318f70
Author: Birte Kristina Friesel <derf@finalrewind.org>
Date:   Thu Jul 25 20:11:44 2024 +0200

    disambiguation: pass correct hafas parameter

commit 8cdf1120fc32155dc6525be64601b7c10a9c7f52
Author: Birte Kristina Friesel <derf@finalrewind.org>
Date:   Thu Jul 25 20:11:28 2024 +0200

    _checked_in: hide Zuglauf link for non-db checkins

commit 7455653f541198e0e0a6d11aed421487ffdb6285
Author: Birte Kristina Friesel <derf@finalrewind.org>
Date:   Thu Jul 25 20:01:47 2024 +0200

    debug output

commit b9cda07f85601a58ea32dbdacdd5399f302db52b
Author: Birte Kristina Friesel <derf@finalrewind.org>
Date:   Thu Jul 25 19:09:07 2024 +0200

    fix remaining get_connection_targets / get_connecting_trains_p invocations

commit 2759d7258c37c7498905cfe19f6b4c4f6d16bd21
Author: Birte Kristina Friesel <derf@finalrewind.org>
Date:   Wed Jul 24 20:50:12 2024 +0200

    support non-DB HAFAS backends (WiP)
2024-07-26 18:55:58 +02:00
Birte Kristina Friesel
7811520a30
Stations: Remove get_latlon_by_name (no longer needed) 2024-07-21 19:32:35 +02:00
Birte Kristina Friesel
fa20c21ec2
Add lat/lon to pre-2.7.8 journeys; add eva where missing
This speeds up the map significantly and makes coordinates_by_station obsolete
2024-07-21 19:22:52 +02:00
Birte Kristina Friesel
de55368db7
Journey->add: store lat/lon for route at entry time, if available 2024-07-21 17:23:28 +02:00
Birte Kristina Friesel
f0b6814200
HAFAS: Add get_service wrapper 2024-07-18 18:37:33 +02:00
Birte Kristina Friesel
07ab3f4e9b
store lat/lon along with route
This increases resilience against EVA ID reuse
2024-07-08 21:05:21 +02:00
Birte Kristina Friesel
9e3d0acf93
IRIS: Use EVA ID rather than DS100 code for backend requests 2024-06-23 16:27:54 +02:00
Birte Kristina Friesel
1db4f4cd43
work: give bodged background tasks some time to complete 2024-06-23 12:47:41 +02:00
Birte Kristina Friesel
1184d84827
always use HAFAS for traewelling → travelynx 2024-06-23 10:28:51 +02:00
Birte Kristina Friesel
bd24f1f2f4
oopsie
Closes #144
2024-06-21 20:43:36 +02:00
Birte Kristina Friesel
cb8964fb3c
add_route_timestamps: use $train->id rather than in_transit id
this avoids a race condition when the worker requests all current checkins and
takes a while before getting to update the data
2024-06-21 18:27:37 +02:00
Birte Kristina Friesel
d7fd521899
InTransit: allow setting data in add call 2024-06-15 22:03:36 +02:00
Birte Kristina Friesel
9b256f0f02
remove service / sb_template selection; hardcode DBF with variable hafas flag 2024-06-15 17:50:56 +02:00
Birte Kristina Friesel
b00c3698b2
traewelling: increase latency between traewelling.de requests 2024-06-15 10:43:47 +02:00
Birte Kristina Friesel
c105bc4e40
recent journeys: use hafas=DB as well 2024-06-15 10:43:34 +02:00
Birte Kristina Friesel
38f537bf59
Use hafas=DB rather than hafas=1 2024-06-15 10:36:18 +02:00
Birte Kristina Friesel
84a3d282c1
work,traewelling: consistent debug output if maintenance file is present 2024-06-15 08:06:28 +02:00
Birte Kristina Friesel
f9664856c7
work: _really_ do not execute any database actions in maintenance mode 2024-06-14 21:49:49 +02:00
Birte Kristina Friesel
2d72ff8fc9
use 'maintenance' file to stop background jobs when running DB upgrades 2024-06-12 21:53:35 +02:00
Birte Kristina Friesel
0b725cbf66
history: it's Fahrten, not Zugfahrten. 2024-06-10 21:53:02 +02:00
Birte Kristina Friesel
c290077471
add journey: return HTTP 400 on input error 2024-06-10 21:51:56 +02:00
Birte Kristina Friesel
a74191efc3
Increate train_id length to account for DB HAFAS update 2024-06-09 09:23:26 +02:00
Birte Kristina Friesel
f71348a8a8
Store journey backend; do not rely on '|' in ID to distinguish IRIS/HAFAS
This is in preparation for supporting multiple HAFAS backends, and possibly
EFA and RIS::Journeys.
2024-06-08 22:18:31 +02:00
Birte Kristina Friesel
c969424c2d
... derp 2024-06-06 19:40:59 +02:00
Birte Kristina Friesel
14023ad185
traewelling pull sync requires user_name to be set 2024-06-06 18:01:34 +02:00
Birte Kristina Friesel
40cbfd62df
allow force checkouts even in case of route mismatches 2024-06-06 17:57:15 +02:00
Birte Kristina Friesel
c3a43725d4
traewelling: trace missing username bug 2024-06-06 06:41:52 +02:00
Birte Kristina Friesel
41cc5f3c25
work: check arr on arr, not on dep 2024-06-02 11:47:19 +02:00
Birte Kristina Friesel
f0e169cbfd
Profile: remove journeys from JSON fornow 2024-06-02 11:19:46 +02:00
Birte Kristina Friesel
7b8584473b
Profile: Add JSON renderer 2024-05-31 10:59:41 +02:00
Birte Kristina Friesel
5a72c60307
work: fix HAFAS arrival wagonorder/stationinfo request logic 2024-05-30 11:54:21 +02:00
Birte Kristina Friesel
918ed6ab1f
DBDB: Add some debug statements 2024-05-30 11:54:02 +02:00
Birte Kristina Friesel
9442572084
DBDB: use realtime cache for carriage composition requests 2024-05-30 11:53:33 +02:00
Birte Kristina Friesel
2576a463db
perform stationinfo requests for hafas checkins 2024-05-30 11:25:52 +02:00
Birte Kristina Friesel
85c7861bc1
request wagon orders for HAFAS checkins 2024-05-29 21:49:31 +02:00
Birte Kristina Friesel
1ad8fa3a51
Move wagonorder request to a separate helper
This is in preparation for HAFAS wagonorder support
2024-05-29 20:17:01 +02:00
Birte Kristina Friesel
5a2285bd59
check train/trip id when updating associated data
this avoid race conditions when a user changes their checkin between the time
of request (old trip id) and the time of data update (new trip id). These
could lead to funny effects such as buses suddenly having S-Bahn carriage
formations.
2024-05-24 21:39:09 +02:00
Birte Kristina Friesel
f7a9213961
add_route_timestamps: IRIS route may be shorter than HAFAS route 2024-05-22 19:20:39 +02:00
Birte Kristina Friesel
4764fd9a6b
route_after: handle passing the same stop more than once 2024-05-22 19:08:35 +02:00
Birte Kristina Friesel
cd6df2aa9b
Use HAFAS routes as single source of truth. Overwrite initial IRIS route. 2024-05-22 19:04:57 +02:00
Birte Kristina Friesel
dc4f61c2aa
InTransit: postprocess: simplify DateTime handling a bit 2024-05-09 08:33:55 +02:00
Birte Kristina Friesel
6d07d0a180
/status: return JSON for 404 errors as well 2024-04-26 17:48:04 +02:00
Birte Kristina Friesel
0a85971565
/status: respond to .json as well as "Accept: application/json" 2024-04-26 17:47:32 +02:00
Birte Kristina Friesel
a0bd839594
refactor polyline insertion into InTransit Model 2024-04-21 19:21:16 +02:00
Birte Kristina Friesel
2ff5f92bcc
Store HAFAS checkins with type/train/line number at checkin station 2024-04-16 18:08:21 +02:00
Birte Kristina Friesel
a72b6192ed
dumpstops: encode output as UTF-8 2024-04-07 11:23:47 +02:00
Birte Kristina Friesel
875ec1c3e5
Request polylines for HAFAS journeys as well; only store sensible ones
Decreases severity of #99
Fixes #108
2024-04-07 11:18:04 +02:00
Birte Kristina Friesel
c9e5bfae62
store tz_offset in route data if present 2024-04-03 13:58:48 +02:00
Birte Kristina Friesel
6e42d1dc29
lesson learned: do not deploy from easterhegg 2024-03-31 21:22:50 +02:00
Birte Kristina Friesel
b978ba6bc0
oops 2024-03-31 21:21:59 +02:00
Birte Kristina Friesel
970e30202d
HAFAS departures: add earlier / later links 2024-03-31 14:44:37 +02:00
Birte Kristina Friesel
9f0d72b9d1
HAFAS: correctly pass lookahead on to backend library
Closes #126

Note that this is more of a hotfix -- the underlying bug is in
Travel::Status::DE::HAFAS
2024-03-30 09:58:06 +01:00
Birte Kristina Friesel
9e073a0fe8
Traveling: work around empty evas list in HAFAS result 2024-03-05 21:35:08 +01:00
Birte Kristina Friesel
ab14df0b16
Berlin Hbf is cursed. 2024-02-25 06:50:03 +01:00
Birte Kristina Friesel
dafeb838dc
Use journeyMatch rather than legacy trainsearch.exe API to find tripIDs 2024-02-24 20:11:11 +01:00
Birte Kristina Friesel
4393751bcb
Journeys: adjust sanity_check for local transit stuff 2024-02-13 21:51:08 +01:00
Birte Kristina Friesel
39ebc84e5f
add dumpstops command 2024-02-09 19:09:16 +01:00
Birte Kristina Friesel
7eedd5149f
perltidy 2024-01-30 21:07:57 +01:00
Birte Kristina Friesel
40eb74887b
journey detail title: use departure date 2024-01-30 21:07:06 +01:00
Cassidy Dingenskirchen
5b3cfd3355
add title elements
(cherry picked from commit 5d8f6467dc00f03957784230983ed730ec421291)
Signed-off-by: Birte Kristina Friesel <derf@finalrewind.org>
2024-01-30 21:04:42 +01:00
Birte Kristina Friesel
827751e430
confirm_mail: work around funky MUAs 2024-01-14 13:33:14 +01:00
Birte Kristina Friesel
a474981f6a
work: Some HAFAS errors are not actionable and should not be logged as errors 2024-01-11 18:37:12 +01:00
Birte Kristina Friesel
1690a07d92
Rename filter_after/filter_before to filter_from/filter_to (they're inclusive) 2024-01-02 09:12:24 +01:00
Birte Kristina Friesel
2c229c0317
map: show year in headline if set 2024-01-01 12:58:59 +01:00
Birte Kristina Friesel
a2e1edbe8b
history_map: filter_until is inclusive 2023-12-31 12:24:51 +01:00
Birte Kristina Friesel
4d044fb98a
Fix connection display for Travel::Status::DE::HAFAS 5.x 2023-12-27 11:16:38 +01:00
Birte Kristina Friesel
d47195a0cf
Switch to Travel::Status::DE::HAFAS 5.x 2023-12-27 10:59:35 +01:00
Birte Kristina Friesel
6364751eb1
HAFAS: Use locationSearch rather than similar_stops_p
locationSearch uses mgate.exe, just like the regular departure board.
similar_stops_p relies on ajax-getstop.exe which may become unavailable sooner
rather than later.
2023-11-01 18:44:00 +01:00
Birte Kristina Friesel
fd43d818f9
increase level of caution 2023-10-01 10:51:58 +02:00
Birte Kristina Friesel
cbc433f76c
suggested connections: avoid fetching IRIS trains via HAFAS 2023-10-01 10:49:36 +02:00
Birte Kristina Friesel
4a2897c1f8
influxdb: add meta / related_stations count 2023-10-01 10:30:24 +02:00
Birte Kristina Friesel
aaeb81a5d2
store related stations; respect them when looking up connections 2023-10-01 07:11:58 +02:00
Birte Kristina Friesel
2638dd36fb
connections: do not show cancelled trains twice 2023-09-26 20:26:12 +02:00
Birte Kristina Friesel
e346f969b0
intransit: support HAFAS trains that do not have a type 2023-09-24 18:20:15 +02:00
Birte Kristina Friesel
de074342de
add support for HAFAS connection suggestions; drop manual destination list
Still TODO: handle stations that have several EVAs
2023-09-24 18:19:17 +02:00
Birte Kristina Friesel
8810acf742
/s: support filter by trip_id; only allow train filter in IRIS mode 2023-09-17 15:50:11 +02:00
Birte Kristina Friesel
04c8d7672a
journey: show distances below 10km with 100m resolution (and <1km with 1m) 2023-09-16 22:23:44 +02:00
Birte Kristina Friesel
434eb5a18d
map: use high beeline opacity if no polylines are available 2023-09-12 18:26:15 +02:00
Birte Kristina Friesel
8daf885ace
indicate whether current journey has realtime data 2023-09-09 10:06:31 +02:00
Birte Kristina Friesel
2e14c2e3e4
Fix intermediate stop display for journeys without real-time data, e.g. H-Bahn 2023-09-07 21:19:43 +02:00
Birte Kristina Friesel
b410176e63
perltidy 2023-09-04 17:08:17 +02:00
Birte Kristina Friesel
55451b78f4
work: 'did not find $dep' is not actionable → change severity to debug 2023-09-04 17:05:50 +02:00
Birte Kristina Friesel
26ebd3d644
API: Expose HAFAS JourneyID, if available (#85) 2023-08-30 21:54:05 +02:00
Birte Kristina Friesel
f4d71b4d9f
obtain autocompletion from database 2023-08-26 09:17:28 +02:00
Birte Kristina Friesel
559a1cedd7
manual station entry: fix HAFAS redirect 2023-08-26 09:15:33 +02:00
Birte Kristina Friesel
d313ca7fc1
resolve unknown/ambiguous stop into list of stops 2023-08-24 21:26:00 +02:00
Birte Kristina Friesel
9b66e2779d
geolocation: Fix 'hafas=undefined' links for iris stops 2023-08-24 21:11:45 +02:00
Birte Kristina Friesel
ecc419e646
select latest journey based on timestamp, not ID
This avoids manually added past journeys messing with the latest travel target
2023-08-22 09:21:02 +02:00
Birte Kristina Friesel
6ca55f83b1
Database: create index on real_departure to speed up latest journey queries 2023-08-22 09:10:54 +02:00
Birte Kristina Friesel
8f747fff91
sort HAFAS/IRIS stations by distance 2023-08-20 16:52:09 +02:00
Birte Kristina Friesel
b85e8a1e04
API: Support HAFAS checkin (via journeyID) 2023-08-19 12:43:43 +02:00
Birte Kristina Friesel
85022709d7
API: fix checkin with toStation and checkout endpoints
Broken by 38ad42b42c
2023-08-19 10:06:15 +02:00
Birte Kristina Friesel
54547eb3af
manual station entry: HAFAS support 2023-08-18 20:42:37 +02:00
Birte Kristina Friesel
654bde9278
geosearch: always query iris and hafas stops 2023-08-16 18:54:32 +02:00
Birte Kristina Friesel
5d330a7738
recent targets: distinguish hafas/iris 2023-08-16 09:31:01 +02:00
Birte Kristina Friesel
dfe820952f
station board: add iris / hafas links 2023-08-15 08:37:14 +02:00
Birte Kristina Friesel
8f377d4ee5
traveling: redirect hafas journeys to hafas=1 2023-08-14 12:35:22 +02:00
Birte Kristina Friesel
293f0c7577
synchronize non-train checkins from traewelling to travelynx 2023-08-13 20:18:40 +02:00