diff options
Diffstat (limited to 'perllib')
-rw-r--r-- | perllib/FixMyStreet/App/Model/PhotoSet.pm | 9 | ||||
-rw-r--r-- | perllib/FixMyStreet/SendReport/Angus.pm | 1 | ||||
-rw-r--r-- | perllib/FixMyStreet/SendReport/EastHants.pm | 1 | ||||
-rw-r--r-- | perllib/FixMyStreet/SendReport/Open311.pm | 7 | ||||
-rw-r--r-- | perllib/Open311/GetServiceRequestUpdates.pm | 9 |
5 files changed, 17 insertions, 10 deletions
diff --git a/perllib/FixMyStreet/App/Model/PhotoSet.pm b/perllib/FixMyStreet/App/Model/PhotoSet.pm index 243675f2c..b44bf4b38 100644 --- a/perllib/FixMyStreet/App/Model/PhotoSet.pm +++ b/perllib/FixMyStreet/App/Model/PhotoSet.pm @@ -8,6 +8,8 @@ use if !$ENV{TRAVIS}, 'Image::Magick'; use Scalar::Util 'openhandle', 'blessed'; use Digest::SHA qw(sha1_hex); use Image::Size; +use IPC::Cmd qw(can_run); +use IPC::Open3; use MIME::Base64; has c => ( @@ -144,7 +146,12 @@ has ids => ( # Arrayref of $fileid tuples (always, so post upload/raw data proc my $photo_blob = eval { my $filename = $upload->tempname; my $out; - $out = `jhead -se -autorot $filename 2>&1` if $type eq 'jpeg'; + if ($type eq 'jpeg' && can_run('jhead')) { + my $pid = open3(undef, my $stdout, undef, 'jhead', '-se', '-autorot', $filename); + $out = join('', <$stdout>); + waitpid($pid, 0); + close $stdout; + } unless (defined $out) { my ($w, $h, $err) = Image::Size::imgsize($filename); die _("Please upload an image only") . "\n" if !defined $w || $err !~ /JPG|GIF|PNG|TIF/; diff --git a/perllib/FixMyStreet/SendReport/Angus.pm b/perllib/FixMyStreet/SendReport/Angus.pm index 15441cc1f..cab5de173 100644 --- a/perllib/FixMyStreet/SendReport/Angus.pm +++ b/perllib/FixMyStreet/SendReport/Angus.pm @@ -160,7 +160,6 @@ sub send { } } catch { my $e = $_; - print "Caught an error: $e\n"; $self->error( "Error sending to Angus: $e" ); }; $self->success( !$return ); diff --git a/perllib/FixMyStreet/SendReport/EastHants.pm b/perllib/FixMyStreet/SendReport/EastHants.pm index cc302b8b3..55ec79613 100644 --- a/perllib/FixMyStreet/SendReport/EastHants.pm +++ b/perllib/FixMyStreet/SendReport/EastHants.pm @@ -52,7 +52,6 @@ sub send { $return = 0 if $result eq 'Report received'; } catch { my $e = $_; - print "Caught an error: $e\n"; $self->error( "Error sending to East Hants: $e" ); }; $self->success( !$return ); diff --git a/perllib/FixMyStreet/SendReport/Open311.pm b/perllib/FixMyStreet/SendReport/Open311.pm index 5c7fa30f3..bf5ed3e30 100644 --- a/perllib/FixMyStreet/SendReport/Open311.pm +++ b/perllib/FixMyStreet/SendReport/Open311.pm @@ -144,14 +144,11 @@ sub send { $self->success( 1 ); } else { $result *= 1; - # temporary fix to resolve some issues with west berks - if ( $row->bodies_str =~ /2619/ ) { - $result *= 0; - } + $self->error( "Failed to send over Open311\n" ) unless $self->error; + $self->error( $self->error . "\n" . $open311->error ); } } - $self->error( 'Failed to send over Open311' ) unless $self->success; return $result; } diff --git a/perllib/Open311/GetServiceRequestUpdates.pm b/perllib/Open311/GetServiceRequestUpdates.pm index 11bc1e64f..daa5fb64d 100644 --- a/perllib/Open311/GetServiceRequestUpdates.pm +++ b/perllib/Open311/GetServiceRequestUpdates.pm @@ -89,6 +89,13 @@ sub update_comments { # what problem it belongs to so just skip next unless $request_id; + my $comment_time = eval { + DateTime::Format::W3CDTF->parse_datetime( $request->{updated_datetime} || "" ); + }; + next if $@; + my $updated = DateTime::Format::W3CDTF->format_datetime($comment_time->clone->set_time_zone('UTC')); + next if @args && ($updated lt $args[0] || $updated gt $args[1]); + my $problem; my $criteria = { external_id => $request_id, @@ -99,8 +106,6 @@ sub update_comments { my $c = $p->comments->search( { external_id => $request->{update_id} } ); if ( !$c->first ) { - my $comment_time = DateTime::Format::W3CDTF->parse_datetime( $request->{updated_datetime} ); - my $comment = $self->schema->resultset('Comment')->new( { problem => $p, |