From: Steinar H. Gunderson Date: Thu, 19 Nov 2015 18:30:29 +0000 (+0100) Subject: Remove burned-in infoboxes. Turn infobox always on in fullscreen mode (for now). X-Git-Url: https://git.sesse.net/?p=pr0n;a=commitdiff_plain;h=c53dd5ce79ebfdcf01c3847149611ebafcebdd69 Remove burned-in infoboxes. Turn infobox always on in fullscreen mode (for now). --- diff --git a/files/pr0n-fullscreen.js b/files/pr0n-fullscreen.js index d110171..d4af19f 100644 --- a/files/pr0n-fullscreen.js +++ b/files/pr0n-fullscreen.js @@ -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; } diff --git a/perl/Sesse/pr0n/Common.pm b/perl/Sesse/pr0n/Common.pm index c4ceba0..ab90961 100644 --- a/perl/Sesse/pr0n/Common.pm +++ b/perl/Sesse/pr0n/Common.pm @@ -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(); diff --git a/perl/Sesse/pr0n/Image.pm b/perl/Sesse/pr0n/Image.pm index 4f6360a..6a4f7a8 100644 --- a/perl/Sesse/pr0n/Image.pm +++ b/perl/Sesse/pr0n/Image.pm @@ -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; diff --git a/perl/Sesse/pr0n/Index.pm b/perl/Sesse/pr0n/Index.pm index 5082486..fc8be72 100644 --- a/perl/Sesse/pr0n/Index.pm +++ b/perl/Sesse/pr0n/Index.pm @@ -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("

$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('

'); -} - sub print_nextprev { my ($r, $io, $event, $where, $settings, $defsettings) = @_; my $start = $settings->{'start'}; diff --git a/templates/default/fullscreen-footer b/templates/default/fullscreen-footer index 5bf2ee2..3b1f5e9 100644 --- a/templates/default/fullscreen-footer +++ b/templates/default/fullscreen-footer @@ -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%;