Commit graph

160 commits

Author SHA1 Message Date
Daniel Friesel
54c46ac9f0
database: has-current-schema: check IRIS version 2022-12-12 20:13:07 +01:00
Daniel Friesel
5de6dfb4e1
database: refactor schema/iris version check 2022-12-11 20:10:58 +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
e54130ad6e
optionally show local transit connections as well 2022-09-24 18:53:04 +02:00
marudor
dbe379a34d use bahn.expert as new domain for marudor.de 2022-08-19 18:13:13 +02:00
Daniel Friesel
5eab0c14f4
optionally link to external departure boards where sensible (WiP) 2022-07-11 22:09:26 +02:00
Daniel Friesel
af82619915
database: fix missing word in workflow example 2022-07-11 20:52:12 +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
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
7f8e7a1a5f
limit number of concurrent traewelling requests to five per second 2022-05-27 12:04:51 +02: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
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
71fa446800
traewelling sync: push first, then pull 2022-01-08 10:46:31 +01: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
810945f8bc munin: add pending_user_count 2021-04-20 23:10:22 +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
574e83d567 Move incomplete checkin removal from "maintenance" to "work" task 2021-03-07 19:06:21 +01:00
Daniel Friesel
a4ff5e8ad8 Switch to AGPL3+ 2021-01-29 18:32:13 +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
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
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
e8ff730320 Stats: Fix handling of negative cumulative arrival/departure delays 2020-10-06 19:28:00 +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
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
717cc18a40 Move get_departures to a separate IRIS helper 2020-08-06 16:04:12 +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
4cc510d710 use polyline when computing monthly/yearly distance travelled
Closes #40
2020-04-14 18:22:49 +02: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
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
7564ec34db munin: Add polyline compression ratio 2020-02-10 20:06:55 +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
7e92e6b5d4 retroactively add polylines to non-polyline journeys 2020-01-30 18:06:04 +01:00
Daniel Friesel
297718603c munin: return number of stored polylines 2020-01-27 20:33:35 +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
75363c35cc work: Fix race condition
When a user changes their destination station or checks into a new train
while work is updating data for their in_transit entry, values for no longer
valid database entrie would be entered.
2020-01-23 17:14:01 +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
c6634b4097 maintenance: remove checkins which were entered more than 48 hours ago 2019-12-20 18:56:57 +01:00
Daniel Friesel
b0ddada5d1 munin: Add 'currently checked in' counter 2019-12-19 19:22:56 +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
6d45533c14 mark cancelled stops in checkin view 2019-10-04 23:27:45 +02:00
Daniel Friesel
8c160f6854 Fix wagon order and direction display
This was broken by a database migration introduced in
commit f6d56d3134
2019-08-31 09:18:49 +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
0bbdd768f4 prepare for wagon order support 2019-06-17 20:59:57 +02:00
Daniel Friesel
b54c977e08 increase checkout delay to work around IRIS information lag 2019-06-10 18:09:54 +02:00
Daniel Friesel
7be3a4219e checked in: Show QoS messages before departure and HIM messages at all times 2019-06-04 21:12:36 +02:00
Daniel Friesel
f355a8d95e disappearing trains are no longer critical with the latest change 2019-06-01 12:38:26 +02:00
Daniel Friesel
b1591eed54 show current/next stop while checked in 2019-05-31 20:18:22 +02:00
Daniel Friesel
7fe95532c1 Use JSON for messages and route storage, prepare for extended route data 2019-05-26 17:28:21 +02:00
Daniel Friesel
1dc04eb45a show journey suggestions on departure board as well 2019-05-20 19:15:21 +02:00
Daniel Friesel
7486920a6a Proactively recompute yearly stats to avoid long user wait times 2019-05-18 17:11:28 +02:00
Daniel Friesel
e68043b8fb Show arrival/departure platform in journey card 2019-05-18 17:10:53 +02:00
Daniel Friesel
b36ba45aef WiP webhook support 2019-05-05 18:09:11 +02:00
Daniel Friesel
b4bb68b7c3 Add worker command for Docker setups (#9) 2019-05-03 18:26:05 +02:00
Daniel Friesel
fb2a06c59c work: Not finding a train at the destination is usually not an error 2019-05-02 10:05:49 +02:00
Daniel Friesel
048767149e use a separate table for registration tokens 2019-04-30 18:05:07 +02:00
Daniel Friesel
a57a24c2d6 add "active user count" munin command 2019-04-30 12:56:11 +02:00
Daniel Friesel
99aa3a4a0d Implement deletion of inactive accounts 2019-04-30 12:48:23 +02:00
Daniel Friesel
867a5d4afb allow users to change their mail address
Closes #6
2019-04-30 12:08:51 +02:00
Daniel Friesel
0226eba60a maintenance: Also delete pending_passwords entries 2019-04-29 20:32:04 +02:00
Daniel Friesel
25d0530e86 Add password reset functionality
Closes #5
2019-04-29 20:12:59 +02:00
Daniel Friesel
6ff397c9b3 add database table/column comments 2019-04-29 10:25:17 +02:00
Daniel Friesel
fd6d12d355 Handle inconsistent data when calculating monthly/yearly stats
Closes #11
2019-04-28 22:33:09 +02:00
Daniel Friesel
e500c2e537 work: Update route and messages 2019-04-26 22:12:34 +02:00
Daniel Friesel
fd314e327d maintenance, munin: Use journeys, not user_actions 2019-04-24 08:45:56 +02:00
Daniel Friesel
ffaa0c44a7 Automatic checkout \o/ 2019-04-23 21:30:31 +02:00
Daniel Friesel
e168d9cd39 Use one row per journey instead of split checkin/checkout entries
Whether a user is in transit or not is now determined by an entry in the
in_transit table instead of a dangling checkin.

All completed journeys are stored in the "journeys" table.

This does most of the work needed for automatic checkout. However, note that
the corresponding worker process is not implemented yet.
2019-04-23 18:08:07 +02:00
Daniel Friesel
812be4f0cb Finish transition from DBI to Mojo::Pg 2019-04-22 13:42:41 +02:00
Daniel Friesel
c65232904f Use Mojo::Pg for migrations 2019-04-22 12:30:05 +02:00
Daniel Friesel
b860b46e52 database migrate: Use truncate 2019-04-21 17:45:25 +02:00
Daniel Friesel
78b2d995ef Ignore stations without coordinates in distance calculation
Reported by @marudor
2019-04-21 15:46:19 +02:00
Daniel Friesel
eff979081c Add a registration test 2019-04-18 14:51:45 -04:00
Daniel Friesel
065c844fde Refactor munin command to use Mojo::Pg 2019-04-17 13:36:01 -04:00
Daniel Friesel
ecedc6a4f2 Add a dumpconfig command, mostly useful to debug Docker setups 2019-04-17 07:11:04 -04:00
Daniel Friesel
c19f239d1d Do not print error when encountering an empty database 2019-04-14 08:44:27 +02:00
Markus Witt
ed397093c2 database setup: merge setup and migration code paths 2019-04-13 23:36:58 +02:00
Daniel Friesel
4d413d06a3 "database" sub-command: Provide an exit status 2019-04-13 17:17:44 +02:00