Commit 38c853a1 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

Fix a crash when a train has unscheduled additional stops starting at the selected station

parent af3e174a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ no if $] >= 5.018, warnings => 'experimental::smartmatch';

our $VERSION = '0.06';

use Carp;
use DateTime;
use DateTime::Format::Strptime;
use Encode qw(decode);
+7 −5
Original line number Diff line number Diff line
@@ -254,6 +254,7 @@ sub get_realtime {
		if ($e_ar) {
			$result->add_ar(
				arrival_ts      => $e_ar->getAttribute('ct'),
				plan_arrivaL_ts => $e_ar->getAttribute('pt'),
				platform        => $e_ar->getAttribute('cp'),
				route_pre       => $e_ar->getAttribute('cpth'),
				sched_route_pre => $e_ar->getAttribute('ppth'),
@@ -263,6 +264,7 @@ sub get_realtime {
		if ($e_dp) {
			$result->add_dp(
				departure_ts      => $e_dp->getAttribute('ct'),
				plan_departure_ts => $e_dp->getAttribute('pt'),
				platform          => $e_dp->getAttribute('cp'),
				route_post        => $e_dp->getAttribute('cpth'),
				sched_route_post  => $e_dp->getAttribute('ppth'),
+15 −1
Original line number Diff line number Diff line
@@ -102,6 +102,13 @@ sub add_ar {
		time_zone => 'Europe/Berlin',
	);

	# unscheduled arrivals may not appear in the plan, but we do need to
	# know their planned arrival time
	if ( $attrib{plan_arrival_ts} ) {
		$self->{sched_arrival}
		  = $strp->parse_datetime( $attrib{plan_arrival_ts} );
	}

	if ( $attrib{arrival_ts} ) {
		$self->{arrival} = $strp->parse_datetime( $attrib{arrival_ts} );
		$self->{delay}
@@ -139,6 +146,13 @@ sub add_dp {
		time_zone => 'Europe/Berlin',
	);

	# unscheduled arrivals may not appear in the plan, but we do need to
	# know their planned arrival time
	if ( $attrib{plan_departure_ts} ) {
		$self->{sched_departure}
		  = $strp->parse_datetime( $attrib{plan_departure_ts} );
	}

	if ( $attrib{departure_ts} ) {
		$self->{departure} = $strp->parse_datetime( $attrib{departure_ts} );
		$self->{delay}