Daniel Friesel
a4ff5e8ad8
Switch to AGPL3+
2021-01-29 18:32:13 +01:00
Daniel Friesel
db39b2a177
Handle invalid HAFAS XML containing "Wagen \d+ & \d+"
2021-01-05 22:27:46 +01:00
Daniel Friesel
5e29b99d61
remove superfluous ->app call
2020-12-17 20:58:47 +01:00
Daniel Friesel
8b86d0680a
Helper/IRIS: fex error message encoding (use utf8)
2020-12-09 21:12:10 +01:00
Daniel Friesel
2ee5332ee5
warn if a connecting train may not be reached
2020-12-07 19:44:18 +01:00
Daniel Friesel
2613fc0e58
use stats-enabled list view for year list as well
2020-12-03 22:15:09 +01:00
Daniel Friesel
a5ab4fa6a8
regularly generate statistics in the background
2020-12-03 21:42:17 +01:00
Daniel Friesel
77ecd6d034
move statistics cache to a separate model class
2020-11-28 21:03:51 +01:00
Daniel Friesel
b70ecc7c7c
Add a bunch of licensing data
2020-11-27 22:12:56 +01:00
Daniel Friesel
0addce7bff
month overview: distinguish between no stats and no journeys
2020-11-21 15:39:21 +01:00
Daniel Friesel
ccfdd8007e
testing a more organized history navigation
2020-11-21 15:34:06 +01:00
Daniel Friesel
bed4ebe4cc
another log level adjustment
2020-11-09 22:58:56 +01:00
Daniel Friesel
c8832e410e
add_route_timestamps: adjust log severity
...
we can't do anything about "trainlink not found", so it really shouldn't be
a warning.
2020-11-08 18:44:32 +01:00
Daniel Friesel
5e96745121
HAFAS: Distinguish between disguised HTTP 404 and invalid XML
2020-11-06 11:23:22 +01:00
Daniel Friesel
c70280a935
Merge HAFAS XML fix from DBF
2020-10-25 16:35:43 +01:00
Daniel Friesel
dc7bc5a5f4
work: Fix travelynx->Traewelling sync when several users are checked in
...
I made a derp
2020-10-19 19:33:40 +02:00
Daniel Friesel
8123797cf1
Traewelling: use the recently added login token expiry field
2020-10-17 11:03:47 +02:00
Daniel Friesel
e61550f751
Move remaining journeys queries to journeys model class
2020-10-11 21:08:22 +02:00
Daniel Friesel
8abb8206ce
maintenance: delete webhooks and traewelling entries
2020-10-11 20:10:14 +02:00
Daniel Friesel
b1348c7d4a
move in_transit queries to an InTransit model class
2020-10-11 19:38:01 +02:00
Daniel Friesel
b6330217f0
calculate tripid from trainsearch.exe.
...
Removes the need for an additional transport.rest request.
2020-10-11 12:04:33 +02:00
Daniel Friesel
fffe8dcdfa
Switch to transport.rest v5 for polyline requests
2020-10-11 11:34:39 +02:00
Daniel Friesel
4575beb6ff
HAFAS: Turn backend warnings into info messages
...
We can't do anything about them, after all
2020-10-08 20:05:31 +02:00
Daniel Friesel
3ca18af9b6
make unknown stations warning more helpful
2020-10-08 20:04:25 +02:00
Daniel Friesel
e8ff730320
Stats: Fix handling of negative cumulative arrival/departure delays
2020-10-06 19:28:00 +02:00
Daniel Friesel
9acc9822e4
also allow regionalExpress, just to be safe
2020-10-04 13:09:47 +02:00
Daniel Friesel
9ad3b3c9e8
Traewelling can't seem to decide on date formats
2020-10-04 13:05:06 +02:00
Daniel Friesel
ce88fe440c
HAFAS "national" trips are also trains
2020-10-04 13:04:52 +02:00
Daniel Friesel
c56d126d89
Traewelling: Add missing "Accept: application/json" header to API requests
2020-10-04 12:59:08 +02:00
Daniel Friesel
e13b5afe4f
Traewelling checkin: Handle invalid / revoked bearer tokens
2020-10-04 12:47:09 +02:00
Daniel Friesel
562dd7ccae
add toot and tweet settings to traewelling checkin
2020-10-04 12:27:20 +02:00
Daniel Friesel
80b02a47b4
Traewelling: Warn when bearer token is about to expire
2020-10-04 10:38:09 +02:00
Daniel Friesel
5e2813e36e
Traewelling: note that traewelling.de doesn't yet return statusId on checkin
2020-10-04 10:35:04 +02:00
Daniel Friesel
2cc31422b7
sync travelynx -> Träwelling: add comment
2020-10-03 14:33:56 +02:00
Daniel Friesel
b0de6628b3
ooopsie
2020-10-01 19:55:06 +02:00
Daniel Friesel
8d53f7f5c8
log error when trip_id is missing
2020-10-01 19:52:11 +02:00
Daniel Friesel
64c9b5b160
traewelling checkin: the time limitation isn't needed
2020-10-01 19:48:18 +02:00
Daniel Friesel
07e0f89706
allow checking into traewelling
2020-10-01 19:36:35 +02:00
Daniel Friesel
89e709d8d5
Allow linking a Träwelling account, auto-sync Träwelling→travelynx
...
travelynx→Träwelling is still work-in-progress
Squashed commit of the following:
commit 97faa6e2e6c8d20fba30f2d0f6e78187ceeb72e6
Author: Daniel Friesel <derf@finalrewind.org>
Date: Wed Sep 30 18:50:05 2020 +0200
improve traewelling log and tx handling
commit 487d7dd728b9d45b731bdc7098cf3358ea2e206e
Author: Daniel Friesel <derf@finalrewind.org>
Date: Wed Sep 30 18:02:41 2020 +0200
add missing traewelling template
commit 0148da2f48d9a52dcddc0ab81f83d8f8ac3062ab
Author: Daniel Friesel <derf@finalrewind.org>
Date: Wed Sep 30 18:02:35 2020 +0200
improve traewelling pull sync
commit 4861a9750f9f2d7621043361d0af6b0a8869a0df
Author: Daniel Friesel <derf@finalrewind.org>
Date: Tue Sep 29 22:14:24 2020 +0200
wip checkin from traewelling
commit f6aeb6f06998a2a7a80f63a7b1b688b1a26b66bd
Author: Daniel Friesel <derf@finalrewind.org>
Date: Tue Sep 29 18:37:53 2020 +0200
refactor traewelling integration. login and logout are less of a hack now.
checkin and checkout are not supported at the moment.
2020-09-30 19:12:29 +02:00
Daniel Friesel
952740969c
add opengraph metadata output
2020-09-21 20:31:08 +02:00
Daniel Friesel
362db912fa
add twitter card to public journey view
2020-09-21 20:15:01 +02:00
Daniel Friesel
870e4333a8
improve promise->reject error messages
2020-09-21 19:47:54 +02:00
Daniel Friesel
e27e37190e
add explicit empty return statements to promise handlers
2020-09-20 10:01:03 +02:00
Daniel Friesel
2788f97f32
get_stationinfo_p: cache negative replies
2020-09-20 09:55:28 +02:00
Daniel Friesel
874de11298
handle rejected promises; do not accidentally duplicate rejections
2020-09-10 21:20:26 +02:00
Daniel Friesel
eb93ee40c9
passengerrights: fix a typo
2020-09-08 21:15:46 +02:00
Daniel Friesel
4171fe22ca
add DBDB helper for wagonorder and stationinfo
2020-09-06 12:55:25 +02:00
Daniel Friesel
a3149adddd
Fix checkin via API. Broken by 717cc18a40
...
Closes #44
2020-09-05 21:51:52 +02:00
Daniel Friesel
7eb5f967f2
profile: limit history to four weeks by default
2020-09-04 18:38:35 +02:00
Daniel Friesel
482fa975b5
add public profile page and public journey details
2020-09-03 22:27:50 +02:00
Daniel Friesel
47b957361e
Move most journey code to newly introduced Journey model
2020-08-16 21:20:23 +02:00
Daniel Friesel
d9624ee308
Remove now-useless include
2020-08-15 08:25:24 +02:00
Daniel Friesel
717cc18a40
Move get_departures to a separate IRIS helper
2020-08-06 16:04:12 +02:00
Daniel Friesel
adaf65dc63
HAFAS: Error handling, perltidy
2020-07-28 14:19:55 +02:00
Daniel Friesel
56c275875c
Move HAFAS helpers to a separate Helper module
2020-07-28 13:01:44 +02:00
Daniel Friesel
f08bdaca5c
Move user model to a separate module
2020-07-27 18:53:22 +02:00
Daniel Friesel
f5fd6d42e1
Add CSV Export
2020-04-19 18:26:20 +02:00
Daniel Friesel
346f1474bb
commute stats: attempt to weed out non-work stations for auto-fill
2020-04-19 17:49:14 +02:00
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
94ea5a089f
Commute stats: count days, not journeys
2020-04-19 17:03: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
a3ea4fde95
fix a typo
2020-04-16 16:52:19 +02:00
Daniel Friesel
da05a0e981
maintenance: backpropagate polylines to route entries using pre-1.9.4 format
2020-04-16 16:29:34 +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
56f355741c
Well, that was stupid
2020-03-14 14:57:30 +01:00
Daniel Friesel
e7a6cfa931
Correctly encode non-ASCII e-mail content. Fixes spamfilter issues.
...
New dependency: MIME::Entity
2020-03-14 14:56:02 +01:00
Daniel Friesel
871a44f15e
Do not hardcode From mail address
2020-03-13 18:28:13 +01:00
Daniel Friesel
e6b74ef087
show QoS pictograms in connection list
2020-03-03 18:29:37 +01:00
Daniel Friesel
d7f251e51f
public user status: show polyline if available
2020-02-26 18:43:34 +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
0011e4a18d
user_status: Improve TS lookup performance
2020-02-20 20:58:58 +01:00
Daniel Friesel
57f686b688
allow showing past journeys on shared status page
2020-02-19 20:58:38 +01:00
Daniel Friesel
2652ea6bab
auto-checkout for cancelled departure: guard against destination changes
2020-02-18 17:38:53 +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
6cbbc2b16f
avoid stale data when marking cancelled arrivals
2020-02-13 18:35:42 +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
7564ec34db
munin: Add polyline compression ratio
2020-02-10 20:06:55 +01:00
Daniel Friesel
3ddd1a1cf4
Improve map performance by passing actual polylines for train routes
2020-02-07 23:19:01 +01:00
Daniel Friesel
c2e0f377be
maintenance: consider station renames whan backpropagating polylines
2020-02-06 17:54:23 +01:00
Daniel Friesel
0457a53f65
maintenance: only fetch polylines from journeys which were not edited
2020-02-04 21:23:22 +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
7e92e6b5d4
retroactively add polylines to non-polyline journeys
2020-01-30 18:06:04 +01:00
Daniel Friesel
dadb0f6637
map: improve polyline duplicate detection
2020-01-29 19:54:32 +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