Commit 506b66a8 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

add support for timeouts, do not die if XML tree parsing failed

parent 8a904bc1
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ use Travel::Status::DE::EFA;

my $efa_url = 'http://efa.vrr.de/vrr/XSLT_DM_REQUEST';
my ( $date, $time, $input_type, $list_lines, $offset, $relative_times );
my ($timeout);
my ( @grep_lines, @grep_platforms );

@ARGV = map { decode( 'UTF-8', $_ ) } @ARGV;
@@ -29,6 +30,7 @@ GetOptions(
	'p|platform=s@' => \@grep_platforms,
	'r|relative'    => \$relative_times,
	't|time=s'      => \$time,
	'timeout=i'     => \$timeout,
	'u|efa-url=s'   => \$efa_url,
	'V|version'     => \&show_version,

@@ -55,6 +57,7 @@ my $status = Travel::Status::DE::EFA->new(
	name    => $input,
	time    => $time,
	type    => $input_type,
	timeout => $timeout // 10,
);

sub show_help {
+13 −3
Original line number Diff line number Diff line
@@ -114,7 +114,9 @@ sub new {

	$self->{xml} = $response->decoded_content;

	$self->{tree} = XML::LibXML->load_xml( string => $self->{xml}, );
	$self->{tree} = XML::LibXML->load_xml(
		string => $self->{xml},
	);

	#say $self->{tree}->toString(1);

@@ -126,9 +128,13 @@ sub new {
sub new_from_xml {
	my ( $class, %opt ) = @_;

	my $self = { xml => $opt{xml}, };
	my $self = {
		xml => $opt{xml},
	};

	$self->{tree} = XML::LibXML->load_xml( string => $self->{xml}, );
	$self->{tree} = XML::LibXML->load_xml(
		string => $self->{xml},
	);

	return bless( $self, $class );
}
@@ -277,6 +283,10 @@ sub results {
	my ($self) = @_;
	my @results;

	if ( not $self->{tree} ) {
		return;
	}

	my $xp_element = XML::LibXML::XPathExpression->new('//itdDeparture');

	my $xp_date  = XML::LibXML::XPathExpression->new('./itdDateTime/itdDate');