]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Mbox.pm
smsg: remove remaining accessor methods
[public-inbox.git] / lib / PublicInbox / Mbox.pm
index 9995140cd8228db8b26313927d04e432a3007cf2..b46dacfdc8835e70a63b5ec591db40487385d9bf 100644 (file)
@@ -14,19 +14,13 @@ use PublicInbox::MID qw/mid_escape/;
 use PublicInbox::Hval qw/to_filename/;
 use PublicInbox::Smsg;
 use PublicInbox::WwwStream qw(html_oneshot);
-use Email::Simple;
-use Email::MIME::Encode;
+use PublicInbox::Eml;
 
 sub subject_fn ($) {
        my ($hdr) = @_;
-       my $fn = $hdr->header('Subject');
+       my $fn = $hdr->header_str('Subject');
        return 'no-subject' if (!defined($fn) || $fn eq '');
 
-       # no need for full Email::MIME, here
-       if ($fn =~ /=\?/) {
-               eval { $fn = Encode::decode('MIME-Header', $fn) };
-               return 'no-subject' if $@;
-       }
        $fn =~ s/^re:\s+//i;
        $fn eq '' ? 'no-subject' : to_filename($fn);
 }
@@ -51,7 +45,7 @@ sub getline {
        my $ibx = $ctx->{-inbox};
        $next = $ibx->over->next_by_mid($ctx->{mid}, \$id, \$prev);
        $mref = $ibx->msg_by_smsg($cur) or return;
-       $hdr = Email::Simple->new($mref)->header_obj;
+       $hdr = PublicInbox::Eml->new($mref)->header_obj;
        @$more = ($ctx, $id, $prev, $next); # $next may be undef, here
        msg_hdr($ctx, $hdr) . msg_body($$mref);
 }
@@ -72,7 +66,7 @@ sub emit_raw {
        } else {
                $mref = $ibx->msg_by_mid($mid) or return;
        }
-       my $hdr = Email::Simple->new($mref)->header_obj;
+       my $hdr = PublicInbox::Eml->new($mref)->header_obj;
        $more = [ $ctx, $id, $prev, $next, $mref, $hdr ]; # for ->getline
        my $fn = subject_fn($hdr);
        my @hdr = ('Content-Type');
@@ -114,7 +108,7 @@ sub msg_hdr ($$;$) {
        for (my $i = 0; $i < @append; $i += 2) {
                my $k = $append[$i];
                my $v = $append[$i + 1];
-               my @v = $header_obj->header($k);
+               my @v = $header_obj->header_raw($k);
                foreach (@v) {
                        if ($v eq $_) {
                                $v = undef;
@@ -152,13 +146,12 @@ sub thread_cb {
 
 sub thread_mbox {
        my ($ctx, $over, $sfx) = @_;
-       eval { require PublicInbox::MboxGz };
-       return need_gzip($ctx) if $@;
+       require PublicInbox::MboxGz;
        my $msgs = $ctx->{msgs} = $over->get_thread($ctx->{mid}, {});
        return [404, [qw(Content-Type text/plain)], []] if !@$msgs;
        $ctx->{prev} = $msgs->[-1];
        $ctx->{over} = $over; # bump refcnt
-       PublicInbox::MboxGz->response($ctx, \&thread_cb, $msgs->[0]->subject);
+       PublicInbox::MboxGz->response($ctx, \&thread_cb, $msgs->[0]->{subject});
 }
 
 sub emit_range {
@@ -221,8 +214,7 @@ sub results_cb {
 sub mbox_all {
        my ($ctx, $query) = @_;
 
-       eval { require PublicInbox::MboxGz };
-       return need_gzip($ctx) if $@;
+       require PublicInbox::MboxGz;
        return mbox_all_ids($ctx) if $query eq '';
        my $qopts = $ctx->{qopts} = { mset => 2 };
        my $srch = $ctx->{srch} = $ctx->{-inbox}->search or
@@ -236,15 +228,4 @@ sub mbox_all {
        PublicInbox::MboxGz->response($ctx, \&results_cb, 'results-'.$query);
 }
 
-sub need_gzip {
-       html_oneshot($_[0], 501, \<<EOF);
-<pre>gzipped mbox not available
-
-The administrator needs to install the Compress::Raw::Zlib Perl module
-to support gzipped mboxes.
-
-<a href="../">Return to index</a></pre>
-EOF
-}
-
 1;