From eca26bdf4b0082a852638997534a85d30d4187f2 Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Sat, 4 Jan 2025 21:13:15 +0100 Subject: Consistently use id_num and id_code accessor names for stop IDs --- bin/efa-m | 3 ++- lib/Travel/Status/DE/EFA.pm | 10 ++++++---- lib/Travel/Status/DE/EFA/Departure.pm | 13 ++++++++----- lib/Travel/Status/DE/EFA/Stop.pm | 11 +++++------ lib/Travel/Status/DE/EFA/Trip.pm | 10 ++++++---- 5 files changed, 27 insertions(+), 20 deletions(-) diff --git a/bin/efa-m b/bin/efa-m index 7777832..9002540 100755 --- a/bin/efa-m +++ b/bin/efa-m @@ -330,7 +330,8 @@ sub show_coord { sub show_stopfinder { my $max_len = max map { length( $_->full_name ) } $efa->results; for my $stop ( $efa->results ) { - printf( "%-${max_len}s %s\n", $stop->full_name, $stop->id ); + printf( "%-${max_len}s %s %s\n", + $stop->full_name, $stop->id_num, $stop->id_code ); } } diff --git a/lib/Travel/Status/DE/EFA.pm b/lib/Travel/Status/DE/EFA.pm index 46ba93d..214fab1 100644 --- a/lib/Travel/Status/DE/EFA.pm +++ b/lib/Travel/Status/DE/EFA.pm @@ -441,7 +441,8 @@ sub stop { place => $place, full_name => $point->{name}, name => $point->{name} =~ s{\Q$place\E,? ?}{}r, - id => $point->{stateless}, + id_num => $point->{ref}{id}, + id_code => $point->{ref}{gid}, ); return $self->{stop}; @@ -468,7 +469,8 @@ sub stops { place => $stop->{place}, name => $stop->{name}, full_name => $stop->{nameWithPlace}, - id => $stop->{stopID}, + id_num => $stop->{stopID}, + id_code => $stop->{gid}, ) ); } @@ -588,8 +590,8 @@ sub results_stopfinder { place => $stop->{ref}{place}, full_name => $stop->{name}, name => $stop->{object}, - id => $stop->{stateless}, - stop_id => $stop->{ref}{gid}, + id_num => $stop->{ref}{id}, + id_code => $stop->{ref}{gid}, ) ); } diff --git a/lib/Travel/Status/DE/EFA/Departure.pm b/lib/Travel/Status/DE/EFA/Departure.pm index fb7b374..de135af 100644 --- a/lib/Travel/Status/DE/EFA/Departure.pm +++ b/lib/Travel/Status/DE/EFA/Departure.pm @@ -15,7 +15,7 @@ our $VERSION = '3.05'; Travel::Status::DE::EFA::Departure->mk_ro_accessors( qw(countdown datetime delay destination is_cancelled key line lineref mot occupancy operator origin platform platform_db platform_name rt_datetime - sched_datetime stateless stop_id train_type train_name train_no type) + sched_datetime stateless stop_id_num train_type train_name train_no type) ); my @mot_mapping = qw{ @@ -69,7 +69,7 @@ sub new { platform_type => $departure->{pointType}, key => $departure->{servingLine}{key}, stateless => $departure->{servingLine}{stateless}, - stop_id => $departure->{stopID}, + stop_id_num => $departure->{stopID}, line => $departure->{servingLine}{symbol}, train_type => $departure->{servingLine}{trainType}, train_name => $departure->{servingLine}{trainName}, @@ -154,7 +154,8 @@ sub parse_route { sched_dep => $dep, arr_delay => $ref->{arrValid} ? $ref->{arrDelay} : undef, dep_delay => $ref->{depValid} ? $ref->{depDelay} : undef, - id => $ref->{id}, + id_num => $ref->{id}, + id_code => $ref->{gid}, full_name => $stop->{name}, place => $stop->{place}, name => $stop->{nameWO}, @@ -176,7 +177,9 @@ sub id { return $self->{id} = sprintf( '%s@%d(%s)%d', $self->stateless =~ s{ }{}gr, - scalar $self->route_pre ? ( $self->route_pre )[0]->id : $self->stop_id, + scalar $self->route_pre + ? ( $self->route_pre )[0]->id + : $self->stop_id_num, $self->sched_datetime->strftime('%Y%m%d'), $self->key ); } @@ -342,7 +345,7 @@ may be recent news related to the line's schedule. Stringified unique(?) identifier of this departure; suitable for passing to Travel::Status::DE::EFA->new(stopseq) after decomposing it again. -The returned string combines B, B (or the ID of the first +The returned string combines B, B (or the ID of the first stop in B, if present), B, and B. =item $departure->is_cancelled diff --git a/lib/Travel/Status/DE/EFA/Stop.pm b/lib/Travel/Status/DE/EFA/Stop.pm index 517d6a8..7d2036f 100644 --- a/lib/Travel/Status/DE/EFA/Stop.pm +++ b/lib/Travel/Status/DE/EFA/Stop.pm @@ -12,7 +12,7 @@ Travel::Status::DE::EFA::Stop->mk_ro_accessors( qw(sched_arr rt_arr arr arr_delay sched_dep rt_dep dep dep_delay occupancy delay distance_m - place name full_name id stop_id latlon + place name full_name id_num id_code latlon platform niveau) ); @@ -152,14 +152,13 @@ Delay in minutes. Departure delya if available, arrival delay otherwise. Distance from request coordinates in meters. undef if the object has not been obtained by means of a coord request. -=item $stop->id +=item $stop->id_num -Stop ID. +Stop ID (numeric). -=item $stop->stop_id +=item $stop->id_code -The other kind of stop ID. -Yes, EFA has two. +Stop ID (code). =item $stop->place diff --git a/lib/Travel/Status/DE/EFA/Trip.pm b/lib/Travel/Status/DE/EFA/Trip.pm index a4fc9f0..d038e6a 100644 --- a/lib/Travel/Status/DE/EFA/Trip.pm +++ b/lib/Travel/Status/DE/EFA/Trip.pm @@ -49,6 +49,7 @@ sub polyline { my ( $self, %opt ) = @_; if ( $opt{fallback} and not @{ $self->{polyline} // [] } ) { + # TODO add $_->{id} as well? return map { $_->{latlon} } $self->route; } @@ -77,7 +78,7 @@ sub route { for my $stop ( @{ $self->{route_raw} // [] } ) { my $chain = $stop; - my ( $platform, $place, $name, $name_full, $stop_id ); + my ( $platform, $place, $name, $name_full, $id_num, $id_code ); while ( $chain->{type} ) { if ( $chain->{type} eq 'platform' ) { $platform = $chain->{properties}{platformName} @@ -86,7 +87,8 @@ sub route { elsif ( $chain->{type} eq 'stop' ) { $name = $chain->{disassembledName}; $name_full = $chain->{name}; - $stop_id = $chain->{properties}{stopId}; + $id_code = $chain->{id}; + $id_num = $chain->{properties}{stopId}; } elsif ( $chain->{type} eq 'locality' ) { $place = $chain->{name}; @@ -106,8 +108,8 @@ sub route { place => $place, niveau => $stop->{niveau}, platform => $platform, - id => $stop->{id}, - stop_id => $stop_id, + id_code => $id_code, + id_num => $id_num, ) ); } -- cgit v1.2.3