diff options
Diffstat (limited to 'rhautoimport.pm')
-rw-r--r-- | rhautoimport.pm | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/rhautoimport.pm b/rhautoimport.pm index bb0c015..6a7678f 100644 --- a/rhautoimport.pm +++ b/rhautoimport.pm @@ -33,7 +33,7 @@ use IO::Handle; use LWP::Simple; use XML::Feed; use RHRD::rddb; -use JSON; +use JSON::MaybeXS; use constant { @@ -106,7 +106,8 @@ sub parse_result my $result; eval { - $result = from_json($result_json); + my $j = JSON::MaybeXS->new(utf8 => 0); + $result = $j->decode($result_json); 1; } or do { $log .= "\n!! error parsing import result !!\n"; @@ -147,7 +148,7 @@ sub import_uri my %request; $request{'LOGIN_NAME'} = RD_USER; $request{'SHOW_ID'} = int($show_id); - $request{'CLEAR_SHOW_CARTS'} = JSON::true; + $request{'CLEAR_SHOW_CARTS'} = JSON->true; $request{'SOURCE_URI'} = $uri; $request{'SOURCE_FILE_POLICY'} = $file_policy if $file_policy; @@ -157,9 +158,12 @@ sub import_uri return (1, "can't create request file in watchdir\n") unless($fh); chmod(0660, $fh); + binmode($fh, ":utf8"); my $requestfile = $fh->filename; my $log = "request file written to '$requestfile' ... "; - print $fh to_json(\%request); + + my $j = JSON::MaybeXS->new(utf8 => 0); + print $fh $j->encode(\%request); print $fh "\n"; close $fh; |