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
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
2f7bdf99e8
Traewelling: Use API v1 for checkin as well
2022-11-10 17:50:31 +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
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
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
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
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
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
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
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
574e83d567
Move incomplete checkin removal from "maintenance" to "work" task
2021-03-07 19:06:21 +01:00
Daniel Friesel
a21826a055
Traewelling: Ignore HTTP 406 on checkin as well
...
HTTP 406 indicates that a user has not accepted the ToS / privacy policy
2021-02-21 21:13:09 +01:00
Daniel Friesel
3f33341a2e
HAFAS: Remove all illegal linebreaks from attributes, not just the first
2021-02-06 18:06:09 +01:00
Daniel Friesel
6c015a91b8
Traewelling: Do not warn on 409 Conflict
2021-02-06 16:34:03 +01:00
Daniel Friesel
9223ba5fa1
fall back to apps-bahn if ist-wr does not know about a train
2021-02-06 12:31:35 +01:00
Daniel Friesel
5b1841ccce
HAFAS: Handle <br> tags in HTML attributes
2021-02-06 12:13:25 +01:00
Daniel Friesel
0088f11eb0
Remove workaround for https://github.com/Traewelling/traewelling/issues/72
...
Issue has been fixed
2021-02-02 18:20:49 +01:00
Daniel Friesel
5bef0bdda9
Switch to a more performant wagon order backend
2021-02-02 18:17:45 +01:00
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
8b86d0680a
Helper/IRIS: fex error message encoding (use utf8)
2020-12-09 21:12:10 +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
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
e8ff730320
Stats: Fix handling of negative cumulative arrival/departure delays
2020-10-06 19:28:00 +02:00
Daniel Friesel
9ad3b3c9e8
Traewelling can't seem to decide on date formats
2020-10-04 13:05:06 +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
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
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
94ea5a089f
Commute stats: count days, not journeys
2020-04-19 17:03:02 +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
4cc510d710
use polyline when computing monthly/yearly distance travelled
...
Closes #40
2020-04-14 18:22:49 +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
d7f251e51f
public user status: show polyline if available
2020-02-26 18:43:34 +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
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
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
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
cc25a56864
Api: Import: Set correct route key for add_journey
2020-01-26 16:04:08 +01:00
Daniel Friesel
d7c69acf41
import API: route -> intermediateStops
2020-01-26 10:50:21 +01:00
Daniel Friesel
c31254e996
import API: Add deprecated field, remove development check
2020-01-26 10:47:51 +01:00
Daniel Friesel
1723f8c1fb
import API: invalidate stats cache after adding a journey
2020-01-26 10:08:46 +01:00
Daniel Friesel
3e9807b393
map, journey view: handle renamed stations
2020-01-25 15:46:42 +01:00
Daniel Friesel
1028e47a35
map: list skipped journeys
2020-01-25 14:55:51 +01:00
Daniel Friesel
ee1285e8fa
map: support multiple polyline groups with different colors
2020-01-25 14:41:33 +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
9232cdaa5f
Return HTTP 404 for unknown journeys
2020-01-19 19:21:14 +01:00
Daniel Friesel
2764826da0
/journey/ 🆔 verify that id is numeric
...
As a side effect, this turns the response of GET /journey/edit (which should
never happen in the first place) from an exception into a 404 error (#36 )
2020-01-19 19:15:53 +01:00
Daniel Friesel
a9a7fa4492
Release Travel API
2019-12-31 13:27:14 +01:00
Daniel Friesel
61889603f7
Checkin API: error out if fromStation / toStation are ambiguous
2019-12-30 01:31:26 +01:00
Daniel Friesel
d9126b927f
fix connections display
2019-12-26 22:48:50 +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
e7f278574f
more travel API documentation
2019-12-20 18:33:59 +01:00
Daniel Friesel
11a2e94a04
travel API: more helpful errors on invalid input
2019-12-20 16:39:15 +01:00
Daniel Friesel
bd372d57e2
Travel API: Add "deprecated" field
2019-12-20 16:23:41 +01:00
Daniel Friesel
ebb7c22a4b
checkin api: only set comment if checkin was successful
2019-12-20 16:18:32 +01:00
Daniel Friesel
b0ddada5d1
munin: Add 'currently checked in' counter
2019-12-19 19:22:56 +01:00
Daniel Friesel
69f961a23c
disable import and checkin API endpoints in production mode
2019-12-19 19:20:06 +01:00
Daniel Friesel
c8695ecb1c
travel, import API: Verify that payload is a hash
2019-12-17 20:41:36 +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
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
315a94affe
allow a journey's cancellation status to be edited
...
Closes #27
2019-12-08 19:46:45 +01:00
Daniel Friesel
561ff4574b
Allow status visibility to be limited to travelynx users
2019-12-08 11:06:17 +01:00
Daniel Friesel
402a5597f5
Account: unset public_comment when public_status is disabled
2019-12-08 10:32:22 +01:00
Daniel Friesel
fb126c6928
optionally show journey comment in public user status
...
Closes #19
2019-12-06 21:44:31 +01:00
Daniel Friesel
094c536eb4
Allow comments to be entered while still in transit
2019-12-06 21:40:51 +01:00
Daniel Friesel
119f0a6b7d
Do not show cancelled journeys without substitute in passengerrights list
2019-11-27 21:09:49 +01:00
Daniel Friesel
0e2e8cd78e
history map: Add checkbox to display manually added journeys
2019-11-27 18:26:15 +01:00
Daniel Friesel
613f7d6087
Passengerrights: Fix typo
2019-11-24 20:32:24 +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
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
13e59b3aa1
add journey: make realtime data optional (default to schedule data)
...
Closes #25
2019-11-18 21:02:57 +01:00
Daniel Friesel
783a540cb0
history map: show time range; handle users with no journeys
2019-11-16 23:47:18 +01:00
Daniel Friesel
e0187c5308
history map: Do not show route for manually added journeys
2019-11-16 23:46:45 +01:00
Daniel Friesel
cea4b71ca3
history map: skip duplicates earlier
2019-11-16 21:24:35 +01:00
Daniel Friesel
4f2eac9cef
map_history: uniq_by_route did not consider the actual passenger route, scrap it
2019-11-16 16:03:03 +01:00
Daniel Friesel
733fe2d853
map: add legend, link to history map from history page
2019-11-16 15:57:09 +01:00
Daniel Friesel
77e4998708
move station -> location map to generic helper
2019-11-16 15:24:16 +01:00
Daniel Friesel
45f747961e
map: add station names to points
2019-11-16 14:50:07 +01:00
Daniel Friesel
0bfb71d78d
add map view of past journeys. unfinished and unreferenced.
2019-11-16 00:01:50 +01:00
Daniel Friesel
4ba82b51d3
Fix invalid geolocation list when less than 5 unique station names are nearby
...
This issue was introduced in 7c7b5e9f95
and
caused the client-side javascript code to crash
2019-10-19 16:47:33 +02:00
Daniel Friesel
780cdafcf5
show related stations in departure list
2019-10-19 10:15:18 +02:00
Daniel Friesel
6d45533c14
mark cancelled stops in checkin view
2019-10-04 23:27:45 +02:00
Daniel Friesel
1cb26e2053
handle substitute connections in passenger rights form
2019-09-18 20:21:16 +02:00
Daniel Friesel
8e6ee729e0
passengerrights: improve support for cancelled trains
...
To do: also do so in form generation
2019-09-18 18:19:54 +02:00
Daniel Friesel
a9850d073e
improve connection detection heuristic
2019-09-14 12:27:36 +02:00
Daniel Friesel
35cc18dfae
add passenger rights heuristic for missed connections
2019-09-13 23:39:28 +02:00
Daniel Friesel
0822cfc993
add auto-generated passenger rights forms
2019-09-12 18:07:21 +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
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
7c7b5e9f95
Do not show station duplicates in geolocation list
2019-07-20 15:42:49 +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
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
155f9f39cc
use journey-specific status links -> one twitter card per journey
2019-05-29 20:01:52 +02:00
Daniel Friesel
146b3a2682
add twitter preview tags to public user status page
2019-05-29 18:11:25 +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
d9d3aac792
allow checkin from connections view
2019-05-19 10:32:57 +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
b85db3a10d
Show web-hook test result immediately after saving it
...
Closes #12
2019-05-14 20:05:45 +02:00
Daniel Friesel
59c677ba12
history: validate year and month
2019-05-11 01:35:57 +02:00
Daniel Friesel
269b8536f4
Add webhook to account page
2019-05-10 19:03:18 +02:00
Daniel Friesel
2ddab75644
basic webhook support, onwards to betatesting
2019-05-06 16:59:48 +02:00
Daniel Friesel
b36ba45aef
WiP webhook support
2019-05-05 18:09:11 +02:00
Daniel Friesel
954638e7c7
data export: use station names, not IDs
2019-05-03 21:14:49 +02:00
Daniel Friesel
709919a962
Experimental PWA support ( #13 )
2019-05-03 20:43:46 +02:00
Daniel Friesel
b4bb68b7c3
Add worker command for Docker setups ( #9 )
2019-05-03 18:26:05 +02:00
Daniel Friesel
bf2dae7c45
Add changelog
2019-05-03 10:32:58 +02:00
Daniel Friesel
af5c26bf8a
Do not error out when receiving UIDs > INT_MAX
2019-05-02 11:34:52 +02:00
Daniel Friesel
be1e5dda23
Public API documentation
2019-05-02 11:29:43 +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