diff options
| author | Derf Null <derf@finalrewind.org> | 2023-06-24 21:25:14 +0200 | 
|---|---|---|
| committer | Derf Null <derf@finalrewind.org> | 2023-06-24 21:25:14 +0200 | 
| commit | b44b770ec3eb820699bad44600c78edb5f4aac9e (patch) | |
| tree | ecfc8c660b9df7e83626765ad3f301cadcf2d9d2 /lib/Travelynx/Model | |
| parent | 085d77a1fad8dd205c3607c6535279103b0d2b3c (diff) | |
fine-graned visibility selection of history / past checkins
most notably, adds a 'history for followers only' mode
Diffstat (limited to 'lib/Travelynx/Model')
| -rw-r--r-- | lib/Travelynx/Model/Users.pm | 35 | 
1 files changed, 20 insertions, 15 deletions
diff --git a/lib/Travelynx/Model/Users.pm b/lib/Travelynx/Model/Users.pm index 1747989..95cab8f 100644 --- a/lib/Travelynx/Model/Users.pm +++ b/lib/Travelynx/Model/Users.pm @@ -191,12 +191,14 @@ sub get_privacy_by {  			default_visibility     => $user->{public_level} & 0x7f,  			default_visibility_str =>  			  $visibility_itoa{ $user->{public_level} & 0x7f }, -			comments_visible       => $user->{public_level} & 0x80 ? 1 : 0, -			past_visible           => ( $user->{public_level} & 0x300 ) >> 8, -			past_all               => $user->{public_level} & 0x400 ? 1 : 0, -			past_status            => $user->{public_level} & 0x800 ? 1 : 0, -			accept_follows         => $user->{accept_follows} == 2  ? 1 : 0, -			accept_follow_requests => $user->{accept_follows} == 1  ? 1 : 0, +			comments_visible    => $user->{public_level} & 0x80 ? 1 : 0, +			past_visibility     => ( $user->{public_level} & 0x7f00 ) >> 8, +			past_visibility_str => +			  $visibility_itoa{ ( $user->{public_level} & 0x7f00 ) >> 8 }, +			past_status            => $user->{public_level} & 0x08000 ? 1 : 0, +			past_all               => $user->{public_level} & 0x10000 ? 1 : 0, +			accept_follows         => $user->{accept_follows} == 2    ? 1 : 0, +			accept_follow_requests => $user->{accept_follows} == 1    ? 1 : 0,  		};  	}  	return; @@ -211,9 +213,10 @@ sub set_privacy {  	if ( not defined $public_level and defined $opt{default_visibility} ) {  		$public_level  		  = ( $opt{default_visibility} & 0x7f ) -		  | ( $opt{comments_visible} ? 0x80 : 0x00 ) -		  | ( ( ( $opt{past_visible} // 0 ) << 8 ) & 0x300 ) -		  | ( $opt{past_all} ? 0x400 : 0 ) | ( $opt{past_status} ? 0x800 : 0 ); +		  | ( $opt{comments_visible} ? 0x80 : 0 ) +		  | ( ( $opt{past_visibility} & 0x7f ) << 8 ) +		  | ( $opt{past_status} ? 0x08000 : 0 ) +		  | ( $opt{past_all}    ? 0x10000 : 0 );  	}  	$db->update( 'users', { public_level => $public_level }, { id => $uid } ); @@ -416,12 +419,14 @@ sub get {  			default_visibility     => $user->{public_level} & 0x7f,  			default_visibility_str =>  			  $visibility_itoa{ $user->{public_level} & 0x7f }, -			comments_visible => $user->{public_level} & 0x80 ? 1 : 0, -			past_visible     => ( $user->{public_level} & 0x300 ) >> 8, -			past_all         => $user->{public_level} & 0x400 ? 1 : 0, -			past_status      => $user->{public_level} & 0x800 ? 1 : 0, -			email            => $user->{email}, -			sb_name          => $user->{external_services} +			comments_visible    => $user->{public_level} & 0x80 ? 1 : 0, +			past_visibility     => ( $user->{public_level} & 0x7f00 ) >> 8, +			past_visibility_str => +			  $visibility_itoa{ ( $user->{public_level} & 0x7f00 ) >> 8 }, +			past_status => $user->{public_level} & 0x08000 ? 1 : 0, +			past_all    => $user->{public_level} & 0x10000 ? 1 : 0, +			email       => $user->{email}, +			sb_name     => $user->{external_services}  			? $sb_templates[ $user->{external_services} & 0x07 ][0]  			: undef,  			sb_template => $user->{external_services}  | 
