$abspath = 1;
$tag = undef;
- # augh, this needs 8.3, so we'll have to fiddle around a bit instead
- # $datesort = 'DESC NULLS LAST';
- $datesort = 'DESC';
+ $datesort = 'DESC NULLS LAST';
} elsif ($r->uri =~ /^\/\+tags\/([a-zA-Z0-9-]+)\/?$/) {
$tag = $1;
$event = "+tags/$tag";
$abspath = 1;
- $datesort = 'DESC';
+ $datesort = 'DESC NULLS LAST';
} else {
# Find the event
$r->uri =~ /^\/([a-zA-Z0-9-]+)\/?$/
$event = $1;
$abspath = 0;
$tag = undef;
- $datesort = 'ASC';
+ $datesort = 'ASC NULLS LAST';
}
# Fix common error: pr0n.sesse.net/event -> pr0n.sesse.net/event/
}
# Any NEF files => default to processing
- my $ref = $dbh->selectrow_hashref("SELECT * FROM images WHERE vhost=? $where AND LOWER(filename) LIKE '%.nef' LIMIT 1",
+ my $ref = $dbh->selectrow_hashref("SELECT * FROM images WHERE vhost=? $where AND ( LOWER(filename) LIKE '%.nef' OR LOWER(filename) LIKE '%.cr2' ) LIMIT 1",
undef, $r->get_server_name)
and $defsettings{'xres'} = $defsettings{'yres'} = undef;
if (($s eq "num" || $s eq "xres" || $s eq "yres") && defined($val) && $val == -1) {
$settings{$s} = $val;
}
- if ($s eq "model" || $s eq "lens" || $s eq "author") {
+ if (($s eq "model" || $s eq "lens" || $s eq "author") && defined($val)) {
$settings{$s} = Sesse::pr0n::Common::pretty_unescape($val);
}
}
my ($date, $name);
if ($event eq '+all' || defined($tag)) {
- $ref = $dbh->selectrow_hashref("SELECT EXTRACT(EPOCH FROM MAX(last_update)) AS last_update FROM events WHERE vhost=?",
+ $ref = $dbh->selectrow_hashref("SELECT EXTRACT(EPOCH FROM MAX(last_update)) AS last_update FROM last_picture_cache WHERE vhost=?",
undef, $r->get_server_name)
or error($r, "Could not list events", 404, "File not found");
$date = undef;
$name = Sesse::pr0n::Templates::fetch_template($r, 'all-event-title');
$r->set_last_modified($ref->{'last_update'});
} else {
- $ref = $dbh->selectrow_hashref("SELECT name,date,EXTRACT(EPOCH FROM last_update) AS last_update FROM events WHERE vhost=? AND event=?",
+ $ref = $dbh->selectrow_hashref("SELECT name,date,EXTRACT(EPOCH FROM last_update) AS last_update FROM events NATURAL JOIN last_picture_cache WHERE vhost=? AND event=?",
undef, $r->get_server_name, $event)
or error($r, "Could not find event $event", 404, "File not found");
# Find all images related to this event.
my $limit = (defined($start) && defined($num) && !$settings{'fullscreen'}) ? (" LIMIT $num OFFSET " . ($start-1)) : "";
- my $q = $dbh->prepare("SELECT *, (date - INTERVAL '6 hours')::date AS day FROM images WHERE vhost=? $where ORDER BY COALESCE((date - INTERVAL '6 hours')::date, '1970-01-01') $datesort,takenby,date,filename $limit")
+ my $q = $dbh->prepare("SELECT *, (date - INTERVAL '6 hours')::date AS day FROM images WHERE vhost=? $where ORDER BY (date - INTERVAL '6 hours')::date $datesort,takenby,date,filename $limit")
or dberror($r, "prepare()");
$q->execute($r->get_server_name)
or dberror($r, "image enumeration");
my $returnurl = "http://" . $r->get_server_name . "/" . $event . "/" .
Sesse::pr0n::Common::get_query_string(\%settings_no_fullscreen, \%defsettings);
- my %settings_bookmark = %settings;
- $settings_bookmark{'start'} = $defsettings{'start'};
- my $bookmark_url_base = "http://" . $r->get_server_name . "/" . $event . "/" .
- Sesse::pr0n::Common::get_query_string(\%settings_bookmark, \%defsettings);
-
- if ($bookmark_url_base =~ /\?/) {
- $bookmark_url_base .= ';start=';
- } else {
- $bookmark_url_base .= '?start=';
- }
-
# *whistle*
$returnurl =~ s/&/&/g;
- $bookmark_url_base =~ s/&/&/g;
Sesse::pr0n::Templates::print_template($r, "fullscreen-footer", {
vhost => $r->get_server_name,
- start => $settings{'start'} - 1,
returnurl => $returnurl,
- bookmarkurlbase => $bookmark_url_base,
+ start => $settings{'start'} - 1,
sel => $settings{'sel'},
infobox => $infobox
});
}
sub print_viewres {
my ($r, $event, $settings, $defsettings) = @_;
- my @alternatives = qw(320x256 512x384 640x480 800x600 1024x768 1280x960 1400x1050 1600x1200);
+ my @alternatives = qw(320x256 512x384 640x480 800x600 1024x768 1152x864 1280x960 1400x1050 1600x1200 1920x1440 2048x1536);
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, undef, undef ];