diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2025-09-19 21:10:20 +0200 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2025-09-19 21:10:41 +0200 |
commit | 398297f678eb6dbff2b11d7aaac51caf493ef1ac (patch) | |
tree | 3c12f463caa832957b9f14742f42cfa7e82d2253 | |
parent | 4b7e3b810a5649062c2fe426211399a199bb9d3a (diff) |
Add AVV Augsburg
Short code may change, as AVV also means Aachener Verkehrsverbund
-rw-r--r-- | lib/Travel/Status/DE/EFA.pm | 11 | ||||
-rw-r--r-- | lib/Travel/Status/DE/EFA/Services.pm.PL | 18 |
2 files changed, 23 insertions, 6 deletions
diff --git a/lib/Travel/Status/DE/EFA.pm b/lib/Travel/Status/DE/EFA.pm index 25754f7..6d3e92c 100644 --- a/lib/Travel/Status/DE/EFA.pm +++ b/lib/Travel/Status/DE/EFA.pm @@ -11,6 +11,7 @@ use Carp qw(confess cluck); use DateTime; use DateTime::Format::Strptime; use Encode qw(encode); +use IO::Socket::SSL; use JSON; use Travel::Status::DE::EFA::Departure; use Travel::Status::DE::EFA::Info; @@ -66,6 +67,7 @@ sub new_p { sub new { my ( $class, %opt ) = @_; + my $tls_insecure = 0; $opt{timeout} //= 10; if ( $opt{timeout} <= 0 ) { delete $opt{timeout}; @@ -105,6 +107,9 @@ sub new { $opt{efa_url} .= '/XML_DM_REQUEST'; } $opt{time_zone} //= $service->{time_zone}; + if ( not $service->{tls_verify} ) { + $tls_insecure = 1; + } } } @@ -248,6 +253,12 @@ sub new { } else { my %lwp_options = %{ $opt{lwp_options} // { timeout => 10 } }; + if ($tls_insecure) { + $lwp_options{ssl_opts}{SSL_verify_mode} + = IO::Socket::SSL::SSL_VERIFY_NONE; + $lwp_options{ssl_opts}{verify_hostname} = 0; + } + $self->{ua} = LWP::UserAgent->new(%lwp_options); $self->{ua}->env_proxy; } diff --git a/lib/Travel/Status/DE/EFA/Services.pm.PL b/lib/Travel/Status/DE/EFA/Services.pm.PL index 964c9be..895faaa 100644 --- a/lib/Travel/Status/DE/EFA/Services.pm.PL +++ b/lib/Travel/Status/DE/EFA/Services.pm.PL @@ -17,12 +17,13 @@ sub load_instance { my $data = $json->decode( scalar read_file("ext/transport-apis/data/${path}-efa.json") ); my %ret = ( - name => $opt{name} // $data->{name} =~ s{ *[(][^)]+[)]}{}r, - homepage => $data->{attribution}{homepage}, - url => $opt{url} // $data->{options}{endpoint} =~ s{ / $ }{}rx, - time_zone => $data->{timezone}, - languages => $data->{supportedLanguages}, - coverage => { + name => $opt{name} // $data->{name} =~ s{ *[(][^)]+[)]}{}r, + homepage => $data->{attribution}{homepage}, + url => $opt{url} // $data->{options}{endpoint} =~ s{ / $ }{}rx, + time_zone => $data->{timezone}, + languages => $data->{supportedLanguages}, + tls_verify => $opt{tls_verify} // 1, + coverage => { area => $data->{coverage}{realtimeCoverage}{area}, regions => $data->{coverage}{realtimeCoverage}{region} // [] }, @@ -35,6 +36,11 @@ sub load_instance { # VRT: Encoding issues # VVSt: NXDOMAIN my %efa_instance = ( + AVV => { + url => 'https://fahrtauskunft.avv-augsburg.de/efa', + name => 'Augsburger Verkehrs- & Tarifverbund', + tls_verify => 0, + }, BEG => { url => 'https://bahnland-bayern.de/efa', name => 'Bayerische Eisenbahngesellschaft', |