X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=perl%2FSesse%2Fpr0n%2FRotate.pm;h=be023123373e40979cafe96bcca1bca8c01c1967;hp=0733cecb21f5eed78cbbf36af3f6fca41dfd4398;hb=56e33eea02b7f09d214b9a480d9c0533bdbd2cea;hpb=ebfa7a13cd167409442120036a159a745acc177b diff --git a/perl/Sesse/pr0n/Rotate.pm b/perl/Sesse/pr0n/Rotate.pm index 0733cec..be02312 100644 --- a/perl/Sesse/pr0n/Rotate.pm +++ b/perl/Sesse/pr0n/Rotate.pm @@ -36,19 +36,24 @@ sub handler { if ($rotval == 90 || $rotval == 270) { my $q = $dbh->do('UPDATE images SET height=width,width=height WHERE id=?', undef, $id) - or dberror($r, "Size clear of $id failed: $!"); + or dberror($r, "Size clear of $id failed"); + $dbh->do('UPDATE events SET last_update=CURRENT_TIMESTAMP WHERE id=( SELECT event FROM images WHERE id=? )', + undef, $id) + or dberror($r, "Cache invalidation at $id failed"); } } elsif ($key =~ /^del-(\d+)$/ && $apr->param($key) eq 'on') { my $id = $1; { eval { - $dbh->do('UPDATE events SET last_update=CURRENT_TIMESTAMP WHERE event=( SELECT event FROM images WHERE id=? )', + $dbh->do('UPDATE events SET last_update=CURRENT_TIMESTAMP WHERE id=( SELECT event FROM images WHERE id=? )', undef, $id); $dbh->do('INSERT INTO deleted_images SELECT * FROM images WHERE id=?', - undef, $id); + undef, $id); + $dbh->do('DELETE FROM exif_info WHERE image=?', + undef, $id); $dbh->do('DELETE FROM images WHERE id=?', - undef, $id); + undef, $id); }; if ($@) { # Some error occurred, rollback and bomb out @@ -60,6 +65,10 @@ sub handler { } } } + + my $event = $apr->param('event'); + $dbh->do('UPDATE events SET last_update=CURRENT_TIMESTAMP WHERE id=?', undef, $event) + or dberror($r, "Cache invalidation failed"); Sesse::pr0n::Common::footer($r);