Commit graph

239 commits

Author SHA1 Message Date
Daniel Friesel
5ce4bc6995 improve commute station heuristic
Select top station on work days (Mo .. Fr) with arrival < 13:00 or
departure >= 13:00.
2020-04-19 17:40:39 +02:00
Daniel Friesel
a3cfa598a6 use german locale in epoch_to_dt helper 2020-04-19 17:09:02 +02:00
Daniel Friesel
0a87135e35 get_top_destinations: order by count desc
order is ascending by default, resulting in flop instead of top destinations.
2020-04-19 16:50:50 +02:00
Daniel Friesel
94932c4102 add commute stats. not linked from nav yet. 2020-04-19 16:49:31 +02:00
Daniel Friesel
ac2a23c3fa Fix occasionally incorrect TripIDs (and thus incorrect polylines)
Until now, tripIDs were cached based on station and departure timestamp.
These are identical for any two trains departing at the same time at the same
station, leading to one of those getting being assigned a wrong tripID.

From now on, only the JSON reported by transport.rest is cached -- tripIDs
are always recomputed based on it.
2020-04-16 09:47:31 +02:00
Daniel Friesel
d66cf00d9d log train number when encountering a timestamp error 2020-04-16 04:55:04 +02:00
Daniel Friesel
e5f273ced3 ignore missing timestamps when performing a force checkout 2020-04-16 04:54:41 +02:00
Daniel Friesel
4cc510d710 use polyline when computing monthly/yearly distance travelled
Closes #40
2020-04-14 18:22:49 +02:00
Daniel Friesel
6826c03386 show select past departures in checkin suggestion list
Previously, for each destination, up to two departures between now and
now + 40 minutes were shown.

When performing a fresh checkin (i.e., the has not logged a journey in the
past few minutes and is not currently checked in), the departure list now
additionally contains all departures between now - 5 minutes and now.

When checking in from a train (i.e., the user has recently checked out at
the station or is still checked in), it additionally contains all departures
between arrival time and now.

Closes #33
2020-04-14 17:45:09 +02:00
Daniel Friesel
e6b74ef087 show QoS pictograms in connection list 2020-03-03 18:29:37 +01:00
Daniel Friesel
3c897ad62a polyline sanity check: Handle border stations and incomplete IRIS routes 2020-02-25 21:25:53 +01:00
Daniel Friesel
1d2b37f849 Ignore polylines which do not agree with IRIS route 2020-02-25 17:55:19 +01:00
Daniel Friesel
5c05ed609f journey details: show route on map if available 2020-02-23 19:04:05 +01:00
Daniel Friesel
82f043e734 Move map data generation to a global helper function 2020-02-23 18:35:56 +01:00
Daniel Friesel
a15dc1791c calculate journey distance using polyline, if available 2020-02-21 23:31:50 +01:00
Daniel Friesel
cc7439dd5e handle departure cancellation after checkin 2020-02-17 21:13:07 +01:00
Daniel Friesel
a1865fa69e add privacy setting for showing history and latest arrival timestamp 2020-02-14 16:29:44 +01:00
Daniel Friesel
a830acc698 Handle cancelled arrival at checkout when departure at checkin is not cancelled 2020-02-12 20:38:24 +01:00
Daniel Friesel
ee38d48a55 Add another fix for invalid HAFAS XML 2020-02-12 20:35:27 +01:00
Daniel Friesel
eb3f4aed05 allow checkin and checkout station to be edited 2020-02-01 16:15:20 +01:00
Daniel Friesel
5439dbad34 Fix cancellation line in journey view.
Broken by 993f6be6c9
2020-02-01 14:28:10 +01:00
Daniel Friesel
a29568711f fix uninitialized value warning when handling odd trains (trains without type) 2020-02-01 10:59:46 +01:00
Daniel Friesel
aa7a7db2bc map: show polylines by default 2020-01-31 18:16:00 +01:00
Daniel Friesel
993f6be6c9 map: set bounds on stations; move polyline feature to staging 2020-01-29 18:48:58 +01:00
Daniel Friesel
fca6a5df6c journey_sanity_check: handle duration == 0 2020-01-28 20:01:00 +01:00
Daniel Friesel
b47a29d484 Store journey polylines in DB
Squashed commit of the following:

commit d60c7d3c98d88a8f5b0e3ced6c11b56053e1e44b
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Mon Jan 27 20:22:46 2020 +0100

    fix bugs related to users without past journeys

commit 707fcc937ac7f6bc3dc29024273f5e74963f7f15
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Mon Jan 27 20:19:14 2020 +0100

    work around Cache::file turning floats into strings

commit 55831121eb30bc30ed20134bbb48e4bee9772feb
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Mon Jan 27 19:43:29 2020 +0100

    store journey polylines for later use

commit 1971d511037ff2b8fbc9699cb98e4f8fd51261e5
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Sat Jan 25 16:49:48 2020 +0100

    set preliminary database schema for polyline storage.

    deduplication will follow at a later stage
2020-01-27 20:32:15 +01:00
Daniel Friesel
47171500b7 fix bugs related to users without past journeys 2020-01-27 20:25:02 +01:00
Daniel Friesel
21234707fc add_journey: allow up to 99 journeys per 24 hours 2020-01-26 15:31:01 +01:00
Daniel Friesel
ba62df34ea validate_journey: handle 0 timestamps 2020-01-26 10:48:14 +01:00
Daniel Friesel
ce6237b9fb status API: nextStops -> intermediateStops; documentation 2020-01-26 09:59:45 +01:00
Daniel Friesel
3e9807b393 map, journey view: handle renamed stations 2020-01-25 15:46:42 +01:00
Daniel Friesel
8157f38854 JSON Status API: Add experimental and undocumented nextStops key 2020-01-23 18:18:50 +01:00
Daniel Friesel
cda8e53b34 has_wagonorder: Fix promise result mixup 2020-01-22 20:18:37 +01:00
Daniel Friesel
243302b9bb Fix IOLoop crashes caused by using log->warning instead of log->warn
The issue manifested itself by the ioloop using 100%cpu without making any
progress.
2020-01-15 22:13:20 +01:00
Daniel Friesel
263fe6da63 do not store wagonorder error results in database 2020-01-15 21:48:50 +01:00
Daniel Friesel
e8b610f3e6 fetch trip ID when checked in 2020-01-08 18:42:17 +01:00
Daniel Friesel
172c8a3d00 move old station names to external JSON as well 2020-01-06 18:24:28 +01:00
Daniel Friesel
8a73a65656 Switch back to JSON::XS for decoding 2020-01-06 18:03:50 +01:00
Daniel Friesel
f99e069928 Move ICE names to a separate JSON file 2020-01-06 17:59:40 +01:00
Markus Heinrich
d1c005606c
remove unnecessary whitespace 2020-01-06 11:22:03 +01:00
Daniel Friesel
62b68b5010 map ICE train numbers to names where possible 2020-01-04 18:48:46 +01:00
Daniel Friesel
5435f34aa1 Set travelynx UserAgent for webhook requests 2019-12-29 23:06:51 +01:00
Daniel Friesel
6fde013585 Strip newline from version string 2019-12-29 23:06:39 +01:00
Daniel Friesel
f8436b9b4b perltidy 2019-12-28 15:01:21 +01:00
Knuspel
d8b46dff89 Added links for old/new station names. 2019-12-28 14:35:07 +01:00
Daniel Friesel
fe6340abeb Handle undefined user data in conncetion suggestion with no previous journey
Closes #30
2019-12-26 21:39:24 +01:00
Daniel Friesel
f9f1eec499 Use EVA IDs instead of travelynx-internal station IDs. Not 100% tested yet. 2019-12-23 22:57:45 +01:00
Daniel Friesel
e7f278574f more travel API documentation 2019-12-20 18:33:59 +01:00
Daniel Friesel
e0a2b9aa26 save all the wagon orders we can get 2019-12-19 20:16:10 +01:00
Daniel Friesel
f895d34f31 undo: pass UID to invalidate_stats_cache 2019-12-19 18:18:26 +01:00
Daniel Friesel
934a9ac21a api/import: More helpful errors, fix "lax" support 2019-12-17 20:09:02 +01:00
Daniel Friesel
ae21896982 API: Add lax option 2019-12-17 20:01:39 +01:00
Daniel Friesel
9adec3ee8d remove debug output 2019-12-16 22:17:40 +01:00
Daniel Friesel
bb22915fc3 Fix has_wagonorder_p logic. request success ≠ result success! 2019-12-16 22:15:37 +01:00
Daniel Friesel
cabf159f46 Handle Berlin Ringbahn and other transfer-at-destination trains
Requires Travel::Status::DE::IRIS v1.38 (not released yet)
2019-12-15 13:42:11 +01:00
Daniel Friesel
7ae60f2ea4 Travel API: comment support 2019-12-14 23:46:36 +01:00
Daniel Friesel
46fc64de48 Add travel (checkin/checkout/undo) API 2019-12-14 21:53:23 +01:00
Daniel Friesel
5fe4174feb Add API entry point for journey import 2019-12-14 20:46:02 +01:00
Daniel Friesel
ba97fd2a3c do not insert duplicate wagongroups 2019-12-13 20:37:51 +01:00
Daniel Friesel
f6bff01f76 save wagongroups if available 2019-12-13 17:28:52 +01:00
Daniel Friesel
b211e0842a permanently store wagon numbers and types when available 2019-12-12 19:21:39 +01:00
Daniel Friesel
e6160d75de show wagon order for regional trains too, if available 2019-12-11 21:36:41 +01:00
Daniel Friesel
315a94affe allow a journey's cancellation status to be edited
Closes #27
2019-12-08 19:46:45 +01:00
Daniel Friesel
07ee4d216a add hash tables for is_public and journey edited bitmasks 2019-12-08 10:29:25 +01:00
Daniel Friesel
094c536eb4 Allow comments to be entered while still in transit 2019-12-06 21:40:51 +01:00
Daniel Friesel
0e2e8cd78e history map: Add checkbox to display manually added journeys 2019-11-27 18:26:15 +01:00
Daniel Friesel
4f0fee7783 show cancelled trains in connections list 2019-11-25 21:18:57 +01:00
Daniel Friesel
b3b0a055b9 improve get_user_travels performance, most notably when rendering map
only create DateTime objects when needed
2019-11-24 20:29:52 +01:00
Daniel Friesel
8aced49bc3 Log unknown route entries on checkout 2019-11-22 17:59:50 +01:00
Daniel Friesel
57f47d2a3c allow routes to be edited after recording a journey 2019-11-20 17:41:21 +01:00
Daniel Friesel
b80613b8a8 allow route input when adding journeys manually (#26) 2019-11-19 19:46:39 +01:00
Daniel Friesel
77e4998708 move station -> location map to generic helper 2019-11-16 15:24:16 +01:00
Daniel Friesel
0bfb71d78d add map view of past journeys. unfinished and unreferenced. 2019-11-16 00:01:50 +01:00
Daniel Friesel
ead18f1212 Fix implicit checkout when checking in from a related station
Previously, realtime data was missing in this case
2019-11-12 19:13:38 +01:00
Daniel Friesel
663b4dc6d8 live update of next station via javascript 2019-10-29 21:18:46 +01:00
Daniel Friesel
f13b4755c7 route diff: remove debug output 2019-10-25 17:05:39 +02:00
Daniel Friesel
780cdafcf5 show related stations in departure list 2019-10-19 10:15:18 +02:00
Daniel Friesel
aaaeec5c30 Travelynx.pm: Document the real cause of sched_arr-isa-DateTime bug 2019-10-06 16:32:58 +02:00
Daniel Friesel
a2d08bca26 derp 2019-10-06 11:02:29 +02:00
Daniel Friesel
e97c943154 Work around crash when a train has the same stop more than once 2019-10-06 10:55:09 +02:00
Daniel Friesel
6d45533c14 mark cancelled stops in checkin view 2019-10-04 23:27:45 +02:00
Daniel Friesel
aac8e2a0e1 Save scheduled arrival time for cancelled trains 2019-09-18 18:08:06 +02:00
Daniel Friesel
35cc18dfae add passenger rights heuristic for missed connections 2019-09-13 23:39:28 +02:00
Daniel Friesel
c891da97fb Explicitly set passenger rights form filename 2019-09-12 18:23:23 +02:00
Daniel Friesel
0822cfc993 add auto-generated passenger rights forms 2019-09-12 18:07:21 +02:00
Daniel Friesel
a40aa1936b Allow comments to be edited 2019-08-23 12:02:22 +02:00
Daniel Friesel
f6d56d3134 Add proper journey comment support 2019-08-23 10:34:02 +02:00
Daniel Friesel
e259a5e5dd Fix beeline distance calculation when start/stop has no geo-coordinates 2019-08-13 21:30:59 +02:00
Daniel Friesel
c9592e3f76 show boarding countdown in departure overview 2019-08-06 20:21:57 +02:00
Daniel Friesel
a48352ada4 also show train direction on departure 2019-08-03 12:35:47 +02:00
Daniel Friesel
ff75b16bfc move exit direction calculation to a helper function 2019-08-03 11:14:29 +02:00
Daniel Friesel
90dd96e08f Handle race condition when several workers are updating the same history entry 2019-07-20 20:58:28 +02:00
Daniel Friesel
b12b5a821b Show departures of all linked stations
Not well-tested yet, deployment will have to wait a bit. Issue #15
2019-07-14 21:29:52 +02:00
Daniel Friesel
b08b0fb921 handle ambiguous train numbers when requesting train details 2019-07-14 17:17:44 +02:00
Daniel Friesel
04cc32b7a0 Fix wrong directions on long-distance arrivals 2019-06-25 20:19:21 +02:00
Daniel Friesel
36121ccffc show wagon order before departure 2019-06-24 18:02:45 +02:00
Daniel Friesel
590b27f2ca also show exit direction for regional trains at select stations 2019-06-23 18:46:25 +02:00
Daniel Friesel
16c441e433 also show exit direction based on wagon order 2019-06-23 17:08:47 +02:00
Daniel Friesel
b3b0823829 show exit direction on kopfgleis platforms 2019-06-22 17:02:04 +02:00
Daniel Friesel
75aa4a961a disable wagonorder for now (not used yet anyway) 2019-06-19 21:08:35 +02:00