use LWP::Simple;
# use Image::Info;
use Image::ExifTool;
+use HTML::Entities;
BEGIN {
use Exporter ();
require Sesse::pr0n::Config_local;
};
- $VERSION = "v2.20";
+ $VERSION = "v2.21";
@ISA = qw(Exporter);
@EXPORT = qw(&error &dberror);
%EXPORT_TAGS = qw();
}
}
-sub update_width_height {
+sub update_image_info {
my ($r, $id, $width, $height) = @_;
# Also find the date taken if appropriate (from the EXIF tag etc.)
undef, $width, $height, $datetime, $id)
or die "Couldn't update width/height in SQL: $!";
+ $dbh->do('DELETE FROM exif_info WHERE image=?',
+ undef, $id)
+ or die "Couldn't delete old EXIF information in SQL: $!";
+
+ my $q = $dbh->prepare('INSERT INTO exif_info (image,tag,value) VALUES (?,?,?)')
+ or die "Couldn't prepare inserting EXIF information: $!";
+
+ for my $key (keys %$info) {
+ next if ref $info->{$key};
+ $q->execute($id, $key, $info->{$key})
+ or die "Couldn't insert EXIF information in database: $!";
+ }
+
# update the last_picture cache as well (this should of course be done
# via a trigger, but this is less complicated :-) )
$dbh->do('UPDATE last_picture_cache SET last_picture=GREATEST(last_picture, ?) WHERE event=(SELECT event FROM images WHERE id=?)',
# Update the SQL database if it doesn't contain the required info
if ($dbwidth == -1 || $dbheight == -1) {
$r->log->info("Updating width/height for $id: $width x $height");
- update_width_height($r, $id, $width, $height);
+ update_image_info($r, $id, $width, $height);
}
# We always want RGB JPEGs