aboutsummaryrefslogtreecommitdiffstats
path: root/bin/fixmystreet.com/rotate-photos
diff options
context:
space:
mode:
Diffstat (limited to 'bin/fixmystreet.com/rotate-photos')
-rwxr-xr-xbin/fixmystreet.com/rotate-photos64
1 files changed, 64 insertions, 0 deletions
diff --git a/bin/fixmystreet.com/rotate-photos b/bin/fixmystreet.com/rotate-photos
new file mode 100755
index 000000000..7b8109d65
--- /dev/null
+++ b/bin/fixmystreet.com/rotate-photos
@@ -0,0 +1,64 @@
+#!/usr/bin/perl -w
+
+# rotate-photos:
+# Manaully fix any already-uploaded photos that are orientated wrongly.
+#
+# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
+# Email: matthew@mysociety.org. WWW: http://www.mysociety.org
+#
+# $Id: rotate-photos,v 1.1 2008-12-11 15:18:40 matthew Exp $
+
+use strict;
+require 5.8.0;
+
+# Horrible boilerplate to set up appropriate library paths.
+use FindBin;
+use lib "$FindBin::Bin/../perllib";
+use lib "$FindBin::Bin/../commonlib/perllib";
+
+use Digest::SHA qw(sha1_hex);
+
+use Utils;
+use mySociety::Config;
+use mySociety::DBHandle qw(dbh select_all);
+use mySociety::TempFiles;
+
+BEGIN {
+ mySociety::Config::set_file("$FindBin::Bin/../conf/general");
+ mySociety::DBHandle::configure(
+ Name => mySociety::Config::get('FMS_DB_NAME'),
+ User => mySociety::Config::get('FMS_DB_USER'),
+ Password => mySociety::Config::get('FMS_DB_PASS'),
+ Host => mySociety::Config::get('FMS_DB_HOST', undef),
+ Port => mySociety::Config::get('FMS_DB_PORT', undef)
+ );
+}
+
+my $r = select_all("select id, photo from problem where service='iPhone'");
+foreach (@$r) {
+ my $id = $_->{id};
+ my $photo = $_->{photo};
+
+ if (length($photo) == 40) {
+ # If photo field contains a hash
+ my $filename = mySociety::Config::get('UPLOAD_DIR') . "$photo.jpeg";
+ `jhead -autorot $filename`;
+ } else {
+ my ($fh, $filename) = mySociety::TempFiles::named_tempfile('.jpeg');
+ print $fh $photo;
+ close $fh;
+ my $out = `jhead -autorot $filename`;
+ if ($out) {
+ open(FP, $filename) or die $!;
+ $photo = join('', <FP>);
+ close FP;
+ my $fileid = sha1_hex($photo);
+ rename $filename, mySociety::Config::get('UPLOAD_DIR') . "$fileid.jpeg";
+ dbh()->do('UPDATE problem SET photo=? WHERE id=?', {}, $fileid, $id);
+ dbh()->commit();
+ } else {
+ unlink $filename;
+ }
+ }
+}
+