X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=perl%2FSesse%2Fpr0n%2FIndex.pm;h=68c6a10d386eacb35f193cd51464951f816c4793;hp=8500f9be457bf88e089db1c2e879f563417e6cb4;hb=3d40b6487a2276c403022a1534eb943a5374ebc5;hpb=09260885c52013320acd21d7ce262e12def7301f diff --git a/perl/Sesse/pr0n/Index.pm b/perl/Sesse/pr0n/Index.pm index 8500f9b..68c6a10 100644 --- a/perl/Sesse/pr0n/Index.pm +++ b/perl/Sesse/pr0n/Index.pm @@ -9,18 +9,11 @@ sub handler { my $r = shift; my $dbh = Sesse::pr0n::Common::get_dbh(); - my ($event, $abspath, $datesort, $tag); + my ($event, $abspath, $datesort); if ($r->path_info =~ /^\/\+all\/?/) { $event = '+all'; $abspath = 1; - $tag = undef; - $datesort = 'DESC NULLS LAST'; - } elsif ($r->path_info =~ /^\/\+tags\/([a-zA-Z0-9-]+)\/?$/) { - $tag = $1; - $event = "+tags/$tag"; - $abspath = 1; - $datesort = 'DESC NULLS LAST'; } else { # Find the event @@ -28,7 +21,6 @@ sub handler { or return error($r, "Could not extract event"); $event = $1; $abspath = 0; - $tag = undef; $datesort = 'ASC NULLS LAST'; } @@ -49,14 +41,13 @@ sub handler { # Read the appropriate settings from the query string into the settings hash my %defsettings = ( - thumbxres => 80, - thumbyres => 64, + thumbxres => 320, + thumbyres => 256, xres => -1, yres => -1, start => 1, num => 250, all => 1, - infobox => 1, rot => 0, sel => 0, fullscreen => 0, @@ -66,10 +57,7 @@ sub handler { ); my $where; - if (defined($tag)) { - my $tq = $dbh->quote($tag); - $where = " AND id IN ( SELECT image FROM tags WHERE tag=$tq )"; - } elsif ($event eq '+all') { + if ($event eq '+all') { $where = ''; } else { $where = ' AND event=' . $dbh->quote($event); @@ -80,14 +68,9 @@ sub handler { undef, Sesse::pr0n::Common::get_server_name($r)) and $defsettings{'xres'} = $defsettings{'yres'} = undef; - # Reduce the front page load when in overload mode. - if (Sesse::pr0n::Overload::is_in_overload($r)) { - $defsettings{'num'} = 100; - } - 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; @@ -110,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'}; @@ -151,7 +133,7 @@ sub handler { my ($date, $name); - if ($event eq '+all' || defined($tag)) { + if ($event eq '+all') { $ref = $dbh->selectrow_hashref("SELECT EXTRACT(EPOCH FROM MAX(last_update)) AS last_update FROM last_picture_cache WHERE vhost=?", undef, Sesse::pr0n::Common::get_server_name($r)) or return error($r, "Could not list events", 404, "File not found"); @@ -191,12 +173,7 @@ sub handler { if ($settings{'fullscreen'}) { $res->content_type("text/html; charset=utf-8"); - if (defined($tag)) { - my $title = Sesse::pr0n::Templates::process_template($res, $io, "tag-title", { tag => $tag }); - Sesse::pr0n::Templates::print_template($r, $io, "fullscreen-header", { title => $title }); - } else { - Sesse::pr0n::Templates::print_template($r, $io, "fullscreen-header", { title => "$name [$event]" }); - } + Sesse::pr0n::Templates::print_template($r, $io, "fullscreen-header", { title => "$name [$event]" }); my @files = (); while (my $ref = $q->fetchrow_hashref()) { @@ -223,16 +200,10 @@ 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 { - if (defined($tag)) { - my $title = Sesse::pr0n::Templates::process_template($r, $io, "tag-title", { tag => $tag }); - Sesse::pr0n::Common::header($r, $io, $title); - } else { - Sesse::pr0n::Common::header($r, $io, "$name [$event]"); - } + Sesse::pr0n::Common::header($r, $io, "$name [$event]"); if (defined($date)) { Sesse::pr0n::Templates::print_template($r, $io, "date", { date => $date }); } @@ -241,10 +212,6 @@ sub handler { Sesse::pr0n::Templates::print_template($r, $io, "overloadmode"); } - print_thumbsize($r, $io, $event, \%settings, \%defsettings); - print_viewres($r, $io, $event, \%settings, \%defsettings); - print_pagelimit($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); @@ -373,12 +340,18 @@ sub handler { $imgsz = " width=\"$width\" height=\"$height\""; } + # Add fullscreen link. + my %fssettings = %settings; + $fssettings{'fullscreen'} = 1; + my $fsquery = Sesse::pr0n::Common::get_query_string(\%fssettings, \%defsettings); + $fsquery .= '#' . $img_num; + 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 = ""; @@ -391,7 +364,7 @@ sub handler { } else { $io->print(" "); } - $io->print("\"\"$imgsz\n"); + $io->print("\"\"$imgsz\n"); if ($rot == 1) { $io->print(" 90 print("

\n"); } -sub print_thumbsize { - my ($r, $io, $event, $settings, $defsettings) = @_; - my @alternatives = qw(80x64 120x96 160x128 240x192 320x256); - - print_changes($r, $io, $event, 'thumbsize', $settings, $defsettings, - 'thumbxres', 'thumbyres', \@alternatives); -} -sub print_viewres { - my ($r, $io, $event, $settings, $defsettings) = @_; - my @alternatives = qw(320x256 512x384 640x480 800x600 1024x768 1152x864 1280x960 1400x1050 1600x1200 1920x1440 2048x1536 2304x1728); - chomp (my $unlimited = Sesse::pr0n::Templates::fetch_template($r, 'viewres-unlimited')); - chomp (my $original = Sesse::pr0n::Templates::fetch_template($r, 'viewres-original')); - push @alternatives, [ $unlimited, -2, -2 ]; - push @alternatives, [ $original, -1, -1 ]; - - print_changes($r, $io, $event, 'viewres', $settings, $defsettings, - 'xres', 'yres', \@alternatives); -} - -sub print_pagelimit { - my ($r, $io, $event, $settings, $defsettings) = @_; - - my $title = Sesse::pr0n::Templates::fetch_template($r, 'imgsperpage'); - chomp $title; - $io->print("

$title:\n"); - - # Get choices - chomp (my $unlimited = Sesse::pr0n::Templates::fetch_template($r, 'imgsperpage-unlimited')); - my @alternatives = qw(10 50 100 250 500); - push @alternatives, $unlimited; - - for my $num (@alternatives) { - my %newsettings = %$settings; - - if ($num !~ /^\d+$/) { # unlimited - $newsettings{'num'} = -1; - } else { - $newsettings{'num'} = $num; - } - - $io->print(" "); - if (eq_with_undef($settings->{'num'}, $newsettings{'num'})) { - $io->print($num); - } else { - Sesse::pr0n::Common::print_link($io, $num, "/$event/", \%newsettings, $defsettings); - } - $io->print("\n"); - } - $io->print("

\n"); -} - -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'};