Set the default to be infobox + reencoded; add an option to always give
authorSteinar H. Gunderson <sesse@debian.org>
Sun, 23 Jul 2006 19:51:50 +0000 (21:51 +0200)
committerSteinar H. Gunderson <sesse@debian.org>
Sun, 23 Jul 2006 19:51:50 +0000 (21:51 +0200)
the original file back (as we used to).

perl/Sesse/pr0n/Common.pm
perl/Sesse/pr0n/Image.pm
perl/Sesse/pr0n/Index.pm
perl/Sesse/pr0n/WebDAV.pm
perl/Sesse/pr0n/pr0n.pm

index e545e91d9e5a06704a2bc30baf949a3badaf95dd..cb02a154c90912ba5e1b7065d2641203497f5801 100644 (file)
@@ -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);
                        }
 
index 30bf73647fc4cbaee00cd970ac3f6116aaedea45..6df8ea25e29509a643ef829120f110c59dffea32 100644 (file)
@@ -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);
index 178245369e346eb6e6bdeeb758899a778ed46db6..335dcd2566fbc00e47c6f04963d2b73a94f3a691 100644 (file)
@@ -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("    <p><a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\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("      <a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
@@ -252,16 +258,23 @@ sub print_changes {
        $r->print("    <p>$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);
index 35cc9790bc0c1a7ec629a1499ee450fd16d5f91d..76211549ccecaa1dd782cd7639892dc68ea943d8 100644 (file)
@@ -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
index 5bd49286e0b83bddb4dba8f9fa396399fed26508..79bd3c8fc3028cbf2fab66a7e7f3b86f4c8bd901 100644 (file)
@@ -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);
        }