Birte Kristina Friesel
1690a07d92
Rename filter_after/filter_before to filter_from/filter_to (they're inclusive)
2024-01-02 09:12:24 +01:00
Birte Kristina Friesel
2c229c0317
map: show year in headline if set
2024-01-01 12:58:59 +01:00
Birte Kristina Friesel
a2e1edbe8b
history_map: filter_until is inclusive
2023-12-31 12:24:51 +01:00
Birte Kristina Friesel
4d044fb98a
Fix connection display for Travel::Status::DE::HAFAS 5.x
2023-12-27 11:16:38 +01:00
Birte Kristina Friesel
d47195a0cf
Switch to Travel::Status::DE::HAFAS 5.x
2023-12-27 10:59:35 +01:00
Birte Kristina Friesel
6364751eb1
HAFAS: Use locationSearch rather than similar_stops_p
...
locationSearch uses mgate.exe, just like the regular departure board.
similar_stops_p relies on ajax-getstop.exe which may become unavailable sooner
rather than later.
2023-11-01 18:44:00 +01:00
Birte Kristina Friesel
fd43d818f9
increase level of caution
2023-10-01 10:51:58 +02:00
Birte Kristina Friesel
cbc433f76c
suggested connections: avoid fetching IRIS trains via HAFAS
2023-10-01 10:49:36 +02:00
Birte Kristina Friesel
4a2897c1f8
influxdb: add meta / related_stations count
2023-10-01 10:30:24 +02:00
Birte Kristina Friesel
aaeb81a5d2
store related stations; respect them when looking up connections
2023-10-01 07:11:58 +02:00
Birte Kristina Friesel
2638dd36fb
connections: do not show cancelled trains twice
2023-09-26 20:26:12 +02:00
Birte Kristina Friesel
e346f969b0
intransit: support HAFAS trains that do not have a type
2023-09-24 18:20:15 +02:00
Birte Kristina Friesel
de074342de
add support for HAFAS connection suggestions; drop manual destination list
...
Still TODO: handle stations that have several EVAs
2023-09-24 18:19:17 +02:00
Birte Kristina Friesel
8810acf742
/s: support filter by trip_id; only allow train filter in IRIS mode
2023-09-17 15:50:11 +02:00
Birte Kristina Friesel
04c8d7672a
journey: show distances below 10km with 100m resolution (and <1km with 1m)
2023-09-16 22:23:44 +02:00
Birte Kristina Friesel
434eb5a18d
map: use high beeline opacity if no polylines are available
2023-09-12 18:26:15 +02:00
Birte Kristina Friesel
8daf885ace
indicate whether current journey has realtime data
2023-09-09 10:06:31 +02:00
Birte Kristina Friesel
2e14c2e3e4
Fix intermediate stop display for journeys without real-time data, e.g. H-Bahn
2023-09-07 21:19:43 +02:00
Birte Kristina Friesel
b410176e63
perltidy
2023-09-04 17:08:17 +02:00
Birte Kristina Friesel
55451b78f4
work: 'did not find $dep' is not actionable → change severity to debug
2023-09-04 17:05:50 +02:00
Birte Kristina Friesel
26ebd3d644
API: Expose HAFAS JourneyID, if available ( #85 )
2023-08-30 21:54:05 +02:00
Birte Kristina Friesel
f4d71b4d9f
obtain autocompletion from database
2023-08-26 09:17:28 +02:00
Birte Kristina Friesel
559a1cedd7
manual station entry: fix HAFAS redirect
2023-08-26 09:15:33 +02:00
Birte Kristina Friesel
d313ca7fc1
resolve unknown/ambiguous stop into list of stops
2023-08-24 21:26:00 +02:00
Birte Kristina Friesel
9b66e2779d
geolocation: Fix 'hafas=undefined' links for iris stops
2023-08-24 21:11:45 +02:00
Birte Kristina Friesel
ecc419e646
select latest journey based on timestamp, not ID
...
This avoids manually added past journeys messing with the latest travel target
2023-08-22 09:21:02 +02:00
Birte Kristina Friesel
6ca55f83b1
Database: create index on real_departure to speed up latest journey queries
2023-08-22 09:10:54 +02:00
Birte Kristina Friesel
8f747fff91
sort HAFAS/IRIS stations by distance
2023-08-20 16:52:09 +02:00
Birte Kristina Friesel
b85e8a1e04
API: Support HAFAS checkin (via journeyID)
2023-08-19 12:43:43 +02:00
Birte Kristina Friesel
85022709d7
API: fix checkin with toStation and checkout endpoints
...
Broken by 38ad42b42c
2023-08-19 10:06:15 +02:00
Birte Kristina Friesel
54547eb3af
manual station entry: HAFAS support
2023-08-18 20:42:37 +02:00
Birte Kristina Friesel
654bde9278
geosearch: always query iris and hafas stops
2023-08-16 18:54:32 +02:00
Birte Kristina Friesel
5d330a7738
recent targets: distinguish hafas/iris
2023-08-16 09:31:01 +02:00
Birte Kristina Friesel
dfe820952f
station board: add iris / hafas links
2023-08-15 08:37:14 +02:00
Birte Kristina Friesel
8f377d4ee5
traveling: redirect hafas journeys to hafas=1
2023-08-14 12:35:22 +02:00
Birte Kristina Friesel
293f0c7577
synchronize non-train checkins from traewelling to travelynx
2023-08-13 20:18:40 +02:00
Birte Kristina Friesel
0604dd80f8
WIP: HAFAS support
2023-08-13 12:51:15 +02:00
Birte Kristina Friesel
944688cfff
influxdb: add stations statistics
2023-08-13 10:55:32 +02:00
Birte Kristina Friesel
8ec002f041
Store traewelling refresh token in database
2023-08-09 19:28:36 +02:00
Birte Kristina Friesel
3ec9970f01
traewelling oauth: pass HTTP redirect_uri in development mode
2023-08-09 19:26:25 +02:00
Birte Kristina Friesel
db7e5faaf4
sort timeline (descending by checkin timestamp, so most recent checkins first)
2023-08-08 19:53:37 +02:00
Birte Kristina Friesel
a08a4be89e
Fix Traewelling OAuth2 behind reverse proxies
...
a reverse proxy makes mojolicious believe that it is using HTTP, even though
it is HTTPS.
2023-08-08 18:15:31 +02:00
Birte Kristina Friesel
52c0da3f46
Traewelling: replace legacy password login with OAuth2
...
This is a breaking change insofar as that traewelling support is no longer
provided automatically, but must be enabled by providing a traewelling.de
application ID and secret in travelynx.conf. However, as traewelling.de
password login is deprecated and wil soon be disabled, travelynx would break
either way. So we might or might not see travelynx 2.0.0 in the next days.
Automatic token refresh is still todo, but that was the case for password
login as well.
Closes #64
2023-08-07 21:17:10 +02:00
Birte Kristina Friesel
38ad42b42c
convert checkout to promises (checkout_p)
2023-07-23 20:18:10 +02:00
Birte Kristina Friesel
13277ad770
checkout: remove with_related special case
...
travelynx now always calls checkout with the database-provided arr_eva,
so the edge case in which it provided a station that is not actually on the
route of a train can no longer appear.
2023-07-23 12:21:37 +02:00
Birte Kristina Friesel
9209cb292e
database: stations: make 'ds100' column optional.
...
HAFAS stations do not necessarily have ds100 codes
2023-07-22 18:03:46 +02:00
Birte Kristina Friesel
86ddfe5c97
Users->delete: delete relations as well
2023-07-19 09:17:19 +02:00
Birte Kristina Friesel
fef9ebe0b2
followee list: show if accounts are following back
2023-07-18 15:47:45 +02:00
Birte Kristina Friesel
19cd9f7a8d
account: add a list of sent follow requests
2023-07-16 23:01:23 +02:00
Birte Kristina Friesel
f9d1c266ce
action#checkin: re-add auto checkout
...
was removed from $self->checkin in 1074f248cc
2023-07-16 17:20:36 +02:00
Birte Kristina Friesel
b0bb69d87e
show followee checkins in departure board
2023-07-16 10:30:47 +02:00
Birte Kristina Friesel
40bec7774b
cleanup; perltidy
2023-07-16 10:30:23 +02:00
Birte Kristina Friesel
9df937c890
remove debug output
2023-07-15 23:23:11 +02:00
Birte Kristina Friesel
1cca278baa
add timeline / current checkins
2023-07-15 19:20:37 +02:00
Birte Kristina Friesel
bee67f096a
get_user_status: fix stop_before_dest calculation
2023-07-15 19:16:01 +02:00
Birte Kristina Friesel
40cd1d06fe
postprocess timeline; move user-related parts to get_user_status
2023-07-15 19:07:21 +02:00
Birte Kristina Friesel
5006bf6249
database: change maximum comment length
2023-07-15 17:10:24 +02:00
Birte Kristina Friesel
3c59efe2d4
timeline: minimum visibility is followers-only, not unlisted
2023-07-15 16:12:09 +02:00
Birte Kristina Friesel
cdce746afd
increase maximum comment length
2023-07-15 16:11:21 +02:00
Birte Kristina Friesel
b446b68e67
Move InTransit post-processing to InTransit module
2023-07-15 13:28:54 +02:00
Birte Kristina Friesel
d43c44e81c
add view for followees in transit
2023-07-15 08:36:26 +02:00
Birte Kristina Friesel
ca3cd1580f
Journeys->get_latest: Fix uninitialized value warning
2023-07-14 18:48:46 +02:00
Birte Kristina Friesel
5e74e35dfe
get_pushable_accounts: obtain all values from in_transit_str
2023-07-13 21:08:12 +02:00
Birte Kristina Friesel
83df6f41e2
perltidy
2023-07-13 20:56:30 +02:00
networkException
0c1993f28e
Checkin: Use correct visibility when pushing to Träwelling
2023-07-13 20:17:51 +02:00
Birte Kristina Friesel
8a422d16f7
Api: use get_departures_p
2023-07-09 19:23:11 +02:00
Birte Kristina Friesel
5b88a4bb3d
station board: fix HTTP status and IRIS error handling
2023-07-09 17:42:12 +02:00
Birte Kristina Friesel
2123a67ba0
IRIS->get_departures_p: return string in first rejection argument
...
This is consistent with other promises within travelynx
2023-07-09 17:41:51 +02:00
Birte Kristina Friesel
1074f248cc
use promises for checkin and traewelling_to_travelynx
2023-07-09 14:46:28 +02:00
Birte Kristina Friesel
fb83b0ad9f
checkin: reduce nesting
2023-07-09 07:16:22 +02:00
Birte Kristina Friesel
b5723264a7
HAFAS station board: fix station name display
2023-07-09 07:07:31 +02:00
Derf Null
c9bae6fcee
journeys: simplify visibily check
2023-07-03 18:12:34 +02:00
Derf Null
a608ca6781
update ALL the copyright notices!
2023-07-03 17:59:25 +02:00
Derf Null
4dd2cc9d9e
show hours and minutes until arrival, not just minutes
2023-07-02 10:48:34 +02:00
Derf Null
66e8dcb925
Profile: remove unused compute_effective_visibility function
2023-06-30 19:58:37 +02:00
Derf Null
0e4bafafd8
Profile: refactor visibility checks
2023-06-30 19:58:12 +02:00
Derf Null
a5bdf28f4c
perltidy
2023-06-29 21:54:51 +02:00
Derf Null
a73e2edc86
profile: use effective visibility from journey object
2023-06-29 21:54:25 +02:00
Derf Null
f794d3c0a4
profile: treat self as follower
2023-06-29 21:52:18 +02:00
Derf Null
00ee3de6c1
Journey->add_from_in_transit: return ID of added journey
2023-06-28 22:21:51 +02:00
Derf Null
bb43a2e8e3
journeys: return effective visibility
2023-06-27 21:50:28 +02:00
Derf Null
8cb0de1b70
compute effective visibility in database view
2023-06-26 20:53:08 +02:00
Derf Null
16237bfe21
use small stations database for some tests
2023-06-26 20:18:27 +02:00
Derf Null
0702a0edca
Move hash_password to Model/Users
2023-06-26 19:50:49 +02:00
Derf Null
05924f2c67
Login: return HTTP 400 on invalid password or unconfirmed account
2023-06-25 23:28:38 +02:00
Derf Null
e14966c488
Users->add: correctly specify default visibility
2023-06-25 11:09:51 +02:00
Derf Null
b44b770ec3
fine-graned visibility selection of history / past checkins
...
most notably, adds a 'history for followers only' mode
2023-06-24 21:25:14 +02:00
Derf Null
085d77a1fa
time to flush the name cache
2023-06-24 18:36:59 +02:00
Derf Null
ee6470e0d8
status card / profile: fix users being unable to see own travelynx-only status
2023-06-23 22:46:15 +02:00
Derf Null
c5957fbdfd
User: remove legacy public_level / is_public field
2023-06-23 22:43:41 +02:00
Derf Null
a249be1d8b
run webhook when updating checkin comment or visibility
2023-06-18 08:38:55 +02:00
Molly Miller
beb59221e7
Add app version to default stashed values.
...
This means that the version no longer needs to be passed to every version
manually, and is automatically populated in templates where the parameter is
not explicitly provided.
2023-06-12 20:48:01 +02:00
Derf Null
0516344ac0
login form: add hint about pages being only visibile after login
2023-06-09 07:55:59 +02:00
Derf Null
88ede7e308
update ice names
2023-06-08 12:44:04 +02:00
Derf Null
619646b533
warn when trying to check out at invalid unscheduled station
...
Closes #72
2023-06-08 10:20:13 +02:00
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