Commit fd5b343a authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

parse route_info field

parent 036fb77c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
git HEAD

    * Result->route_interesting: Also consider airports
    * Result: Add route_info accessor

Travel::Status::DE::DeutscheBahn 1.04 - Sun May 03 2015

+5 −0
Original line number Diff line number Diff line
@@ -90,6 +90,10 @@ sub display_result {
			@{$line}[ 0 .. 5 ]
		);

		if ( $line->[7] ) {
			print "       " . $line->[7] . "\n";
		}

		if ($show_full_route) {
			print "\n" . $line->[6] . "\n\n\n";
		}
@@ -128,6 +132,7 @@ for my $d ( $status->results() ) {
			$d->info,
			join( "\n",
				map { sprintf( '%-5s  %s', @{$_} ) } $d->route_timetable ),
			$d->route_info,
		]
	);
}
+21 −18
Original line number Diff line number Diff line
@@ -177,6 +177,7 @@ sub results {
		[ 'dest',      './td[@class="route"]//a' ],
		[ 'platform',  './td[@class="platform"]' ],
		[ 'info',      './td[@class="ris"]' ],
		[ 'routeinfo', './td[@class="route"]//span[@class="red bold"]' ],
	);

	@parts = map { [ $_->[0], XML::LibXML::XPathExpression->new( $_->[1] ) ] }
@@ -200,7 +201,7 @@ sub results {

		my @via;
		my $first = 1;
		my ( $time, $train, $route, $dest, $platform, $info )
		my ( $time, $train, $route, $dest, $platform, $info, $routeinfo )
		  = map { get_node( $tr, @{$_} ) } @parts;
		my $e_train_more = ( $tr->findnodes($xp_train_more) )[0];

@@ -216,8 +217,9 @@ sub results {

		$platform  //= q{};
		$info      //= q{};
		$routeinfo //= q{};

		for my $str ( $time, $train, $dest, $platform, $info ) {
		for my $str ( $time, $train, $dest, $platform, $info, $routeinfo ) {
			$str =~ s/\n/ /mg;
			$str =~ tr/ //s;
			$str =~ s/^ +//;
@@ -248,6 +250,7 @@ sub results {
				route_end     => $dest,
				platform      => $platform,
				info_raw      => $info,
				routeinfo_raw => $routeinfo,
			)
		);
	}
+17 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ use parent 'Class::Accessor';
our $VERSION = '1.04';

Travel::Status::DE::DeutscheBahn::Result->mk_ro_accessors(
	qw(date time train route_end route_raw platform info_raw));
	qw(date time train route_end route_raw platform info_raw routeinfo_raw));

sub new {
	my ( $obj, %conf ) = @_;
@@ -75,6 +75,17 @@ sub route {
	return @stops;
}

sub route_info {
	my ($self) = @_;

	my $route_info = $self->routeinfo_raw;

	$route_info =~ s{ ^ [\s\n]+ }{}x;
	$route_info =~ s{ [\s\n]+ $ }{}x;

	return $route_info;
}

sub route_interesting {
	my ( $self, $max_parts ) = @_;

@@ -264,6 +275,11 @@ B<route_raw>.
Similar to B<route>.  however, this function returns a list of array
references of the form C<< [ arrival time, station name ] >>.

=item $result->route_info

Returns a string containing information related to the train's route, such as
"landslide between X and Y, expect delays".

=item $result->time

Returns the arrival/departure time as string in "hh:mm" format.