Add a new 2304x1728 resolution (twice 1152x864), for fitting better into 30-inch...
[pr0n] / perl / Sesse / pr0n / Select.pm
1 package Sesse::pr0n::Select;
2 use strict;
3 use warnings;
4
5 use Sesse::pr0n::Common qw(error dberror);
6 use Apache2::Request;
7
8 sub handler {
9         my $r = shift;
10         my $apr = Apache2::Request->new($r);
11         my $dbh = Sesse::pr0n::Common::get_dbh();
12         my ($user, $takenby) = Sesse::pr0n::Common::check_access($r);
13         if (!defined($user)) {
14                 return Apache2::Const::OK;
15         }
16
17         my $event = $apr->param('event');
18
19         Sesse::pr0n::Common::header($r, "Selection results");
20
21         {
22                 # Enable transactions and error raising temporarily
23                 local $dbh->{AutoCommit} = 0;
24                 local $dbh->{RaiseError} = 1;
25
26                 my $filename = $apr->param('filename');
27                 my $selected = $apr->param('selected');
28                 my $sql_selected = 'f';
29                 if (!defined($selected) || $selected eq '1') {
30                         $sql_selected = 't';
31                 }
32                 $dbh->do('UPDATE images SET selected=? WHERE vhost=? AND event=? AND filename=?', undef, $sql_selected, $r->get_server_name, $event, $filename);
33         }
34
35         $dbh->do('UPDATE last_picture_cache SET last_update=CURRENT_TIMESTAMP WHERE vhost=? AND event=?', undef, $r->get_server_name, $event)
36                 or dberror($r, "Cache invalidation failed");
37         Sesse::pr0n::Common::purge_cache($r, "/$event/");
38         Sesse::pr0n::Common::footer($r);
39
40         return Apache2::Const::OK;
41 }
42
43 1;
44
45