summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2025-09-19 21:10:20 +0200
committerBirte Kristina Friesel <derf@finalrewind.org>2025-09-19 21:10:41 +0200
commit398297f678eb6dbff2b11d7aaac51caf493ef1ac (patch)
tree3c12f463caa832957b9f14742f42cfa7e82d2253
parent4b7e3b810a5649062c2fe426211399a199bb9d3a (diff)
Add AVV Augsburg
Short code may change, as AVV also means Aachener Verkehrsverbund
-rw-r--r--lib/Travel/Status/DE/EFA.pm11
-rw-r--r--lib/Travel/Status/DE/EFA/Services.pm.PL18
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',