]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/WWW.pm
wwwstream: reduce blob fetch paths for ->getline
[public-inbox.git] / lib / PublicInbox / WWW.pm
index 3a428218f783c85849085a1fec549fcaf260adfc..e4ad515a4d341d03ef5014f18d0a783c44c8fb31 100644 (file)
@@ -22,6 +22,7 @@ use PublicInbox::MID qw(mid_escape);
 use PublicInbox::GitHTTPBackend;
 use PublicInbox::UserContent;
 use PublicInbox::WwwStatic qw(r path_info_raw);
+use PublicInbox::Eml;
 
 # TODO: consider a routing tree now that we have more endpoints:
 our $INBOX_RE = qr!\A/([\w\-][\w\.\-]*)!;
@@ -151,7 +152,7 @@ sub preload {
        require PublicInbox::Feed;
        require PublicInbox::View;
        require PublicInbox::SearchThread;
-       require PublicInbox::MIME;
+       require PublicInbox::Eml;
        require PublicInbox::Mbox;
        require PublicInbox::ViewVCS;
        require PublicInbox::WwwText;
@@ -231,9 +232,8 @@ sub invalid_inbox_mid {
                my ($x2, $x38) = ($1, $2);
                # this is horrifically wasteful for legacy URLs:
                my $str = $ctx->{-inbox}->msg_by_path("$x2/$x38") or return;
-               require Email::Simple;
-               my $s = Email::Simple->new($str);
-               $mid = PublicInbox::MID::mid_clean($s->header('Message-ID'));
+               my $s = PublicInbox::Eml->new($str);
+               $mid = PublicInbox::MID::mid_clean($s->header_raw('Message-ID'));
                return r301($ctx, $inbox, mid_escape($mid));
        }
        undef;
@@ -322,12 +322,11 @@ sub get_altid_dump {
 
 sub need {
        my ($ctx, $extra) = @_;
-       my $msg = <<EOF;
-<html><head><title>$extra not available for this
-public-inbox</title><body><pre>$extra is not available for this public-inbox
-<a href="../">Return to index</a></pre></body></html>
+       require PublicInbox::WwwStream;
+       PublicInbox::WwwStream::html_oneshot($ctx, 501, \<<EOF);
+<pre>$extra is not available for this public-inbox
+<a\nhref="../">Return to index</a></pre>
 EOF
-       [ 501, [ 'Content-Type' => 'text/html; charset=UTF-8' ], [ $msg ] ];
 }
 
 # /$INBOX/$MESSAGE_ID/t.mbox           -> thread as mbox