Checkin: Use correct visibility when pushing to Träwelling

This commit is contained in:
networkException 2023-07-13 20:17:51 +02:00
parent a28db4a4a9
commit 0c1993f28e
No known key found for this signature in database
GPG key ID: E3877443AE684391
2 changed files with 19 additions and 1 deletions

View file

@ -1,6 +1,7 @@
package Travelynx::Helper::Traewelling;
# Copyright (C) 2020-2023 Birte Kristina Friesel
# Copyright (C) 2023 networkException <git@nwex.de>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@ -322,6 +323,20 @@ sub logout_p {
return $promise;
}
sub convert_travelynx_to_traewelling_visibility {
my ( $travelynx_visibility ) = @_;
my %visibilities = (
100 => 0, # public => StatusVisibility::PUBLIC
80 => 4, # travelynx => StatusVisibility::AUTHENTICATED (only visible for logged in users)
60 => 2, # followers => StatusVisibility::FOLLOWERS
30 => 3, # unlisted => StatusVisibility::PRIVATE (there is no träwelling equivalent to unlisted, their StatusVisibility::UNLISTED shows the journey on the profile)
10 => 3, # private => StatusVisibility::PRIVATE
);
return $visibilities{$travelynx_visibility};
}
sub checkin_p {
my ( $self, %opt ) = @_;
@ -352,6 +367,7 @@ sub checkin_p {
arrival => $arrival_ts,
toot => $opt{data}{toot} ? \1 : \0,
tweet => $opt{data}{tweet} ? \1 : \0,
visibility => convert_travelynx_to_traewelling_visibility($opt{visibility})
};
if ( $opt{user_data}{comment} ) {

View file

@ -218,9 +218,11 @@ sub get_pushable_accounts {
i.train_line as train_line, i.train_no as train_no,
extract(epoch from i.checkin_time) as checkin_ts,
extract(epoch from i.sched_departure) as dep_ts,
extract(epoch from i.sched_arrival) as arr_ts
extract(epoch from i.sched_arrival) as arr_ts,
i_str.effective_visibility as visibility
from traewelling as t
join in_transit as i on t.user_id = i.user_id
join in_transit_str as i_str on t.user_id = i_str.user_id
where t.push_sync = True
and i.checkout_station_id is not null
and i.cancelled = False