-# Copyright (C) 2014, Eric Wong <normalperson@yhbt.net> and all contributors
+# Copyright (C) 2014-2015 all contributors <meta@public-inbox.org>
# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt)
#
# We focus on the lowest common denominators here:
} elsif ($path_info =~ m!$LISTNAME_RE/$MID_RE/$END_RE\z!o) {
msg_page($ctx, $1, $2, $3);
+ # in case people leave off the trailing slash:
+ } elsif ($path_info =~ m!$LISTNAME_RE/$MID_RE/(f|T|t)\z!o) {
+ r301($ctx, $1, $2, $3 eq 't' ? 't/#u' : $3);
+
# convenience redirects order matters
} elsif ($path_info =~ m!$LISTNAME_RE/([^/]{2,})\z!o) {
r301($ctx, $1, $2);
eval {
require PublicInbox::Search;
+ require PublicInbox::SearchView;
require PublicInbox::Mbox;
require IO::Compress::Gzip;
};
my ($ctx) = @_;
if ($ctx && $ctx->{mid}) {
require PublicInbox::ExtMsg;
+ searcher($ctx);
return PublicInbox::ExtMsg::ext_msg($ctx);
}
r(404, 'Not Found');
require PublicInbox::Feed;
my $srch = searcher($ctx);
footer($ctx);
- PublicInbox::Feed::generate_html_index($ctx);
+ if (defined $ctx->{cgi}->param('q')) {
+ require PublicInbox::SearchView;
+ PublicInbox::SearchView::sres_top_html($ctx);
+ } else {
+ PublicInbox::Feed::generate_html_index($ctx);
+ }
}
# just returns a string ref for the blob in the current ctx
my ($ctx) = @_;
my $x = mid2blob($ctx) or return r404($ctx);
require PublicInbox::Mbox;
- PublicInbox::Mbox::emit1($x);
+ PublicInbox::Mbox::emit1($ctx, $x);
}
# /$LISTNAME/$MESSAGE_ID/ -> HTML content (short quotes)
} elsif ($path_info =~ m!$LISTNAME_RE/(\S+/\S+)/$END_RE\z!o) {
msg_page($ctx, $1, $2, $3);
+ # in case people leave off the trailing slash:
+ } elsif ($path_info =~ m!$LISTNAME_RE/(\S+/\S+)/(f|T|t)\z!o) {
+ r301($ctx, $1, $2, $3 eq 't' ? 't/#u' : $3);
} else {
r404();
}