Commit graph

604 commits

Author SHA1 Message Date
Daniel Friesel
ccc93413a2
review: link to list of all single-trip checkins 2022-12-29 14:14:12 +01:00
Daniel Friesel
09463d7d11
influxdb: report total checkins rather than windows 2022-12-28 17:41:17 +01:00
Daniel Friesel
c5ac07c375
add influxdb command 2022-12-28 16:04:45 +01:00
Daniel Friesel
18bb069da3
review: fix percentage locale 2022-12-27 22:22:34 +01:00
Daniel Friesel
3fa9df942f
derp #2 2022-12-27 22:17:08 +01:00
Daniel Friesel
2eed83e02a
derp 2022-12-27 22:15:24 +01:00
Daniel Friesel
34a19ee1bf
top trips: handle return trips 2022-12-27 22:12:15 +01:00
Daniel Friesel
3156d5f372
review: add top and bottom trips 2022-12-27 22:04:09 +01:00
Daniel Friesel
9dfe1c60ab
review: hide blocks without data 2022-12-27 17:56:44 +01:00
Daniel Friesel
ed63cae012
year in review: further delay stats 2022-12-27 17:29:34 +01:00
Daniel Friesel
e586fd4020
compute_review: handle duplicate iris messages; german locale for numbers 2022-12-27 11:19:25 +01:00
Daniel Friesel
3abe6aed5c
it's a secret to everybody. 2022-12-27 11:07:16 +01:00
Daniel Friesel
73fa1a960c
work: Fix log invocation 2022-12-27 09:46:15 +01:00
Daniel Friesel
68bc276bff
connecting trains: fix warning when encountering unknown platforms 2022-12-26 20:47:43 +01:00
Daniel Friesel
d256a1956a
history: return 404 if no journeys have been logged for requested period 2022-12-26 16:50:39 +01:00
Daniel Friesel
f12bec530a
yearly/monthly history: return 404 for invalid dates 2022-12-26 15:35:33 +01:00
Daniel Friesel
e15778be0d
always store traewelling errors in debug mode
for the most part, they're not actionable. also, they're already available in
user logs.
2022-12-23 21:30:28 +01:00
Daniel Friesel
44ced8056c
add_route_timestamps: change log severity to debug
we cannot do much about backend errors
2022-12-23 21:22:03 +01:00
Daniel Friesel
2534cae31f
work: not finding a departing train is not critical 2022-12-23 21:20:32 +01:00
Daniel Friesel
4b37560640
database migration: track previosu travelynx version; offer rollback hints 2022-12-12 22:35:08 +01:00
Daniel Friesel
2f7669a520
database IRIS sync: update ds100, name, lat, lon from IRIS DB 2022-12-12 20:21:44 +01:00
Daniel Friesel
54c46ac9f0
database: has-current-schema: check IRIS version 2022-12-12 20:13:07 +01:00
Daniel Friesel
aa4e408df8
change 'ignoring polyline' log severity to debug 2022-12-12 20:00:48 +01:00
Daniel Friesel
e91495775c
Journeys: Handle "Betriebsstelle nicht bekannt" 2022-12-12 19:57:14 +01:00
Daniel Friesel
fc9562f790
Improve "Betriebsstelle nicht bekannt" handling 2022-12-12 18:20:40 +01:00
Daniel Friesel
5de6dfb4e1
database: refactor schema/iris version check 2022-12-11 20:10:58 +01:00
Daniel Friesel
115e07f35c move grep_unknown_stations to Stations model 2022-12-08 18:22:09 +01:00
Daniel Friesel
afedcef266
get name/ds100 from db and lat/lon from dict
result: significant performance improvement for stats generation
2022-12-07 22:46:04 +01:00
Daniel Friesel
2f9ba6e017
switch to internal station database; add out-of-service stations for old journeys 2022-12-07 19:42:48 +01:00
Daniel Friesel
d791825123
maintenance: remove polyline code. polylines were added more than two years ago 2022-12-04 22:07:20 +01:00
Daniel Friesel
e2b756f06e
integritycheck: process journeys row by row rather than at once 2022-12-04 21:04:43 +01:00
Daniel Friesel
37cb85e60d
integritycheck: also check station names in routes 2022-12-04 20:57:27 +01:00
Daniel Friesel
8f1bf57a65
rename missingstations command to integritycheck 2022-12-04 18:52:01 +01:00
Daniel Friesel
22069102a7
add missingstations maintenance command 2022-11-25 18:26:32 +01:00
Daniel Friesel
3851f05518
get_travel_distance: warn about removed stations (TODO: re-add them) 2022-11-24 21:26:45 +01:00
Daniel Friesel
90d2e0357c
show expected load of suggested connections, if available 2022-11-12 18:37:00 +01:00
Daniel Friesel
6594d74edd
show expected utilization alongsie train route 2022-11-12 11:10:58 +01:00
Daniel Friesel
2f7bdf99e8 Traewelling: Use API v1 for checkin as well 2022-11-10 17:50:31 +01:00
Daniel Friesel
fa94447f10 only show important HIM messages 2022-11-10 17:46:43 +01:00
Daniel Friesel
df74dd5cf9
route: handle stops without real-time data 2022-11-09 19:28:48 +01:00
Daniel Friesel
fd805597f5
HAFAS: filter out border stations 2022-11-09 18:17:05 +01:00
Daniel Friesel
d75ae5eb45
travelynx no longer requires XML::LibXML 2022-11-09 18:15:18 +01:00
Daniel Friesel
c26c8820f2
Switch to internal HAFAS client for connection details 2022-11-09 18:14:07 +01:00
Daniel Friesel
528f59dbd2
obtain polylines via mgate (T-S-DE-HAFAS) 2022-11-05 22:01:51 +01:00
Daniel Friesel
087d3871e1
Use Travel::Status::DE::HAFAS instead of traininfo.exe for journey details 2022-11-05 19:19:52 +01:00
Daniel Friesel
bde6346401
Traewelling: Use API v1 for login/logout. v1 checkin does not work yet. 2022-10-31 20:58:27 +01:00
Daniel Friesel
6f107754fb
get_connecting_trains: departure delay is relevant for connecting trains 2022-09-28 19:40:31 +02:00
Daniel Friesel
9f06b52a00
get_connecting_trains_p: leave loops when done 2022-09-28 19:37:20 +02:00
Daniel Friesel
f3ad5a5ef3
connecting trains: HAFAS: Handle delay and pass it to frontend 2022-09-25 16:54:06 +02:00
Daniel Friesel
e54130ad6e
optionally show local transit connections as well 2022-09-24 18:53:04 +02:00
Daniel Friesel
e83cfc5303
connections: show expected arrival at destination 2022-09-24 16:11:51 +02:00
Daniel Friesel
208b818d7c
HAFAS->get_json_p: accept cache and encoding parameters 2022-09-24 15:01:24 +02:00
Daniel Friesel
906a8a4f55
departure board: add footer 2022-09-23 19:25:17 +02:00
Daniel Friesel
8198c9fe23
Static: remove unused $travelynx_version 2022-09-23 19:22:22 +02:00
Daniel Friesel
4367085887
add legend (not referenced yet) 2022-09-23 17:35:02 +02:00
Daniel Friesel
6bae226d5c
always show 'run' icon when an interchange is short 2022-09-23 17:32:27 +02:00
Daniel Friesel
8c511f955c
Controller/Traveling: perltidy 2022-09-07 18:08:27 +02:00
Daniel Friesel
ffeeb11e5a
get_connecting_trains_p: remove trains with identical routes to current one 2022-09-05 21:06:05 +02:00
Daniel Friesel
0a7188d2e2
get_connecting_trains_p: use has_str_in_list helper more often 2022-09-05 21:00:20 +02:00
Daniel Friesel
3b9db4bfd4
get_connecting_trains_p: handle uninitialized arr_countdown 2022-09-03 17:58:12 +02:00
Daniel Friesel
dd151dc686
get_connecting_trains_p: we're doing boolean arithmetic here
(fixes 'useless use of numeric lt in void context' warning)
2022-09-03 16:58:54 +02:00
Daniel Friesel
2f2624a80a
get_connecting_trains: set lookahead to (expected arrival // now) + 40 minutes 2022-09-03 16:46:48 +02:00
Daniel Friesel
6aca1692e4 get_connecting_trains_p: increase lookahead to 60 2022-08-26 18:56:50 +02:00
Daniel Friesel
ff317c5c2a show connections up to 40 minutes before arrival (rather than just 20) 2022-08-26 18:38:54 +02:00
Daniel Friesel
e0d2c42a39 sb_templates: name/key can be changed as well 2022-08-19 18:13:13 +02:00
marudor
dbe379a34d use bahn.expert as new domain for marudor.de 2022-08-19 18:13:13 +02:00
Daniel Friesel
0e14df21d2
traewelling: more detailed error messages 2022-08-17 21:51:24 +02:00
Daniel Friesel
1a2ff8262d
... 'status' is a reserved renderer key. oops. 2022-08-04 14:07:25 +02:00
Daniel Friesel
d0c061569d
Traveling: Rename log_action to travel_action 2022-08-02 22:22:10 +02:00
Daniel Friesel
c348b2dff8
log requested station when throwing an ambiguous station name error 2022-08-01 20:03:34 +02:00
Daniel Friesel
d3c8daf84c
fetch connecting trains asynchronously 2022-08-01 10:07:24 +02:00
Daniel Friesel
c06d653195
Traveling: sort helpers <-> controllers 2022-07-30 10:47:18 +02:00
Daniel Friesel
de73024f1b
Passengerrights: section headers; perltidy 2022-07-30 10:45:18 +02:00
Daniel Friesel
aa19f4b00c
Api: section headers for helpers / controllers; perltidy 2022-07-30 10:42:21 +02:00
Daniel Friesel
0e01485952
Account: Move helpers to a separate section 2022-07-30 10:41:31 +02:00
Daniel Friesel
83954508f0
move get_connecting_trains helper to Traveling controller 2022-07-30 10:27:57 +02:00
Daniel Friesel
1712694011
mov get_connection_targets helper to Journeys Model 2022-07-29 10:10:34 +02:00
Daniel Friesel
2da48e05be
move get_connecting_trains call from _checkeed_in to controller 2022-07-27 13:54:20 +02:00
Daniel Friesel
52ff756577
only show cancellation alternatives at original station 2022-07-26 15:36:45 +02:00
Daniel Friesel
1594ba9327
_checked_out: move get_connecting_trains call to controller 2022-07-26 15:36:22 +02:00
Daniel Friesel
960de27f0e
move get_connecting_trains out of _cancelled_departure template 2022-07-26 14:51:57 +02:00
Daniel Friesel
35338125bc
departure board: move get_connecting_trains call to controller
this is in preparation for turning it into a promise
2022-07-26 13:19:29 +02:00
Daniel Friesel
e0b824693f
Users: update DBF from 'show_realtime=1' to 'rt=1' 2022-07-26 12:48:08 +02:00
Daniel Friesel
bb6acc0c6b
Use async IRIS API for /s/ 2022-07-26 10:41:44 +02:00
Daniel Friesel
116becccb0
. 2022-07-16 20:34:11 +02:00
Daniel Friesel
ff290c78e0
services: add marudor.de/regional 2022-07-16 13:55:36 +02:00
Daniel Friesel
8c15966bd1
dbf: link to currently checked in train 2022-07-15 22:26:50 +02:00
Daniel Friesel
c756f045b2
Users: use_external_services: correctly handle := 0 2022-07-15 21:01:34 +02:00
Daniel Friesel
e2214dfdcd
repair /offline.html 2022-07-15 19:27:47 +02:00
Daniel Friesel
5eab0c14f4
optionally link to external departure boards where sensible (WiP) 2022-07-11 22:09:26 +02:00
Daniel Friesel
4deb0bde0b
. 2022-07-11 22:08:02 +02:00
Daniel Friesel
af82619915
database: fix missing word in workflow example 2022-07-11 20:52:12 +02:00
Daniel Friesel
b3d06a8eb4
HAFAS: Borders may be annotated as (Gr) or ...(...)Gr 2022-07-10 20:07:02 +02:00
Daniel Friesel
86e0108649
maintenance: traewelling and webhooks TODO has been resolved a while ago 2022-07-10 10:42:15 +02:00
Daniel Friesel
105fc8a4a1
maintenance: show details when about to delete a large amount of UIDs 2022-07-10 10:42:05 +02:00
Daniel Friesel
a88dea059b
Traewelling Pull: Only fetch most recent status
This feature was recently added to Traewelling and should improve
efficiency on all sides.
2022-07-09 23:10:56 +02:00
Daniel Friesel
40ff05aefe
traewelling pull: skip API request for checked-in users 2022-07-09 19:39:01 +02:00
Daniel Friesel
7587cf4277
munin: add push sync stats 2022-07-09 16:16:08 +02:00
Daniel Friesel
e1a0a6e132
munin: add traewelling pull sync stats 2022-07-09 16:04:29 +02:00
Daniel Friesel
85f4e5b763
Traewelling: Custom log message für 409 Conflict; include raw error otherwise 2022-07-03 12:14:38 +02:00
Daniel Friesel
3082316697
Traewelling: Fix utf8 in log messages 2022-07-03 12:13:58 +02:00
Daniel Friesel
18c575f6fe
Traewelling: Use newly added EVA IDs for station mapping 2022-05-28 11:35:44 +02:00
Daniel Friesel
7f8e7a1a5f
limit number of concurrent traewelling requests to five per second 2022-05-27 12:04:51 +02:00
Daniel Friesel
5ff9e5c7a1
history map: allow filtering by train type 2022-04-02 18:14:21 +02:00
Daniel Friesel
5dfbdd8644
history map: add filter by date 2022-04-02 15:24:39 +02:00
Daniel Friesel
5cd25d442f
hafas: more generic fix for invalid XML 2022-03-30 18:29:00 +02:00
Daniel Friesel
13b4572a2f
limit password length to 10000 characters
that should be sufficient…
2022-03-07 18:12:43 +01:00
Daniel Friesel
e2e33de7e1
Traewelling: checkin: HTTP 401 is mostly harmless, too
401 typically indicates an expired login token
2022-03-06 23:13:51 +01:00
Daniel Friesel
01aec7e977
fix ajax refresh of public status card (trim .html suffix) 2022-02-20 21:45:51 +01:00
Daniel Friesel
209e291821
Move webhook database queries to Users model 2022-02-20 17:35:30 +01:00
Daniel Friesel
0d108e4334
work: move DB manipulation to InTransit helper 2022-02-20 13:30:51 +01:00
Daniel Friesel
15b510de32
worker: run maintenance every 10 hours 2022-02-19 16:32:43 +01:00
Daniel Friesel
01053f9d41
maintenance: Log deletion notification to stdout 2022-02-18 17:21:49 +01:00
Daniel Friesel
582bfbe661
Traewelling: more consistent error messages 2022-02-17 21:40:47 +01:00
Daniel Friesel
6e95180a3c
handle missing 'base_url' in travelynx.conf 2022-02-16 21:29:28 +01:00
Daniel Friesel
167b01fa42
link traewelling profile from travelynx profile; show traewelling status 2022-02-16 20:56:28 +01:00
Daniel Friesel
ef3252863e
Traewelling::get: Use named args 2022-02-16 20:39:49 +01:00
Daniel Friesel
8f906da9c2
traewelling: log an error if pull sync fails 2022-02-16 20:39:00 +01:00
Daniel Friesel
faf8952b87
Send inactivity notification prior to account deletion 2022-02-14 21:58:30 +01:00
Daniel Friesel
6fc21cac41
Use correct base URL when running a command job (work/maintenance) 2022-02-14 21:41:32 +01:00
Daniel Friesel
170c7e420e Controller/Account: refactor mail notifications into separate functions 2022-01-19 19:25:03 +01:00
Daniel Friesel
1233796866
Traewelling: Use API v1 for pull sync
API v0 has occasional performance issues and is not a preferable
maintenance target
2022-01-08 14:36:31 +01:00
Daniel Friesel
71fa446800
traewelling sync: push first, then pull 2022-01-08 10:46:31 +01:00
Daniel Friesel
879b3b3815 fix caching fuckup introduced in 2e5a1b0a79 2021-12-12 17:24:24 +01:00
Daniel Friesel
e8054faf76 checkout: throw an error when called with empty $station 2021-12-12 17:13:51 +01:00
Daniel Friesel
2e5a1b0a79 DBDB: only use apps-bahn wagon order API for now 2021-12-12 16:38:26 +01:00
Daniel Friesel
ac3c70597d
Account: do not disclose denylist filename on open error 2021-10-30 10:03:40 +02:00
Daniel Friesel
ed0054fa50
Allow usage of custom hafas-rest-api instances 2021-10-30 10:02:58 +02:00
Daniel Friesel
3dc5575d5a
Switch from Geo::Distance (deprecated) to GIS::Distance 2021-10-23 22:20:41 +02:00
Daniel Friesel
a34a67b2f9
Add account add / delete CLI for sites with web registration disabled 2021-09-13 20:55:11 +02:00
Daniel Friesel
79b55c430d
allow registration to be disabled via config 2021-09-12 08:15:59 +02:00
Daniel Friesel
9d4f3f8ce1
Ensure that database timezone matches IRIS time zone
All travelynx and IRIS timestamps are Europe/Berlin. And the DateTime objects
know that they are Europe/Berlin. However, when inserting into a timestamp with
time zone column, Mojo::Pg or one of the backend DBI/DBD libraries does not
respect the time zone. So, UTC+1 or UTC+2 timestamps are treated as UTC+0,
resulting in major mayhem.
2021-09-03 20:24:54 +02:00
Daniel Friesel
39ab6e57d3 allow registration to be denied for certain IPs, e.g. known spammers
(yes, there are actually spambots flooding people with unsolicited
registration e-mails)
2021-08-20 22:52:02 +02:00
Daniel Friesel
37a0b8f2ab Handle another case of funky HAFAS html ("foo <> bar") 2021-07-12 19:16:14 +02:00
Daniel Friesel
7b01cae7d5 Pass scheduled arrival and departure times to Traewelling API
This ensures unambiguous checkins for ring lines. See
eaf975a333
2021-07-01 19:44:09 +02:00
Daniel Friesel
255d0610f1 Journeys->add: Support complete routes, not just intermediate stops 2021-06-21 17:54:09 +02:00
Daniel Friesel
95674ee2ea Add explanation to name change page 2021-06-14 19:30:58 +02:00
Daniel Friesel
1803a1723c move user name validation to Users model 2021-06-13 08:48:08 +02:00
Daniel Friesel
581aae081d Model/Users: Remove superfluous "check_if_" prefix from check functions 2021-06-13 06:20:21 +02:00
Daniel Friesel
6cee1e20ef allow users to change their name 2021-06-12 19:00:42 +02:00
Daniel Friesel
08abde269b user_status: Use first available dep_info 2021-06-12 17:33:16 +02:00
Daniel Friesel
9221ddce85 HAFAS: Work around yet another case of invalid XML 2021-06-05 14:17:49 +02:00
Daniel Friesel
16c1d12373 remove arbitrary HTML tags from HAFAS HIMMessage attribute content 2021-04-24 09:11:18 +02:00
Daniel Friesel
810945f8bc munin: add pending_user_count 2021-04-20 23:10:22 +02:00
Daniel Friesel
aad2a53459 attempt to prevent registration spam 2021-04-20 21:59:17 +02:00
Daniel Friesel
aabf3104b1 munin: Do not crash on CET -> CEST DST transition 2021-04-05 09:46:28 +02:00
Daniel Friesel
1f3b3c742c munin: fix date range calculation
TODO: handle CET -> CEST transition (there's a day each year where 2am does not
exist and DateTime does not like it)
2021-04-05 09:46:28 +02:00
Daniel Friesel
11727e0f99 *sigh* oh hafas, you so hafas 2021-03-29 20:58:35 +02:00
Daniel Friesel
0358cd51d5 also show wagon order when sections are unknown 2021-03-08 21:02:19 +01:00
Daniel Friesel
574e83d567 Move incomplete checkin removal from "maintenance" to "work" task 2021-03-07 19:06:21 +01:00