diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Travelynx/Helper/Traewelling.pm | 30 | ||||
| -rw-r--r-- | lib/Travelynx/Model/Traewelling.pm | 13 | 
2 files changed, 37 insertions, 6 deletions
diff --git a/lib/Travelynx/Helper/Traewelling.pm b/lib/Travelynx/Helper/Traewelling.pm index bcde1de..23170eb 100644 --- a/lib/Travelynx/Helper/Traewelling.pm +++ b/lib/Travelynx/Helper/Traewelling.pm @@ -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,33 @@ sub logout_p {  	return $promise;  } +sub convert_travelynx_to_traewelling_visibility { +	my ($travelynx_visibility) = @_; + +	my %visibilities = ( + +		# public    => StatusVisibility::PUBLIC +		100 => 0, + +		# travelynx => StatusVisibility::AUTHENTICATED +		# (only visible for logged in users) +		80 => 4, + +		# followers => StatusVisibility::FOLLOWERS +		60 => 2, + +		# unlisted  => StatusVisibility::PRIVATE +		# (there is no träwelling equivalent to unlisted, their +		# StatusVisibility::UNLISTED shows the journey on the profile) +		30 => 3, + +		# private   => StatusVisibility::PRIVATE +		10 => 3, +	); + +	return $visibilities{$travelynx_visibility}; +} +  sub checkin_p {  	my ( $self, %opt ) = @_; @@ -352,6 +380,8 @@ 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} ) { diff --git a/lib/Travelynx/Model/Traewelling.pm b/lib/Travelynx/Model/Traewelling.pm index d320439..1939374 100644 --- a/lib/Travelynx/Model/Traewelling.pm +++ b/lib/Travelynx/Model/Traewelling.pm @@ -213,16 +213,17 @@ sub get_pushable_accounts {  	my $res = $self->{pg}->db->query(  		qq{select t.user_id as uid, t.token as token, t.data as data,  			i.user_data as user_data, -			i.checkin_station_id as dep_eva, i.checkout_station_id as arr_eva, +			i.dep_eva as dep_eva, i.arr_eva as arr_eva,  			i.data as journey_data, i.train_type as train_type,  			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 +			i.checkin_ts as checkin_ts, +			i.sched_dep_ts as dep_ts, +			i.sched_arr_ts as arr_ts, +			i.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 on t.user_id = i.user_id  			where t.push_sync = True -			and i.checkout_station_id is not null +			and i.arr_eva is not null  			and i.cancelled = False  		}  	);  | 
