From 0c1993f28ec78b80887c4780a432b070bc441ab1 Mon Sep 17 00:00:00 2001 From: networkException Date: Thu, 13 Jul 2023 20:17:51 +0200 Subject: Checkin: Use correct visibility when pushing to Träwelling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/Travelynx/Helper/Traewelling.pm | 16 ++++++++++++++++ lib/Travelynx/Model/Traewelling.pm | 4 +++- 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/Travelynx/Helper/Traewelling.pm b/lib/Travelynx/Helper/Traewelling.pm index bcde1de..f216263 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 # # 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} ) { diff --git a/lib/Travelynx/Model/Traewelling.pm b/lib/Travelynx/Model/Traewelling.pm index d320439..a388ae2 100644 --- a/lib/Travelynx/Model/Traewelling.pm +++ b/lib/Travelynx/Model/Traewelling.pm @@ -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 -- cgit v1.2.3 From 83df6f41e241960213bcaf318802ef81c448cf60 Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Thu, 13 Jul 2023 20:56:30 +0200 Subject: perltidy --- lib/Travelynx/Helper/Traewelling.pm | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/Travelynx/Helper/Traewelling.pm b/lib/Travelynx/Helper/Traewelling.pm index f216263..23170eb 100644 --- a/lib/Travelynx/Helper/Traewelling.pm +++ b/lib/Travelynx/Helper/Traewelling.pm @@ -324,14 +324,27 @@ sub logout_p { } sub convert_travelynx_to_traewelling_visibility { - my ( $travelynx_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 + + # 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}; @@ -367,7 +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}) + visibility => + convert_travelynx_to_traewelling_visibility( $opt{visibility} ) }; if ( $opt{user_data}{comment} ) { -- cgit v1.2.3 From 5e74e35dfe9b2461528c85cf1510c56192336073 Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Thu, 13 Jul 2023 21:08:12 +0200 Subject: get_pushable_accounts: obtain all values from in_transit_str --- lib/Travelynx/Model/Traewelling.pm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'lib') diff --git a/lib/Travelynx/Model/Traewelling.pm b/lib/Travelynx/Model/Traewelling.pm index a388ae2..1939374 100644 --- a/lib/Travelynx/Model/Traewelling.pm +++ b/lib/Travelynx/Model/Traewelling.pm @@ -213,18 +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_str.effective_visibility as visibility + 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_str on t.user_id = i_str.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 } ); -- cgit v1.2.3