diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2025-01-19 14:08:26 +0100 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2025-01-19 14:08:26 +0100 |
commit | 3e6db67758d71ed9f2474d2cc3d4e760814ed346 (patch) | |
tree | f2097af45da648d239eca793be22901d8ac71d22 /lib/Travel/Routing/DE | |
parent | d9303cc0f39d48b670c2165bbf1820b901aa459e (diff) |
DBRIS: Add documentation
Diffstat (limited to 'lib/Travel/Routing/DE')
-rw-r--r-- | lib/Travel/Routing/DE/DBRIS.pm | 159 |
1 files changed, 158 insertions, 1 deletions
diff --git a/lib/Travel/Routing/DE/DBRIS.pm b/lib/Travel/Routing/DE/DBRIS.pm index deba8ad..70b71ba 100644 --- a/lib/Travel/Routing/DE/DBRIS.pm +++ b/lib/Travel/Routing/DE/DBRIS.pm @@ -25,7 +25,6 @@ Travel::Routing::DE::DBRIS->mk_ro_accessors(qw(earlier later)); sub new { my ( $obj, %conf ) = @_; - my $service = $conf{service}; my $ua = $conf{user_agent}; @@ -278,3 +277,161 @@ sub connections { # }}} 1; + +__END__ + +=head1 NAME + +Travel::Routing::DE::DBRIS - Interface to the bahn.de itinerary service + +=head1 SYNOPSIS + + use Travel::Routing::DE::DBRIS; + + # use Travel::Status::DE::DBRIS to obtain $from and $to objects + # (must be Travel::Status::DE::DBRIS::Location instances) + + my $ris = Travel::Routing::DE::DBRIS->new( + from => $from_location, + to => $to_location, + ); + + if (my $err = $ris->errstr) { + die("Request error: ${err}\n"); + } + + for my $con ( $ris->connections ) { + for my $seg ($con->segments) { + if ( not ($seg->is_transfer or $seg->is_walk) ) { + printf("%s -> %s\n%s ab %s\n%s an %s\n\n", + $seg->train_mid, + $seg->direction, + $seg->dep->strftime('%H:%M'), + $seg->dep_name, + $seg->arr->strftime('%H:%M'), + $seg->arr_name, + ); + } + } + print "\n\n"; + } + +=head1 VERSION + +version 0.01 + +=head1 DESCRIPTION + +Travel::Routing::DE::DBRIS is an interface to the bahn.de itinerary service. + +=head1 METHODS + +=over + +=item $ris = Travel::Routing::DE::DBRIS->new(I<%opt>) + +Request connections as specified by I<%opt> and return a new +Travel::Routing::DE::DBRIS instance with the results. Dies if the wrong I<%opt> +were passed. The B<origin> and B<destination> keys are mandatory. + +=over + +=item B<origin> => I<stop> (mandatory) + +A Travel::Status::DE::DBRIS::Location(3pm) instance describing the origin of +the requested itinerary. + +=item B<destination> => I<stop> (mandatory) + +A Travel::Status::DE::DBRIS::Location(3pm) instance describing the destination +of the requested itinerary. + +=item B<cache> => I<cache> + +A Cache::File(3pm) instance used for caching bahn.de requests. + +=item B<datetime> => I<datetime> + +Request departures on or after I<datetime> (DateTime(3pm) instance). +Default: now. + +=item B<language> => I<lang> + +Request text components to be provided in I<lang> (ISO 639-1 language code). +Known supported languages are: cs da de en es fr it nl pl. +Default: de. + +=item B<modes_of_transit> => I<arrayref> + +Only request connections using the modes of transit specified in I<arrayref>. +Default: ICE, EC_IC, IR, REGIONAL, SBAHN, BUS, SCHIFF, UBAHN, TRAM, ANRUFPFLICHTIG. + +=item B<discounts> => I<arrayref> + +Consider discounts specified in I<arrayref> when determining offer prices. +Supported items: bc25, bs25-first, bc50, bc50-first, bc100, bc100-first. +Default: none. + +=item B<user_agent> => I<user agent> + +Use I<user agent> for requests. +Default: A new LWP::UserAgent(3pm) object with env_proxy enabled and a timeout +of ten seconds. + +=item B<lwp_options> => I<hashref> + +Pass I<hashref> to C<< LWP::UserAgent->new >>. +Default: C<< { timeout => 10 } >>. + +=back + +=item $ris->errstr + +Returns a string describing a HTTP or bahn.de error, if any such error occured. +Returns undef otherwise. + +=item $ris->connections + +Returns a list of Travel::Routing::DE::DBRIS::Connection(3pm) objects, each of +which describes a singre connction from I<origin> to I<destination>. + +=back + +=head1 DIAGNOSTICS + +when the B<developer_mode> argument to B<new> is set to a true value, +Travel::Routing::DE::DBRIS prints raw bahn.de requests and responses to stdout. + +None. + +=head1 DEPENDENCIES + +=over + +=item * Class::Accessor(3pm) + +=item * DateTime(3pm) + +=item * DateTime::Format::Strptime(3pm) + +=item * LWP::UserAgent(3pm) + +=item * Travel::Status::DE::DBRIS(3pm) + +=back + +=head1 BUGS AND LIMITATIONS + +This module is very much work-in-progress. + +=head1 SEE ALSO + +Travel::Routing::DE::DBRIS::Connection(3pm) + +=head1 AUTHOR + +Copyright (C) 2025 by Birte Kristina Friesel E<lt>derf@finalrewind.orgE<gt> + +=head1 LICENSE + +This module is licensed under the same terms as Perl itself. |