Remove burned-in infoboxes. Turn infobox always on in fullscreen mode (for now).
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 19 Nov 2015 18:30:29 +0000 (19:30 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 19 Nov 2015 18:30:29 +0000 (19:30 +0100)
files/pr0n-fullscreen.js
perl/Sesse/pr0n/Common.pm
perl/Sesse/pr0n/Image.pm
perl/Sesse/pr0n/Index.pm
templates/default/fullscreen-footer

index d1101718d6b0bc68b58f972bd949ab115c14ab05..d4af19f1d1397978ad94c859f398f7bfdfc12e82 100644 (file)
@@ -169,21 +169,20 @@ function display_image(width, height, evt, filename, element_id)
        img.style.transformOrigin = "top left";
        img.style.transform = "scale(" + (1.0 / dpr) + ")";
 
-       if (global_infobox != 'nobox/') {
-               var url;
-               if (dpr == 1) {
-                       url = window.location.origin + "/" + evt + "/" + width + "x" + height + "/box/" + filename;
-               } else {
-                       url = window.location.origin + "/" + evt + "/" + width + "x" + height + "@" + dpr.toFixed(2) + "/box/" + filename;
-               }
-               var boximg = replace_image_element(url, element_id + "_box", main);
-
-               boximg.style.position = "absolute";
-               boximg.style.left = "0px";
-               boximg.style.bottom = "-1px";
-               boximg.style.transformOrigin = "bottom left";
-               boximg.style.transform = "scale(" + (1.0 / dpr) + ")";
+       // Infobox.
+       var url;
+       if (dpr == 1) {
+               url = window.location.origin + "/" + evt + "/" + width + "x" + height + "/box/" + filename;
+       } else {
+               url = window.location.origin + "/" + evt + "/" + width + "x" + height + "@" + dpr.toFixed(2) + "/box/" + filename;
        }
+       var boximg = replace_image_element(url, element_id + "_box", main);
+
+       boximg.style.position = "absolute";
+       boximg.style.left = "0px";
+       boximg.style.bottom = "-1px";
+       boximg.style.transformOrigin = "bottom left";
+       boximg.style.transform = "scale(" + (1.0 / dpr) + ")";
 
        return img;
 }
index c4ceba03fde8e2207803aa2184524905b42ec7a3..ab90961dc567a127236c5eae822c9e491c2d85c2 100644 (file)
@@ -216,16 +216,14 @@ sub get_cache_location {
        my ($r, $id, $width, $height, $infobox, $dpr) = @_;
         my $dir = POSIX::floor($id / 256);
 
-       if ($infobox eq 'both') {
-               return $Sesse::pr0n::Config::image_base . "cache/$dir/$id-$width-$height.jpg";
-       } elsif ($infobox eq 'nobox') {
-               return $Sesse::pr0n::Config::image_base . "cache/$dir/$id-$width-$height-nobox.jpg";
-       } else {
+       if ($infobox) {
                if ($dpr == 1) {
                        return $Sesse::pr0n::Config::image_base . "cache/$dir/$id-$width-$height-box.png";
                } else {
                        return $Sesse::pr0n::Config::image_base . "cache/$dir/$id-$width-$height-box\@$dpr.png";
                }
+       } else {
+               return $Sesse::pr0n::Config::image_base . "cache/$dir/$id-$width-$height-nobox.jpg";
        }
 }
 
@@ -438,14 +436,14 @@ sub stat_image_from_id {
 # the smallest mipmap larger than the largest of them, as well as the original image
 # dimensions.
 sub make_mipmap {
-       my ($r, $filename, $id, $dbwidth, $dbheight, $can_use_qscale, @res) = @_;
+       my ($r, $filename, $id, $dbwidth, $dbheight, @res) = @_;
        my ($img, $mmimg, $width, $height);
        
        my $physical_fname = get_disk_location($r, $id);
 
        # If we don't know the size, we'll need to read it in anyway
        if (!defined($dbwidth) || !defined($dbheight)) {
-               $img = read_original_image($r, $filename, $id, $dbwidth, $dbheight, $can_use_qscale);
+               $img = read_original_image($r, $filename, $id, $dbwidth, $dbheight);
                $width = $img->Get('columns');
                $height = $img->Get('rows');
        } else {
@@ -493,14 +491,10 @@ sub make_mipmap {
                if (! -r $mmlocation or (-M $mmlocation > -M $physical_fname)) {
                        if (!defined($img)) {
                                if (defined($last_good_mmlocation)) {
-                                       if ($can_use_qscale) {
-                                               $img = Sesse::pr0n::QscaleProxy->new;
-                                       } else {
-                                               $img = Image::Magick->new;
-                                       }
+                                       $img = Sesse::pr0n::QscaleProxy->new;
                                        $img->Read($last_good_mmlocation);
                                } else {
-                                       $img = read_original_image($r, $filename, $id, $dbwidth, $dbheight, $can_use_qscale);
+                                       $img = read_original_image($r, $filename, $id, $dbwidth, $dbheight);
                                }
                        }
                        my $cimg;
@@ -523,17 +517,13 @@ sub make_mipmap {
                }
                if ($last && !defined($img)) {
                        # OK, read in the smallest one
-                       if ($can_use_qscale) {
-                               $img = Sesse::pr0n::QscaleProxy->new;
-                       } else {
-                               $img = Image::Magick->new;
-                       }
+                       $img = Sesse::pr0n::QscaleProxy->new;
                        my $err = $img->Read($mmlocation);
                }
        }
 
        if (!defined($img)) {
-               $img = read_original_image($r, $filename, $id, $dbwidth, $dbheight, $can_use_qscale);
+               $img = read_original_image($r, $filename, $id, $dbwidth, $dbheight);
                $width = $img->Get('columns');
                $height = $img->Get('rows');
        }
@@ -541,13 +531,13 @@ sub make_mipmap {
 }
 
 sub read_original_image {
-       my ($r, $filename, $id, $dbwidth, $dbheight, $can_use_qscale) = @_;
+       my ($r, $filename, $id, $dbwidth, $dbheight) = @_;
 
        my $physical_fname = get_disk_location($r, $id);
 
        # Read in the original image
        my $magick;
-       if ($can_use_qscale && ($filename =~ /\.jpeg$/i || $filename =~ /\.jpg$/i)) {
+       if ($filename =~ /\.jpeg$/i || $filename =~ /\.jpg$/i) {
                $magick = Sesse::pr0n::QscaleProxy->new;
        } else {
                $magick = Image::Magick->new;
@@ -604,7 +594,7 @@ sub ensure_cached {
        my ($new_dbwidth, $new_dbheight);
 
        my $fname = get_disk_location($r, $id);
-       if ($infobox ne 'box') {
+       if (!$infobox) {
                unless (defined($xres) && (!defined($dbwidth) || !defined($dbheight) || $xres < $dbwidth || $yres < $dbheight || $xres == -1)) {
                        return ($fname, undef);
                }
@@ -620,11 +610,11 @@ sub ensure_cached {
                        error($r, 'System is in overload mode, not doing any scaling');
                }
 
-               # If we're being asked for just the box, make a new image with just the box.
+               # If we're being asked for the box, make a new image with it.
                # We don't care about @otherres since each of these images are
                # already pretty cheap to generate, but we need the exact width so we can make
                # one in the right size.
-               if ($infobox eq 'box') {
+               if ($infobox) {
                        my ($img, $width, $height);
 
                        # This is slow, but should fortunately almost never happen, so don't bother
@@ -671,13 +661,8 @@ sub ensure_cached {
                        return ($cachename, 'image/png');
                }
 
-               my $can_use_qscale = 0;
-               if ($infobox eq 'nobox') {
-                       $can_use_qscale = 1;
-               }
-
                my $img;
-               ($img, $new_dbwidth, $new_dbheight) = make_mipmap($r, $filename, $id, $dbwidth, $dbheight, $can_use_qscale, $xres, $yres, @otherres);
+               ($img, $new_dbwidth, $new_dbheight) = make_mipmap($r, $filename, $id, $dbwidth, $dbheight, $xres, $yres, @otherres);
 
                while (defined($xres) && defined($yres)) {
                        my ($nxres, $nyres) = (shift @otherres, shift @otherres);
@@ -704,11 +689,6 @@ sub ensure_cached {
                                $cimg->Resize(width=>$nwidth, height=>$nheight, filter=>$filter, 'sampling-factor'=>$sf);
                        }
 
-                       if (($nwidth >= 800 || $nheight >= 600 || $xres == -1) && $infobox ne 'nobox') {
-                               my $info = Image::ExifTool::ImageInfo($fname);
-                               make_infobox($cimg, $info, $r, 1);
-                       }
-
                        # Strip EXIF tags etc.
                        $cimg->Strip();
 
index 4f6360a6605f001b1e3a5ace4fc8494490c0f785..6a4f7a80e71a64f2653d1a2d5d596a04c065aa18 100644 (file)
@@ -13,29 +13,26 @@ sub handler {
 #              die "Har du lest FAQen?";
 #      }
 
-       # Find the event and file name
+       # Find the event and file name (nobox/ is for compatibility with legacy URLs).
        my ($event,$filename,$xres,$yres,$dpr);
-       my $infobox = 'both';
+       my $infobox = 0;
        if ($r->path_info =~ m#^/([a-zA-Z0-9-]+)/original/((?:no)?box/)?([a-zA-Z0-9._()-]+)$#) {
                $event = $1;
                $filename = $3;
-               $infobox = 'nobox' if (defined($2) && $2 eq 'nobox/');
-               $infobox = 'box' if (defined($2) && $2 eq 'box/');
+               $infobox = 1 if (defined($2) && $2 eq 'box/');
        } elsif ($r->path_info =~ m#^/([a-zA-Z0-9-]+)/(\d+)x(\d+)(?:\@(\d+(?:\.\d+)?))?/((?:no)?box/)?([a-zA-Z0-9._()-]+)$#) {
                $event = $1;
                $filename = $6;
                $xres = $2;
                $yres = $3;
                $dpr = $4;
-               $infobox = 'nobox' if (defined($5) && $5 eq 'nobox/');
-               $infobox = 'box' if (defined($5) && $5 eq 'box/');
+               $infobox = 1 if (defined($5) && $5 eq 'box/');
        } elsif ($r->path_info =~ m#^/([a-zA-Z0-9-]+)/((?:no)?box/)?([a-zA-Z0-9._()-]+)$#) {
                $event = $1;
                $filename = $3;
                $xres = -1;
                $yres = -1;
-               $infobox = 'nobox' if (defined($2) && $2 eq 'nobox/');
-               $infobox = 'box' if (defined($2) && $2 eq 'box/');
+               $infobox = 1 if (defined($2) && $2 eq 'box/');
        }
        $dpr //= 1;
 
index 5082486e996056142860ae70a0ec9410ef63e268..fc8be72207a93c45e067bf217f3551ebb6175cf7 100644 (file)
@@ -48,7 +48,6 @@ sub handler {
                start => 1,
                num => 250,
                all => 1,
-               infobox => 1,
                rot => 0,
                sel => 0,
                fullscreen => 0,
@@ -71,7 +70,7 @@ sub handler {
        
        my %settings = %defsettings;
 
-       for my $s (qw(thumbxres thumbyres xres yres start num all infobox rot sel fullscreen model lens author)) {
+       for my $s (qw(thumbxres thumbyres xres yres start num all rot sel fullscreen model lens author)) {
                my $val = $r->param($s);
                if (defined($val) && $val =~ /^(\d+)$/) {
                        $settings{$s} = $val;
@@ -94,7 +93,6 @@ sub handler {
        my $start = $settings{'start'};
        my $num = $settings{'num'};
        my $all = $settings{'all'};
-       my $infobox = $settings{'infobox'} ? '' : 'nobox/';
        my $rot = $settings{'rot'};
        my $sel = $settings{'sel'};
        my $model = $settings{'model'};
@@ -202,8 +200,7 @@ sub handler {
                Sesse::pr0n::Templates::print_template($r, $io, "fullscreen-footer", {
                        returnurl => $returnurl,
                        start => $settings{'start'} - 1,
-                       sel => $settings{'sel'},
-                       infobox => $infobox
+                       sel => $settings{'sel'}
                });
        } else {
                Sesse::pr0n::Common::header($r, $io, "$name [$event]");
@@ -216,7 +213,6 @@ sub handler {
                }
 
                print_viewres($r, $io, $event, \%settings, \%defsettings);
-               print_infobox($r, $io, $event, \%settings, \%defsettings);
                print_selected($r, $io, $event, \%settings, \%defsettings) if ($num_selected > 0);
                print_fullscreen($r, $io, $event, \%settings, \%defsettings);
                print_nextprev($r, $io, $event, $where, \%settings, \%defsettings);
@@ -346,11 +342,11 @@ sub handler {
                        }
 
                        my $filename = $ref->{'filename'};
-                       my $uri = $infobox . $filename;
+                       my $uri = $filename;
                        if (defined($xres) && defined($yres) && $xres != -1 && $xres != -2) {
-                               $uri = "${xres}x$yres/$infobox$filename";
+                               $uri = "${xres}x$yres/$filename";
                        } elsif (defined($xres) && $xres == -1) {
-                               $uri = "original/$infobox$filename";
+                               $uri = "original/$filename";
                        }
                        
                        my $prefix = "";
@@ -456,36 +452,6 @@ sub print_viewres {
                      'xres', 'yres', \@alternatives);
 }
 
-sub print_infobox {
-       my ($r, $io, $event, $settings, $defsettings) = @_;
-
-       chomp (my $title = Sesse::pr0n::Templates::fetch_template($r, 'infobox'));
-       chomp (my $on = Sesse::pr0n::Templates::fetch_template($r, 'infobox-on'));
-       chomp (my $off = Sesse::pr0n::Templates::fetch_template($r, 'infobox-off'));
-
-        $io->print("    <p>$title:\n");
-
-       my %newsettings = %$settings;
-
-       if ($settings->{'infobox'} == 1) {
-               $io->print($on);
-       } else {
-               $newsettings{'infobox'} = 1;
-               Sesse::pr0n::Common::print_link($io, $on, "/$event/", \%newsettings, $defsettings);
-       }
-
-       $io->print(' ');
-
-       if ($settings->{'infobox'} == 0) {
-               $io->print($off);
-       } else {
-               $newsettings{'infobox'} = 0;
-               Sesse::pr0n::Common::print_link($io, $off, "/$event/", \%newsettings, $defsettings);
-       }
-       
-       $io->print('</p>');
-}
-
 sub print_nextprev {
        my ($r, $io, $event, $where, $settings, $defsettings) = @_;
        my $start = $settings->{'start'};
index 5bf2ee258c1f1c6ebbbb6ff9b30b8f45c5eac688..3b1f5e96e1bcbe9345e150694ca3f8169b5b90d7 100644 (file)
@@ -1,5 +1,4 @@
 ];
-var global_infobox = "%INFOBOX%";
 var global_return_url = "%RETURNURL%";
 var global_image_num = parse_image_num(%START%);
 var global_select = %SEL%;