Unverified Commit 2e14c2e3 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

Fix intermediate stop display for journeys without real-time data, e.g. H-Bahn

parent b410176e
Loading
Loading
Loading
Loading
+11 −15
Original line number Diff line number Diff line
@@ -1593,21 +1593,17 @@ sub startup {

			for my $station ( @{ $journey->{route_after} } ) {
				my $station_desc = $station->[0];
				if ( $station->[2]{sched_arr} and $station->[2]{rt_arr} ) {
					$station_desc .= $station->[2]{sched_arr}->strftime(';%s');
					$station_desc .= $station->[2]{rt_arr}->strftime(';%s');
					if ( $station->[2]{sched_dep} and $station->[2]{rt_dep} ) {
						$station_desc
						  .= $station->[2]{sched_dep}->strftime(';%s');
						$station_desc .= $station->[2]{rt_dep}->strftime(';%s');
					}
					else {
						$station_desc .= ';0;0';
					}
				}
				else {
					$station_desc .= ';0;0;0;0';
				}

				my $sa = $station->[2]{sched_arr};
				my $ra = $station->[2]{rt_arr} || $station->[2]{sched_arr};
				my $sd = $station->[2]{sched_dep};
				my $rd = $station->[2]{rt_dep} || $station->[2]{sched_dep};

				$station_desc .= $sa ? $sa->strftime(';%s') : ';0';
				$station_desc .= $ra ? $ra->strftime(';%s') : ';0';
				$station_desc .= $sd ? $sd->strftime(';%s') : ';0';
				$station_desc .= $rd ? $rd->strftime(';%s') : ';0';

				push( @route, $station_desc );
			}

+8 −4
Original line number Diff line number Diff line
@@ -270,9 +270,11 @@ sub postprocess {
				if ( $times->{rt_arr} ) {
					$times->{rt_arr}
					  = epoch_to_dt( $times->{rt_arr} );
					$times->{rt_arr_countdown}
					  = $times->{rt_arr}->epoch - $epoch;
					$times->{arr_delay}
					  = $times->{rt_arr}->epoch - $times->{sched_arr}->epoch;
				}
				$times->{arr} = $times->{rt_arr} || $times->{sched_arr};
				$times->{arr_countdown} = $times->{arr}->epoch - $epoch;
			}
			if ( $times->{sched_dep}
				and ref( $times->{sched_dep} ) ne 'DateTime' )
@@ -282,9 +284,11 @@ sub postprocess {
				if ( $times->{rt_dep} ) {
					$times->{rt_dep}
					  = epoch_to_dt( $times->{rt_dep} );
					$times->{rt_dep_countdown}
					  = $times->{rt_dep}->epoch - $epoch;
					$times->{dep_delay}
					  = $times->{rt_dep}->epoch - $times->{sched_dep}->epoch;
				}
				$times->{dep} = $times->{rt_dep} || $times->{sched_dep};
				$times->{dep_countdown} = $times->{dep}->epoch - $epoch;
			}
		}
	}
+18 −18
Original line number Diff line number Diff line
@@ -127,19 +127,19 @@
							% if ($station->[0] eq $journey->{arr_name}) {
								% last;
							% }
							% if (($station->[2]{rt_arr_countdown} // 0) > 0 and $station->[2]{rt_arr}) {
								<%= $station->[0] %><br/><%= $station->[2]{rt_arr}->strftime('%H:%M') %>
								% if ($station->[2]{sched_arr} and $station->[2]{sched_arr}->epoch != $station->[2]{rt_arr}->epoch) {
									%= sprintf('(%+d)', ($station->[2]{rt_arr}->epoch - $station->[2]{sched_arr}->epoch ) / 60);
							% if (($station->[2]{arr_countdown} // 0) > 0 and $station->[2]{arr}) {
								<%= $station->[0] %><br/><%= $station->[2]{arr}->strftime('%H:%M') %>
								% if ($station->[2]{arr_delay}) {
									%= sprintf('(%+d)', $station->[2]{arr_delay} / 60);
								% }
								% last;
							% }
							% if (($station->[2]{rt_dep_countdown} // 0) > 0 and $station->[2]{rt_arr} and $station->[2]{rt_dep}) {
							% if (($station->[2]{dep_countdown} // 0) > 0 and $station->[2]{arr} and $station->[2]{dep}) {
								<%= $station->[0] %><br/>
								<%= $station->[2]{rt_arr}->strftime('%H:%M') %> →
								<%= $station->[2]{rt_dep}->strftime('%H:%M') %>
								% if ($station->[2]{sched_dep} and $station->[2]{sched_dep}->epoch != $station->[2]{rt_dep}->epoch) {
									%= sprintf('(%+d)', ($station->[2]{rt_dep}->epoch - $station->[2]{sched_dep}->epoch ) / 60);
								<%= $station->[2]{arr}->strftime('%H:%M') %> →
								<%= $station->[2]{dep}->strftime('%H:%M') %>
								% if ($station->[2]{dep_delay}) {
									%= sprintf('(%+d)', $station->[2]{dep_dely} / 60);
								% }
								% last;
							% }
@@ -152,19 +152,19 @@
							% if ($station->[0] eq $journey->{arr_name}) {
								% last;
							% }
							% if (($station->[2]{rt_arr_countdown} // 0) > 0 and $station->[2]{rt_arr}) {
								<%= $station->[0] %><br/><%= $station->[2]{rt_arr}->strftime('%H:%M') %>
								% if ($station->[2]{sched_arr} and $station->[2]{sched_arr}->epoch != $station->[2]{rt_arr}->epoch) {
									%= sprintf('(%+d)', ($station->[2]{rt_arr}->epoch - $station->[2]{sched_arr}->epoch ) / 60);
							% if (($station->[2]{arr_countdown} // 0) > 0 and $station->[2]{arr}) {
								<%= $station->[0] %><br/><%= $station->[2]{arr}->strftime('%H:%M') %>
								% if ($station->[2]{arr_delay}) {
									%= sprintf('(%+d)', $station->[2]{arr_delay} / 60);
								% }
								% last;
							% }
							% if (($station->[2]{rt_dep_countdown} // 0) > 0 and $station->[2]{rt_arr} and $station->[2]{rt_dep}) {
							% if (($station->[2]{dep_countdown} // 0) > 0 and $station->[2]{arr} and $station->[2]{dep}) {
								<%= $station->[0] %><br/>
								<%= $station->[2]{rt_arr}->strftime('%H:%M') %> →
								<%= $station->[2]{rt_dep}->strftime('%H:%M') %>
								% if ($station->[2]{sched_dep} and $station->[2]{sched_dep}->epoch != $station->[2]{rt_dep}->epoch) {
									%= sprintf('(%+d)', ($station->[2]{rt_dep}->epoch - $station->[2]{sched_dep}->epoch ) / 60);
								<%= $station->[2]{arr}->strftime('%H:%M') %> →
								<%= $station->[2]{dep}->strftime('%H:%M') %>
								% if ($station->[2]{dep_delay}) {
									%= sprintf('(%+d)', $station->[2]{dep_delay} / 60);
								% }
								% last;
							% }
+18 −18
Original line number Diff line number Diff line
@@ -88,19 +88,19 @@
						% if ($journey->{arr_name} and $station->[0] eq $journey->{arr_name}) {
							% last;
						% }
						% if (($station->[2]{rt_arr_countdown} // 0) > 0 and $station->[2]{rt_arr}) {
							<%= $station->[0] %><br/><%= $station->[2]{rt_arr}->strftime('%H:%M') %>
							% if ($station->[2]{sched_arr} and $station->[2]{sched_arr}->epoch != $station->[2]{rt_arr}->epoch) {
								%= sprintf('(%+d)', ($station->[2]{rt_arr}->epoch - $station->[2]{sched_arr}->epoch ) / 60);
						% if (($station->[2]{arr_countdown} // 0) > 0 and $station->[2]{arr}) {
							<%= $station->[0] %><br/><%= $station->[2]{arr}->strftime('%H:%M') %>
							% if ($station->[2]{arr_delay}) {
								%= sprintf('(%+d)', $station->[2]{arr_delay} / 60);
							% }
							% last;
						% }
						% if (($station->[2]{rt_dep_countdown} // 0) > 0 and $station->[2]{rt_arr} and $station->[2]{rt_dep}) {
						% if (($station->[2]{dep_countdown} // 0) > 0 and $station->[2]{arr} and $station->[2]{dep}) {
							<%= $station->[0] %><br/>
							<%= $station->[2]{rt_arr}->strftime('%H:%M') %> →
							<%= $station->[2]{rt_dep}->strftime('%H:%M') %>
							% if ($station->[2]{sched_dep} and $station->[2]{sched_dep}->epoch != $station->[2]{rt_dep}->epoch) {
								%= sprintf('(%+d)', ($station->[2]{rt_dep}->epoch - $station->[2]{sched_dep}->epoch ) / 60);
							<%= $station->[2]{arr}->strftime('%H:%M') %> →
							<%= $station->[2]{dep}->strftime('%H:%M') %>
							% if ($station->[2]{dep_delay}) {
								%= sprintf('(%+d)', $station->[2]{dep_delay} / 60);
							% }
							% last;
						% }
@@ -113,21 +113,21 @@
						% if ($journey->{arr_name} and $station->[0] eq $journey->{arr_name}) {
							% last;
						% }
						% if (($station->[2]{rt_arr_countdown} // 0) > 0 and $station->[2]{rt_arr}) {
						% if (($station->[2]{arr_countdown} // 0) > 0 and $station->[2]{arr}) {
							Nächster Halt:<br/>
							<%= $station->[0] %><br/><%= $station->[2]{rt_arr}->strftime('%H:%M') %>
							% if ($station->[2]{sched_arr} and $station->[2]{sched_arr}->epoch != $station->[2]{rt_arr}->epoch) {
								%= sprintf('(%+d)', ($station->[2]{rt_arr}->epoch - $station->[2]{sched_arr}->epoch ) / 60);
							<%= $station->[0] %><br/><%= $station->[2]{arr}->strftime('%H:%M') %>
							% if ($station->[2]{arr_delay}) {
								%= sprintf('(%+d)', $station->[2]{arr_delay} / 60);
							% }
							% last;
						% }
						% if (($station->[2]{rt_dep_countdown} // 0) > 0 and $station->[2]{rt_arr} and $station->[2]{rt_dep}) {
						% if (($station->[2]{dep_countdown} // 0) > 0 and $station->[2]{arr} and $station->[2]{dep}) {
							Aktueller Halt:<br/>
							<%= $station->[0] %><br/>
							<%= $station->[2]{rt_arr}->strftime('%H:%M') %> →
							<%= $station->[2]{rt_dep}->strftime('%H:%M') %>
							% if ($station->[2]{sched_dep} and $station->[2]{sched_dep}->epoch != $station->[2]{rt_dep}->epoch) {
								%= sprintf('(%+d)', ($station->[2]{rt_dep}->epoch - $station->[2]{sched_dep}->epoch ) / 60);
							<%= $station->[2]{arr}->strftime('%H:%M') %> →
							<%= $station->[2]{dep}->strftime('%H:%M') %>
							% if ($station->[2]{dep_delay}) {
								%= sprintf('(%+d)', $station->[2]{dep_delay} / 60);
							% }
							% last;
						% }