Derf Null
e275fc6dbe
Fix edge case that allowed in-transit journeys with invalid destinations
2023-06-07 23:04:00 +02:00
Derf Null
bdc05e0b8e
fix missing join condition in followers view
2023-06-04 22:59:22 +02:00
Derf Null
ee0480854f
show follower-only checkins and journeys when viewing own profile
2023-06-04 19:37:35 +02:00
Derf Null
ab04bc19b9
consistently return HTTP 404 on not found errors
2023-06-04 19:37:16 +02:00
Derf Null
c1635e24fb
use a separate bad_request page for CSRF errors
2023-06-04 19:25:24 +02:00
Derf Null
34665da2a0
do not accept follows / follow requests by default
2023-06-04 19:05:20 +02:00
Derf Null
42252ee96d
Account: add rel="me" to profile links
2023-06-04 18:56:43 +02:00
Derf Null
00eb6af1bd
expose follows / social interaction in frontend
2023-06-04 18:21:36 +02:00
Derf Null
0172f0ce8a
add profile editor
2023-06-04 14:28:04 +02:00
Derf Null
d4a6470141
Users: support notifications about pending follow requests
2023-06-03 10:42:14 +02:00
Derf Null
b2feb1b664
Users: Add unfollow action
2023-06-01 22:07:01 +02:00
Derf Null
9332f60a43
prepare for follow relations and follow-only checkins
2023-05-31 22:16:27 +02:00
Derf Null
0f9519c40b
get_user_status_json_v1: expose comment
2023-05-29 14:50:04 +02:00
Derf Null
aab9fa7fe2
Profile#user_status: use account.name, not just name
2023-05-29 14:45:02 +02:00
Derf Null
b3f36b750a
Profile#user_status: return 404 if the user does not exist
2023-05-29 14:44:10 +02:00
Derf Null
dadb94a473
Traveling: remove unused JSON import
2023-05-29 14:30:58 +02:00
Derf Null
7580497cea
get_user_status_json_v1: expose visibility
2023-05-24 21:41:51 +02:00
Derf Null
ac816c09b2
rename get_privacy_by_name to get_privacy_by, allow requests by uid
2023-05-24 21:36:06 +02:00
Daniel Friesel
68468379e5
user_status: request public json entry
2023-05-23 21:16:59 +02:00
Derf Null
9b83e1a8f1
/status/:user: respond to JSON
2023-05-21 19:57:56 +02:00
Derf Null
dbc5c38968
get_user_status_json_v1: add public flag to hide actionTime
2023-05-21 19:44:43 +02:00
Derf Null
2e10115072
user_status: return no status if visibility is insufficient
2023-05-21 19:26:30 +02:00
Derf Null
72f6c2ea2d
fix pride ICE not being indicated in public status card
2023-05-18 08:25:19 +02:00
Derf Null
671e518caf
get_user_status: expose lat/lon from database view, do not re-compute it
2023-05-16 20:02:20 +02:00
Derf Null
b7720a1acf
get_user_status: remove superfluous station requests
2023-05-16 19:56:02 +02:00
Derf Null
b9f8ccd82a
ajax route: handle missing schedule data
2023-05-11 18:32:27 +02:00
Derf Null
af3cdee113
route: only override delay if real-time data is not available
2023-05-01 11:38:11 +02:00
Derf Null
e4a07dc06c
journey: show times of intermediate stops, if available
2023-05-01 10:06:30 +02:00
Derf Null
796699a9c6
add_route_timestamps: keep real-time data where possible
2023-04-30 07:42:48 +02:00
Daniel Friesel
f681aa41db
Perl is hard
2023-04-06 15:16:52 +02:00
Daniel Friesel
3b6297b785
work: real_arr_ts may be undefined
2023-04-02 17:05:13 +02:00
Derf Null
852c7797b0
Update HAFAS polylines prior to checkout
...
In case of diversions, the polyline fetched at checkin time may no longer be
accurate. Request a new polyline prior to checkout to address this.
Closes #66
2023-04-01 18:05:32 +02:00
Derf Null
c3c7a0c78b
stationboard: add HAFAS support
2023-03-27 21:03:25 +02:00
Derf Null
3acee2b285
API: import: fix get_api_token signature
2023-03-26 15:55:33 +02:00
Derf Null
402fcc4d6f
move profile / public data to a separate controller
2023-03-13 21:06:53 +01:00
Derf Null
abc1e4e3a8
work: avoid race conditions with frontend when calling checkout
2023-03-10 17:18:08 +01:00
Derf Null
f79e34fb62
worker: select on arr and dep eva for all arr/dep updates
...
still missing (TODO): add_route_timestamps
2023-03-10 16:57:31 +01:00
Daniel Friesel
609d7b3ebc
remove unused journey_edit_mask attrs
2023-03-09 19:10:08 +01:00
Daniel Friesel
5d2bc54343
remve unused account_public_mask attr
2023-03-05 12:48:01 +01:00
Daniel Friesel
c0fb7c1b13
webfinger: adjust profile visibility
2023-03-04 13:23:19 +01:00
Daniel Friesel
5461326f01
always show /p/user if /status/user exists; only limit past journeys
2023-03-04 13:22:13 +01:00
Daniel Friesel
67dc1c203a
nvm -> dbf?hafas=1
2023-03-04 10:59:35 +01:00
Daniel Friesel
5d20bf155a
resolve_sb_template: escape / in station name
2023-03-04 10:55:05 +01:00
Daniel Friesel
26814aa470
user status: add footer
2023-03-04 09:33:44 +01:00
Daniel Friesel
e1231b88e2
status/profile: re-add ability to show latest checkout, if desired
...
got lost in 1.30.0
2023-03-04 09:03:50 +01:00
Daniel Friesel
2406fc4efe
token: do not expose full checkin timestamp
2023-03-03 15:05:43 +01:00
Daniel Friesel
b725d7d52c
set default visibility to unlisted
2023-03-03 15:05:28 +01:00
Daniel Friesel
a3cc2456a7
Travelynx journey_details: token is added by template
2023-03-02 22:04:23 +01:00
Daniel Friesel
aa56023788
user_status redirect: check visibility independent of token
2023-03-02 21:54:17 +01:00
Daniel Friesel
6a734a094b
visibility_form: use visibility_str
2023-03-02 21:20:59 +01:00
Daniel Friesel
f0e991a90d
profile: respect profile visibility setting
2023-03-02 18:43:29 +01:00
Daniel Friesel
1c46f56b50
fix comment visibilitiy check
2023-03-02 18:34:01 +01:00
Daniel Friesel
792ab9fe23
journey details: require valid token if too old
2023-03-02 18:31:17 +01:00
Daniel Friesel
d35c49b55d
user status: only redirect to journey if journey is visible
2023-03-02 17:54:09 +01:00
Daniel Friesel
09a4f1ce0b
User->add: set default privacy level to 'private'
2023-03-01 22:02:48 +01:00
Daniel Friesel
77ac39f389
user status: pass token to journey on redirect
2023-03-01 17:59:20 +01:00
Daniel Friesel
ae42028a71
Journeys->get: allow filtering by departure timestamp
2023-03-01 17:58:58 +01:00
Daniel Friesel
ba483a9daf
journey: add token to share link if non-public
2023-02-28 19:45:27 +01:00
Daniel Friesel
6d261197e3
set visibility per journey (wip)
...
some odds and ends left to polish, but ready for testing
2023-02-27 22:14:54 +01:00
Daniel Friesel
fb3878665b
update ze copyright
2023-02-19 09:35:38 +01:00
Daniel Friesel
978c7b03c2
journey: add share button
2023-02-15 20:01:43 +01:00
Daniel Friesel
1e1c71cfd8
journey details: include delay and distance in og card
2023-02-14 21:31:46 +01:00
Daniel Friesel
192af42d04
DBDB: apps-bahn wagenreihung no longer exists
2023-02-13 18:27:26 +01:00
Daniel Friesel
3da22fc8f9
improve inconsistency list
2023-02-04 22:17:57 +01:00
Daniel Friesel
6b4a82da32
inconsistent journeys: link to journeys
2023-02-04 21:17:45 +01:00
Daniel Friesel
f115283cb8
account: implement immediate deletion
2023-01-22 13:07:59 +01:00
Daniel Friesel
3499311154
Move account deletion to Users model
2023-01-22 13:07:46 +01:00
Daniel Friesel
1c63574245
users: rename "add_user" to "add" and "get_data" to "get"
2023-01-22 12:44:19 +01:00
Daniel Friesel
e98fc8493f
annotate unused TRavelynx.pm components (todo)
2023-01-22 12:34:54 +01:00
Daniel Friesel
8e94fcea5f
move token type to ID map from Travelynx.pm to Model/Users
2023-01-22 12:33:02 +01:00
Daniel Friesel
59e9a24aa6
move get_api_token to users model
2023-01-22 11:34:53 +01:00
Daniel Friesel
af82c46d57
get latets stations: remove duplicates
2023-01-22 10:32:06 +01:00
Daniel Friesel
3e2491a9bc
API documentation: do not perform database requests from template helpers
2023-01-21 08:36:25 +01:00
Daniel Friesel
9b205229a3
latest checkout stations: order by journey id rather than timestamp
2023-01-18 18:48:32 +01:00
Daniel Friesel
3f08f86ac2
migration: only select required fields
2023-01-18 18:36:11 +01:00
Daniel Friesel
e937324617
landing page: show past stops if geolocation is unavailable
2023-01-18 18:13:35 +01:00
Daniel Friesel
eb1ed1bb48
do not overwrite route timestamps when updating route data
2023-01-17 19:11:38 +01:00
Daniel Friesel
1be5d4d0b0
Journeys: perltidy
2023-01-15 20:29:30 +01:00
Daniel Friesel
4abc43b72e
change route/stop layout to [name, eva, {data}]
2023-01-15 16:37:32 +01:00
Daniel Friesel
e42b7030d0
update integritycheck to use internal station database
2023-01-15 06:48:06 +01:00
Daniel Friesel
9b57a74831
webfinger: remove superfluous acct: in response
2023-01-08 10:02:45 +01:00
Daniel Friesel
ad253e48e8
webfinger queries are prefixed with acct:
2023-01-08 10:01:51 +01:00
Daniel Friesel
04817690e8
... derp
2023-01-08 10:00:42 +01:00
Daniel Friesel
113caf705d
base_url_for: fix config key (it's "base_url")
2023-01-08 09:59:18 +01:00
Daniel Friesel
6c96626214
webfinger: obtain base urls
2023-01-08 09:58:58 +01:00
Daniel Friesel
7b2cd23c39
add webfinger "profile-page" support (for public profiles only)
2023-01-08 09:40:49 +01:00
Daniel Friesel
dbd9d9951f
decrease amount of traewelling get_status requests
2023-01-07 13:57:47 +01:00
Daniel Friesel
61b91fe4b2
log traewelling sync HTTP status to influxdb
2023-01-07 13:31:14 +01:00
Daniel Friesel
628bd319d6
work, traewelling: only push to influxdb in prod mode
2023-01-07 13:07:29 +01:00
Daniel Friesel
5c9adc4710
Traewelling: fix 'already checked in' error for API v1
2023-01-07 12:32:57 +01:00
Daniel Friesel
57a1ecbf76
traewelling checkin: add missing ibnr field to API payload
2023-01-07 12:29:56 +01:00
Daniel Friesel
04d096014e
Api: Fix 'uninitialized value' warning when no token is set
2023-01-03 10:12:53 +01:00
Daniel Friesel
cf7f993309
review: skip journeys with negative duration
2023-01-02 15:05:37 +01:00
Daniel Friesel
4c1ae6d045
influxdb command: directly write to db rather than stdout
2023-01-02 06:20:07 +01:00
Daniel Friesel
4b8fd09b27
move traewelling sync to a separate command
2023-01-02 05:59:38 +01:00
Daniel Friesel
c5969fc1dc
work: count errors
2022-12-30 19:49:17 +01:00
Daniel Friesel
dc53e4774b
review: shop travelynx version
2022-12-30 16:46:56 +01:00
Daniel Friesel
7dc1b80ece
work: separate durations for main and traewelling
2022-12-30 16:46:18 +01:00
Daniel Friesel
59f844103d
worker: optionally publish influxdb stats
2022-12-30 16:27:51 +01:00
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