} elsif ($path_info =~ m!$INBOX_RE/$MID_RE/f/?\z!o) {
r301($ctx, $1, $2);
+ } elsif ($path_info =~ m!$INBOX_RE/_/text(?:/(.*))?\z!o) {
+ get_text($ctx, $1, $2);
# convenience redirects order matters
} elsif ($path_info =~ m!$INBOX_RE/([^/]{2,})\z!o) {
sub preload {
require PublicInbox::Feed;
require PublicInbox::View;
- require PublicInbox::Thread;
- require Email::MIME;
+ require PublicInbox::SearchThread;
+ require PublicInbox::MIME;
require Digest::SHA;
require POSIX;
my $ret = invalid_inbox($ctx, $inbox);
return $ret if $ret;
- $ctx->{mid} = $mid = uri_unescape($mid);
+ $ctx->{mid} = $mid;
if ($mid =~ /\A[a-f0-9]{40}\z/) {
# this is horiffically wasteful for legacy URLs:
if ($mid = mid2blob($ctx)) {
my $x = mid2blob($ctx) or return r404($ctx);
require PublicInbox::View;
- require Email::MIME;
- my $mime = Email::MIME->new($x);
+ require PublicInbox::MIME;
+ my $mime = PublicInbox::MIME->new($x);
searcher($ctx);
PublicInbox::View::msg_html($ctx, $mime);
}
PublicInbox::View::thread_html($ctx);
}
+# /$INBOX/_/text/$KEY/
+# /$INBOX/_/text/$KEY/raw
+# KEY may contain slashes
+sub get_text {
+ my ($ctx, $inbox, $key) = @_;
+ my $r404 = invalid_inbox($ctx, $inbox);
+ return $r404 if $r404;
+
+ require PublicInbox::WwwText;
+ PublicInbox::WwwText::get_text($ctx, $key);
+}
+
sub ctx_get {
my ($ctx, $key) = @_;
my $val = $ctx->{$key};