Unverified Commit eba2e6a7 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

Use URI::Escape to escape umlauts in place/name arguments

This fixes VVO and LinzAG issues with umlauts
parent 61cf8cfb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ Module::Build->new(
		'List::Util'                 => 0,
		'LWP::UserAgent'             => 0,
		'LWP::Protocol::https'       => 0,
		'URI::Escape'                => 0,
	},
	sign       => 1,
	meta_merge => {
+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ requires 'JSON';
requires 'List::Util';
requires 'LWP::UserAgent';
requires 'LWP::Protocol::https';
requires 'URI::Escape';

on test => sub {
	requires 'File::Slurp';
+9 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ use Travel::Status::DE::EFA::Services;
use Travel::Status::DE::EFA::Stop;
use Travel::Status::DE::EFA::Trip;
use LWP::UserAgent;
use URI::Escape qw(uri_escape);

sub new_p {
	my ( $class, %opt ) = @_;
@@ -68,6 +69,7 @@ sub new_p {
sub new {
	my ( $class, %opt ) = @_;

	my $encoding     = 'UTF-8';
	my $tls_insecure = 0;
	$opt{timeout} //= 10;
	if ( $opt{timeout} <= 0 ) {
@@ -111,6 +113,9 @@ sub new {
			if ( not $service->{tls_verify} ) {
				$tls_insecure = 1;
			}
			if ( $service->{encoding} ) {
				$encoding = $service->{encoding};
			}
		}
	}

@@ -232,14 +237,16 @@ sub new {
			itdDateYear       => $dt->year,
			itdTimeHour       => $dt->hour,
			itdTimeMinute     => $dt->minute,
			name_dm           => encode( 'UTF-8', $opt{name} ),
			name_dm           =>
			  uri_escape( encode( $encoding, $opt{name} ), '^A-Za-z0-9-._~ ' ),
		};
	}

	if ( $opt{place} ) {
		$self->{post}{placeInfo_dm}  = 'invalid';
		$self->{post}{placeState_dm} = 'empty';
		$self->{post}{place_dm}      = encode( 'UTF-8', $opt{place} );
		$self->{post}{place_dm}
		  = uri_escape( encode( $encoding, $opt{place} ), '^A-Za-z0-9-._~ ' );
	}

	if ( $opt{full_routes} ) {
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ apt-get -y install \
	apt-file dh-make-perl libmodule-build-perl \
	libclass-accessor-perl libdatetime-perl libdatetime-format-strptime-perl \
	libexception-class-perl libfile-slurp-perl libwww-perl \
	libjson-perl libjson-xs-perl \
	libjson-perl libjson-xs-perl liburi-perl \
	libtest-compile-perl libtest-pod-perl \
	libtest-fatal-perl libtest-simple-perl