]> git.sesse.net Git - pr0n/blob - perl/Sesse/pr0n/Single.pm
Initial checkin.
[pr0n] / perl / Sesse / pr0n / Single.pm
1 package Sesse::pr0n::Single;
2 use strict;
3 use warnings;
4
5 use Sesse::pr0n::Common;
6 use Sesse::pr0n::Index;
7 use Apache2::Request;
8 use POSIX;
9
10 sub handler {
11         my $r = shift;
12         my $apr = Apache2::Request->new($r);
13
14         # Read the appropriate settings from the query string into the settings hash
15         my %defsettings = (
16                 thumbxres => 80,
17                 thumbyres => 64,
18                 xres => undef,
19                 yres => undef,
20                 start => 1,
21                 num => undef,
22                 svurr => 0
23         );
24         my %settings = %defsettings;
25
26         for my $s qw(thumbxres thumbyres xres yres svurr start num) {
27                 my $val = $apr->param($s);
28                 if (defined($val) && $val =~ /^(\d+)$/) {
29                         $settings{$s} = $val;
30                 }
31         }
32
33         my $thumbxres = $settings{'thumbxres'};
34         my $thumbyres = $settings{'thumbyres'};
35         my $xres = $settings{'xres'};
36         my $yres = $settings{'yres'};
37         my $start = $settings{'start'};
38         my $num = $settings{'num'};
39
40         # Print the page itself
41         Sesse::pr0n::Common::header($r, "Singles");
42
43         Sesse::pr0n::Index::print_thumbsize($r, 'single', \%settings, \%defsettings);
44         Sesse::pr0n::Index::print_viewres($r, 'single', \%settings, \%defsettings);
45
46         for my $id ($start..($start+$num)) { 
47                 my $filename = "$id.jpeg";
48                 my $uri = $filename;
49                 if (defined($xres) && defined($yres)) {
50                         $uri = "${xres}x$yres/$filename";
51                 }
52                 
53                 $r->print("      <a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\" /></a>\n");
54         }
55         $r->print("    </p>\n");
56
57         Sesse::pr0n::Common::footer($r);
58
59         return Apache2::Const::OK;
60 }
61
62 1;
63
64