Loading lib/Travel/Status/DE/IRIS.pm +47 −20 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ sub new { developer_mode => $opt{developer_mode}, iris_base => $opt{iris_base} // 'https://iris.noncd.db.de/iris-tts/timetable', keep_transfers => $opt{keep_transfers}, lookahead => $opt{lookahead} // ( 2 * 60 ), lookbehind => $opt{lookbehind} // ( 0 * 60 ), main_cache => $opt{main_cache}, Loading Loading @@ -83,6 +84,7 @@ sub new { my $ref_status = Travel::Status::DE::IRIS->new( datetime => $self->{datetime}, developer_mode => $self->{developer_mode}, keep_transfers => $self->{keep_transfers}, lookahead => $self->{lookahead}, lookbehind => $self->{lookbehind}, station => $ref->{uic}, Loading Loading @@ -124,6 +126,8 @@ sub new { $self->get_realtime; if ( not $self->{keep_transfers} ) { # tra (transfer?) indicates a train changing its ID, so there are two # results for the same train. Remove the departure-only trains from the # result set and merge them with their arrival-only counterpart. Loading @@ -132,7 +136,8 @@ sub new { my @merge_candidates = grep { $_->transfer and $_->departure } @{ $self->{results} }; @{ $self->{results} } = grep { not( $_->transfer and $_->departure ) } @{ $self->{results} }; = grep { not( $_->transfer and $_->departure ) } @{ $self->{results} }; for my $transfer (@merge_candidates) { my $result Loading @@ -142,6 +147,7 @@ sub new { $result->merge_with_departure($transfer); } } } @{ $self->{results} } = grep { my $d = $_->departure // $_->arrival; Loading Loading @@ -654,6 +660,27 @@ current date and time. IRIS base url, defaults to C<< http://iris.noncd.db.de/iris-tts/timetable >>. =item B<keep_transfers> => I<bool> A train may change its ID and number at a station, indicating that although the previous logical train ends here, the physical train will continue its journey under a new number to a new destination. A notable example is the Berlin Ringbahn, which travels round and round from Berlin SE<uuml>dkreuz to Berlin SE<uuml>dkreuz. Each train number corresponds to a single revolution, but the actual trains just keep going. The IRIS backend returns two results for each transfer train: An arrival-only result using the old ID (linked to the new one) and a departure-only result using the new ID (linked to the old one). By default, this library merges these into a single result with both arrival and departure time. Train number, ID, and route are taken from the departure only. The original train ID and number are available using the B<old_train_id> and B<old_train_no> accessors. In case this is not desirable (e.g. because you intend to track a single train to its destination station and do not want to implement special cases for transfer trains), set B<keep_transfers> to a true value. In this case, backend data will be reported as-is and transfer trains will not be merged. =item B<lookahead> => I<int> Compute only results which are scheduled less than I<int> minutes in the Loading lib/Travel/Status/DE/IRIS/Result.pm +1 −1 Original line number Diff line number Diff line Loading @@ -1013,7 +1013,7 @@ see also B<is_transfer>. =item $result->old_train_no Number of the pre-tarnsfer train, unique per day. E.g. C<< 2225 >> for C<< IC 2225 >>. See also B<is_transfer>. Only defined if a transfer took C<< IC 2225 >>. Only defined if a transfer took place, see also B<is_transfer>. =item $result->origin Loading Loading
lib/Travel/Status/DE/IRIS.pm +47 −20 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ sub new { developer_mode => $opt{developer_mode}, iris_base => $opt{iris_base} // 'https://iris.noncd.db.de/iris-tts/timetable', keep_transfers => $opt{keep_transfers}, lookahead => $opt{lookahead} // ( 2 * 60 ), lookbehind => $opt{lookbehind} // ( 0 * 60 ), main_cache => $opt{main_cache}, Loading Loading @@ -83,6 +84,7 @@ sub new { my $ref_status = Travel::Status::DE::IRIS->new( datetime => $self->{datetime}, developer_mode => $self->{developer_mode}, keep_transfers => $self->{keep_transfers}, lookahead => $self->{lookahead}, lookbehind => $self->{lookbehind}, station => $ref->{uic}, Loading Loading @@ -124,6 +126,8 @@ sub new { $self->get_realtime; if ( not $self->{keep_transfers} ) { # tra (transfer?) indicates a train changing its ID, so there are two # results for the same train. Remove the departure-only trains from the # result set and merge them with their arrival-only counterpart. Loading @@ -132,7 +136,8 @@ sub new { my @merge_candidates = grep { $_->transfer and $_->departure } @{ $self->{results} }; @{ $self->{results} } = grep { not( $_->transfer and $_->departure ) } @{ $self->{results} }; = grep { not( $_->transfer and $_->departure ) } @{ $self->{results} }; for my $transfer (@merge_candidates) { my $result Loading @@ -142,6 +147,7 @@ sub new { $result->merge_with_departure($transfer); } } } @{ $self->{results} } = grep { my $d = $_->departure // $_->arrival; Loading Loading @@ -654,6 +660,27 @@ current date and time. IRIS base url, defaults to C<< http://iris.noncd.db.de/iris-tts/timetable >>. =item B<keep_transfers> => I<bool> A train may change its ID and number at a station, indicating that although the previous logical train ends here, the physical train will continue its journey under a new number to a new destination. A notable example is the Berlin Ringbahn, which travels round and round from Berlin SE<uuml>dkreuz to Berlin SE<uuml>dkreuz. Each train number corresponds to a single revolution, but the actual trains just keep going. The IRIS backend returns two results for each transfer train: An arrival-only result using the old ID (linked to the new one) and a departure-only result using the new ID (linked to the old one). By default, this library merges these into a single result with both arrival and departure time. Train number, ID, and route are taken from the departure only. The original train ID and number are available using the B<old_train_id> and B<old_train_no> accessors. In case this is not desirable (e.g. because you intend to track a single train to its destination station and do not want to implement special cases for transfer trains), set B<keep_transfers> to a true value. In this case, backend data will be reported as-is and transfer trains will not be merged. =item B<lookahead> => I<int> Compute only results which are scheduled less than I<int> minutes in the Loading
lib/Travel/Status/DE/IRIS/Result.pm +1 −1 Original line number Diff line number Diff line Loading @@ -1013,7 +1013,7 @@ see also B<is_transfer>. =item $result->old_train_no Number of the pre-tarnsfer train, unique per day. E.g. C<< 2225 >> for C<< IC 2225 >>. See also B<is_transfer>. Only defined if a transfer took C<< IC 2225 >>. Only defined if a transfer took place, see also B<is_transfer>. =item $result->origin Loading