]> Sergey Matveev's repositories - public-inbox.git/blobdiff - Documentation/mknews.perl
wwwstream: reduce object graph depth
[public-inbox.git] / Documentation / mknews.perl
index d803ca7753b1b716dc7cb05003194e419220eba8..1bd704e68247afe18b6b85b76f4d4cd7bc52d284 100755 (executable)
@@ -5,7 +5,7 @@
 # this uses unstable internal APIs of public-inbox, and this script
 # needs to be updated if they change.
 use strict;
-use PublicInbox::MIME;
+use PublicInbox::Eml;
 use PublicInbox::View;
 use PublicInbox::MsgTime qw(msg_datestamp);
 use PublicInbox::MID qw(mids mid_escape);
@@ -76,7 +76,7 @@ sub release2mime {
        my ($release, $mtime_ref) = @_;
        my $f = "$dir/$release.eml";
        open(my $fh, '<', $f) or die "open($f): $!";
-       my $mime = PublicInbox::MIME->new(do { local $/; <$fh> });
+       my $mime = PublicInbox::Eml->new(\(do { local $/; <$fh> }));
        # Documentation/include.mk relies on mtimes of each .eml file
        # to trigger rebuild, so make sure we sync the mtime to the Date:
        # header in the .eml
@@ -102,16 +102,17 @@ sub mime2txt {
 }
 
 sub mime2html {
-       my ($out, $mime, $ctx) = @_;
-       my $smsg = bless { mime => $mime }, 'PublicInbox::SearchMsg';
-       print $out PublicInbox::View::index_entry($smsg, $ctx, 1) or die;
+       my ($out, $eml, $ctx) = @_;
+       my $smsg = bless {}, 'PublicInbox::Smsg';
+       $smsg->populate($eml);
+       print $out PublicInbox::View::eml_entry($ctx, $smsg, $eml, 1) or die;
 }
 
 sub html_start {
        my ($out, $ctx) = @_;
        require PublicInbox::WwwStream;
        $ctx->{www} = My::MockObject->new(style => '');
-       my $www_stream = PublicInbox::WwwStream->new($ctx);
+       my $www_stream = PublicInbox::WwwStream::init($ctx);
        print $out $www_stream->_html_top, '<pre>' or die;
 }
 
@@ -127,10 +128,10 @@ sub atom_start {
        require PublicInbox::WwwAtomStream;
        # WwwAtomStream stats this dir for mtime
        my $astream = PublicInbox::WwwAtomStream->new($ctx);
-       delete $ctx->{emit_header};
+       delete $astream->{emit_header};
        my $ibx = $ctx->{-inbox};
        my $title = PublicInbox::WwwAtomStream::title_tag($ibx->description);
-       my $updated = PublicInbox::WwwAtomStream::feed_updated(gmtime($mtime));
+       my $updated = PublicInbox::WwwAtomStream::feed_updated($mtime);
        print $out <<EOF or die;
 <?xml version="1.0" encoding="us-ascii"?>
 <feed
@@ -146,9 +147,10 @@ EOF
 }
 
 sub mime2atom  {
-       my ($out, $astream, $mime, $ctx) = @_;
-       my $smsg = bless { mime => $mime }, 'PublicInbox::SearchMsg';
-       if (defined(my $str = $astream->feed_entry($smsg))) {
+       my ($out, $astream, $eml, $ctx) = @_;
+       my $smsg = bless {}, 'PublicInbox::Smsg';
+       $smsg->populate($eml);
+       if (defined(my $str = $astream->feed_entry($smsg, $eml))) {
                print $out $str or die;
        }
 }