diff options
Diffstat (limited to 'lib/Travelynx')
| -rwxr-xr-x | lib/Travelynx/Controller/Profile.pm | 28 | ||||
| -rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 15 | ||||
| -rw-r--r-- | lib/Travelynx/Model/InTransit.pm | 32 | 
3 files changed, 59 insertions, 16 deletions
| diff --git a/lib/Travelynx/Controller/Profile.pm b/lib/Travelynx/Controller/Profile.pm index c35642d..db30d36 100755 --- a/lib/Travelynx/Controller/Profile.pm +++ b/lib/Travelynx/Controller/Profile.pm @@ -111,6 +111,13 @@ sub profile {  		$status->{arr_name} = undef;  	} +	my $map_data = {}; +	if ( $status->{checked_in} ) { +		$map_data = $self->journeys_to_map_data( +			journeys => [$status], +		); +	} +  	my @journeys;  	if ( @@ -190,6 +197,8 @@ sub profile {  			: 0,  			journey  => $status,  			journeys => [@journeys], +			with_map => 1, +			%{$map_data},  		}  	);  } @@ -494,6 +503,13 @@ sub user_status {  		$og_data{description} = $tw_data{description} = q{};  	} +	my $map_data = {}; +	if ( $status->{checked_in} ) { +		$map_data = $self->journeys_to_map_data( +			journeys => [$status], +		); +	} +  	$self->respond_to(  		json => {  			json => { @@ -516,7 +532,9 @@ sub user_status {  			journey   => $status,  			twitter   => \%tw_data,  			opengraph => \%og_data, -			version   => $self->app->config->{version} // 'UNKNOWN', +			with_map  => 1, +			%{$map_data}, +			version => $self->app->config->{version} // 'UNKNOWN',  		},  	);  } @@ -555,6 +573,7 @@ sub status_card {  	my $status = $self->get_user_status( $user->{id} );  	my $visibility; +	my $map_data = {};  	if ( $status->{checked_in} or $status->{arr_name} ) {  		my $visibility = $status->{effective_visibility};  		if ( @@ -579,12 +598,19 @@ sub status_card {  		$status->{arr_name} = undef;  	} +	if ( $status->{checked_in} ) { +		$map_data = $self->journeys_to_map_data( +			journeys => [$status], +		); +	} +  	$self->render(  		'_public_status_card',  		name         => $name,  		privacy      => $user,  		journey      => $status,  		from_profile => $self->param('profile') ? 1 : 0, +		%{$map_data},  	);  } diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index 4653043..0d89fb9 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -353,6 +353,9 @@ sub homepage {  		$self->stash( timeline => [@timeline] );  		my @recent_targets;  		if ( $status->{checked_in} ) { +			my $map_data = $self->journeys_to_map_data( +				journeys => [$status], +			);  			my $journey_visibility  			  = $self->compute_effective_visibility(  				$user->{default_visibility_str}, @@ -371,6 +374,8 @@ sub homepage {  							journey_visibility => $journey_visibility,  							connections_iris   => $connections_iris,  							connections_hafas  => $connections_hafas, +							with_map           => 1, +							%{$map_data},  						);  						$self->users->mark_seen( uid => $uid );  					} @@ -381,6 +386,8 @@ sub homepage {  							user               => $user,  							user_status        => $status,  							journey_visibility => $journey_visibility, +							with_map           => 1, +							%{$map_data},  						);  						$self->users->mark_seen( uid => $uid );  					} @@ -393,6 +400,8 @@ sub homepage {  					user               => $user,  					user_status        => $status,  					journey_visibility => $journey_visibility, +					with_map           => 1, +					%{$map_data},  				);  				$self->users->mark_seen( uid => $uid );  				return; @@ -431,6 +440,9 @@ sub status_card {  	$self->stash( timeline => [@timeline] );  	if ( $status->{checked_in} ) { +		my $map_data = $self->journeys_to_map_data( +			journeys => [$status], +		);  		my $journey_visibility  		  = $self->compute_effective_visibility(  			$self->current_user->{default_visibility_str}, @@ -448,6 +460,7 @@ sub status_card {  						journey_visibility => $journey_visibility,  						connections_iris   => $connections_iris,  						connections_hafas  => $connections_hafas, +						%{$map_data},  					);  				}  			)->catch( @@ -456,6 +469,7 @@ sub status_card {  						'_checked_in',  						journey            => $status,  						journey_visibility => $journey_visibility, +						%{$map_data},  					);  				}  			)->wait; @@ -465,6 +479,7 @@ sub status_card {  			'_checked_in',  			journey            => $status,  			journey_visibility => $journey_visibility, +			%{$map_data},  		);  	}  	elsif ( $status->{cancellation} ) { diff --git a/lib/Travelynx/Model/InTransit.pm b/lib/Travelynx/Model/InTransit.pm index b2be995..a90cd08 100644 --- a/lib/Travelynx/Model/InTransit.pm +++ b/lib/Travelynx/Model/InTransit.pm @@ -12,11 +12,12 @@ use DateTime;  use JSON;  my %visibility_itoa = ( -	100 => 'public', -	80  => 'travelynx', -	60  => 'followers', -	30  => 'unlisted', -	10  => 'private', +	100     => 'public', +	80      => 'travelynx', +	60      => 'followers', +	30      => 'unlisted', +	10      => 'private', +	default => 'default',  );  my %visibility_atoi = ( @@ -360,16 +361,14 @@ sub postprocess {  	$ret->{wagongroups}        = $ret->{user_data}{wagongroups};  	$ret->{platform_type} = 'Gleis'; -	if ( $ret->{train_type} =~ m{ ast | bus | ruf }ix ) { +	if ( $ret->{train_type} and $ret->{train_type} =~ m{ ast | bus | ruf }ix ) {  		$ret->{platform_type} = 'Steig';  	}  	$ret->{visibility_str} -	  = $ret->{visibility} -	  ? $visibility_itoa{ $ret->{visibility} } -	  : 'default'; +	  = $visibility_itoa{ $ret->{visibility} // 'default' };  	$ret->{effective_visibility_str} -	  = $visibility_itoa{ $ret->{effective_visibility} }; +	  = $visibility_itoa{ $ret->{effective_visibility} // 'default' };  	my @parsed_messages;  	for my $message ( @{ $ret->{messages} // [] } ) { @@ -461,7 +460,7 @@ sub get {  	my $table = 'in_transit'; -	if ( $opt{with_timestamps} ) { +	if ( $opt{with_timestamps} or $opt{with_polyline} ) {  		$table = 'in_transit_str';  	} @@ -475,13 +474,16 @@ sub get {  		$ret = $res->hash;  	} +	if ( $opt{with_polyline} and $ret ) { +		$ret->{dep_latlon} = [ $ret->{dep_lat}, $ret->{dep_lon} ]; +		$ret->{arr_latlon} = [ $ret->{arr_lat}, $ret->{arr_lon} ]; +	} +  	if ( $opt{with_visibility} and $ret ) {  		$ret->{visibility_str} -		  = $ret->{visibility} -		  ? $visibility_itoa{ $ret->{visibility} } -		  : 'default'; +		  = $visibility_itoa{ $ret->{visibility} // 'default' };  		$ret->{effective_visibility_str} -		  = $visibility_itoa{ $ret->{effective_visibility} }; +		  = $visibility_itoa{ $ret->{effective_visibility} // 'default' };  	}  	if ( $opt{postprocess} and $ret ) { | 
