From 1557c7162f2192acd1a3970f03581a0b516af193 Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Sun, 25 Feb 2024 09:04:27 +0100 Subject: Update ÖBB productbits and add descriptions to list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/hafas | 12 ++++++++---- lib/Travel/Routing/DE/HAFAS.pm | 22 +++++++++++++++++++--- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/bin/hafas b/bin/hafas index d5f0612..dad10d3 100755 --- a/bin/hafas +++ b/bin/hafas @@ -156,10 +156,14 @@ sub parse_mot_options { my $desc = Travel::Routing::DE::HAFAS::get_service($service); if ($desc) { my @mots = @{ $desc->{productbits} }; - @mots = grep { $_ ne 'x' } @mots; - @mots = uniq @mots; - @mots = sort @mots; - say join( "\n", @mots ); + for my $mot ( @{ $desc->{productbits} } ) { + if ( ref($mot) eq 'ARRAY' ) { + printf( "%-10s %s\n", @{$mot} ); + } + else { + say $mot; + } + } exit 0; } else { diff --git a/lib/Travel/Routing/DE/HAFAS.pm b/lib/Travel/Routing/DE/HAFAS.pm index 0950c8e..4fdcfa5 100644 --- a/lib/Travel/Routing/DE/HAFAS.pm +++ b/lib/Travel/Routing/DE/HAFAS.pm @@ -108,8 +108,19 @@ my %hafas_instance = ( 'ÖBB' => { mgate => 'https://fahrplan.oebb.at/bin/mgate.exe', name => 'Österreichische Bundesbahnen', - productbits => - [qw[ice ice ice regio regio s bus ferry u tram ice ondemand ice]], + productbits => [ + [ ice_rj => 'long distance trains' ], + [ sev => 'rail replacement service' ], + [ ic_ec => 'long distance trains' ], + [ d_n => 'night trains and rapid trains' ], + [ regio => 'regional trains' ], + [ s => 'suburban trains' ], + [ bus => 'busses' ], + [ ferry => 'maritime transit' ], + [ u => 'underground' ], + [ tram => 'trams' ], + [ other => 'other transit services' ] + ], request => { client => { id => 'OEBB', @@ -379,7 +390,12 @@ sub mot_mask { my %mot_pos; for my $i ( 0 .. $#{ $hafas_instance{$service}{productbits} } ) { - $mot_pos{ $hafas_instance{$service}{productbits}[$i] } = $i; + if ( ref( $hafas_instance{$service}{productbits}[$i] ) eq 'ARRAY' ) { + $mot_pos{ $hafas_instance{$service}{productbits}[$i][0] } = $i; + } + else { + $mot_pos{ $hafas_instance{$service}{productbits}[$i] } = $i; + } } if ( my @mots = @{ $self->{exclusive_mots} // [] } ) { -- cgit v1.2.3