From 576c411da9608bb7155e89811694f9f19e542773 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sun, 23 Jul 2006 21:51:50 +0200 Subject: [PATCH] Set the default to be infobox + reencoded; add an option to always give the original file back (as we used to). --- perl/Sesse/pr0n/Common.pm | 8 +++++--- perl/Sesse/pr0n/Image.pm | 8 +++++++- perl/Sesse/pr0n/Index.pm | 39 +++++++++++++++++++++++++++------------ perl/Sesse/pr0n/WebDAV.pm | 2 +- perl/Sesse/pr0n/pr0n.pm | 2 +- 5 files changed, 41 insertions(+), 18 deletions(-) diff --git a/perl/Sesse/pr0n/Common.pm b/perl/Sesse/pr0n/Common.pm index e545e91..cb02a15 100644 --- a/perl/Sesse/pr0n/Common.pm +++ b/perl/Sesse/pr0n/Common.pm @@ -269,7 +269,7 @@ sub ensure_cached { my ($r, $filename, $id, $dbwidth, $dbheight, $infobox, $xres, $yres, @otherres) = @_; my $fname = get_disk_location($r, $id); - unless (defined($xres) && ($xres < $dbheight || $yres < $dbwidth || $dbwidth == -1 || $dbheight == -1)) { + unless (defined($xres) && ($xres < $dbheight || $yres < $dbwidth || $dbwidth == -1 || $dbheight == -1 || $xres == -1)) { return ($fname, 0); } @@ -341,9 +341,11 @@ sub ensure_cached { $quality = 80; } - $cimg->Resize(width=>$nwidth, height=>$nheight, filter=>$filter); + if ($xres != -1) { + $cimg->Resize(width=>$nwidth, height=>$nheight, filter=>$filter); + } - if (($nwidth >= 800 || $nheight >= 600) && $infobox == 1) { + if (($nwidth >= 800 || $nheight >= 600 || $xres == -1) && $infobox == 1) { make_infobox($cimg, $info, $r); } diff --git a/perl/Sesse/pr0n/Image.pm b/perl/Sesse/pr0n/Image.pm index 30bf736..6df8ea2 100644 --- a/perl/Sesse/pr0n/Image.pm +++ b/perl/Sesse/pr0n/Image.pm @@ -16,7 +16,7 @@ sub handler { # Find the event and file name my ($event,$filename,$xres,$yres); my $infobox = 1; - if ($r->uri =~ m#^/([a-zA-Z0-9-]+)/([a-zA-Z0-9._-]+)$#) { + if ($r->uri =~ m#^/([a-zA-Z0-9-]+)/original/([a-zA-Z0-9._-]+)$#) { $event = $1; $filename = $2; } elsif ($r->uri =~ m#^/([a-zA-Z0-9-]+)/(\d+)x(\d+)/(nobox/)?([a-zA-Z0-9._-]+)$#) { @@ -25,6 +25,12 @@ sub handler { $xres = $2; $yres = $3; $infobox = 0 if (defined($4)); + } elsif ($r->uri =~ m#^/([a-zA-Z0-9-]+)/(nobox/)?([a-zA-Z0-9._-]+)$#) { + $event = $1; + $filename = $3; + $xres = -1; + $yres = -1; + $infobox = 0 if (defined($2)); } my ($id, $dbwidth, $dbheight); diff --git a/perl/Sesse/pr0n/Index.pm b/perl/Sesse/pr0n/Index.pm index 1782453..335dcd2 100644 --- a/perl/Sesse/pr0n/Index.pm +++ b/perl/Sesse/pr0n/Index.pm @@ -56,7 +56,7 @@ sub handler { if (defined($val) && $val =~ /^(\d+)$/) { $settings{$s} = $val; } - if ($s eq "num" && defined($val) && $val == -1) { + if (($s eq "num" || $s eq "xres" || $s eq "yres") && defined($val) && $val == -1) { $settings{$s} = $val; } } @@ -144,8 +144,10 @@ sub handler { my $filename = $ref->{'filename'}; my $uri = $filename; - if (defined($xres) && defined($yres)) { + if (defined($xres) && defined($yres) && $xres != -1) { $uri = "${xres}x$yres/$infobox$filename"; + } elsif (defined($xres) && $xres == -1) { + $uri = "original/$infobox$filename"; } $r->print("

\"\"$imgsz\n"); @@ -185,8 +187,10 @@ sub handler { my $filename = $ref->{'filename'}; my $uri = $filename; - if (defined($xres) && defined($yres)) { + if (defined($xres) && defined($yres) && $xres != -1) { $uri = "${xres}x$yres/$infobox$filename"; + } elsif (defined($xres) && $xres == -1) { + $uri = "original/$infobox$filename"; } my $selected = $ref->{'selected'} ? ' checked="checked"' : ''; @@ -221,8 +225,10 @@ sub handler { my $filename = $ref->{'filename'}; my $uri = $filename; - if (defined($xres) && defined($yres)) { + if (defined($xres) && defined($yres) && $xres != -1) { $uri = "${xres}x$yres/$infobox$filename"; + } elsif (defined($xres) && $xres == -1) { + $uri = "original/$infobox$filename"; } $r->print(" \"\"$imgsz\n"); @@ -252,16 +258,23 @@ sub print_changes { $r->print("

$title:\n"); for my $a (@$alternatives) { - # Parse the current alternative - my ($v1, $v2) = split /x/, $a; + my $text; my %newsettings = %$settings; - if (defined($v1) && defined($v2)) { + if (ref $a) { + my ($v1, $v2); + ($text, $v1, $v2) = @$a; + $newsettings{$var1} = $v1; $newsettings{$var2} = $v2; } else { - $newsettings{$var1} = undef; - $newsettings{$var2} = undef; + $text = $a; + + # Parse the current alternative + my ($v1, $v2) = split /x/, $a; + + $newsettings{$var1} = $v1; + $newsettings{$var2} = $v2; } $r->print(" "); @@ -269,9 +282,9 @@ sub print_changes { # Check if these settings are current (print only label) if (eq_with_undef($settings->{$var1}, $newsettings{$var1}) && eq_with_undef($settings->{$var2}, $newsettings{$var2})) { - $r->print($a); + $r->print($text); } else { - Sesse::pr0n::Common::print_link($r, $a, "/$event/", \%newsettings, $defsettings); + Sesse::pr0n::Common::print_link($r, $text, "/$event/", \%newsettings, $defsettings); } $r->print("\n"); } @@ -289,7 +302,9 @@ sub print_viewres { my ($r, $event, $settings, $defsettings) = @_; my @alternatives = qw(320x256 512x384 640x480 800x600 1024x768 1280x960); chomp (my $unlimited = Sesse::pr0n::Templates::fetch_template($r, 'viewres-unlimited')); - push @alternatives, $unlimited; + chomp (my $original = Sesse::pr0n::Templates::fetch_template($r, 'viewres-original')); + push @alternatives, [ $unlimited, undef, undef ]; + push @alternatives, [ $original, -1, -1 ]; print_changes($r, $event, 'viewres', $settings, $defsettings, 'xres', 'yres', \@alternatives); diff --git a/perl/Sesse/pr0n/WebDAV.pm b/perl/Sesse/pr0n/WebDAV.pm index 35cc979..7621154 100644 --- a/perl/Sesse/pr0n/WebDAV.pm +++ b/perl/Sesse/pr0n/WebDAV.pm @@ -484,7 +484,7 @@ EOF # Make cache while we're at it. # Don't do it for the resource forks Mac OS X loves to upload :-( if ($filename !~ /^\._/) { - Sesse::pr0n::Common::ensure_cached($r, $filename, $newid, -1, -1, 1, 80, 64, 320, 256); + Sesse::pr0n::Common::ensure_cached($r, $filename, $newid, -1, -1, 1, 80, 64, 320, 256, -1, -1); } # OK, we got this far, commit diff --git a/perl/Sesse/pr0n/pr0n.pm b/perl/Sesse/pr0n/pr0n.pm index 5bd4928..79bd3c8 100644 --- a/perl/Sesse/pr0n/pr0n.pm +++ b/perl/Sesse/pr0n/pr0n.pm @@ -44,7 +44,7 @@ sub handler { return Sesse::pr0n::NewEvent::handler($r); } elsif ($uri =~ m#^/[a-zA-Z0-9-]+/?$#) { return Sesse::pr0n::Index::handler($r); - } elsif ($uri =~ m#^/[a-zA-Z0-9-]+/(\d+x\d+/)?(nobox/)?[a-zA-Z0-9._-]+$#) { + } elsif ($uri =~ m#^/[a-zA-Z0-9-]+/(\d+x\d+/|original)?(nobox/)?[a-zA-Z0-9._-]+$#) { return Sesse::pr0n::Image::handler($r); } -- 2.39.2