summaryrefslogtreecommitdiff
path: root/lib/Travelynx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Travelynx')
-rw-r--r--lib/Travelynx/Helper/Traewelling.pm16
-rw-r--r--lib/Travelynx/Model/Traewelling.pm4
2 files changed, 19 insertions, 1 deletions
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 <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} ) {
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