]> Sergey Matveev's repositories - public-inbox.git/blobdiff - Documentation/mknews.perl
www: improve navigation around contemporary threads
[public-inbox.git] / Documentation / mknews.perl
index 3bdebfce7a5c1a9ab4fe98f77eb9d8fd25a51c23..510a4e1810558e5a74efdbdd4386bdb81b00644c 100755 (executable)
@@ -7,6 +7,7 @@
 use strict;
 use PublicInbox::Eml;
 use PublicInbox::View;
+use PublicInbox::Hval qw(fmt_ts);
 use PublicInbox::MsgTime qw(msg_datestamp);
 use PublicInbox::MID qw(mids mid_escape);
 END { $INC{'Plack/Util.pm'} and warn "$0 should not have loaded Plack::Util\n" }
@@ -37,7 +38,7 @@ if ($dst eq 'NEWS') {
        my $ibx = My::MockObject->new(
                description => 'public-inbox releases',
                over => undef,
-               search => 1, # for WwwStream:_html_top
+               search => 1, # for WwwStream::html_top
                base_url => "$base_url/",
        );
        $ibx->{-primary_address} = $addr;
@@ -91,7 +92,7 @@ sub mime2txt {
        my $title = $mime->header('Subject');
        $title =~ s/^\s*\[\w+\]\s*//g; # [ANNOUNCE] or [ANN]
        my $dtime = msg_datestamp($mime->header_obj);
-       $title .= ' - ' . PublicInbox::View::fmt_ts($dtime) . ' UTC';
+       $title .= ' - ' . fmt_ts($dtime) . ' UTC';
        print $out $title, "\n" or die;
        my $uline = '=' x length($title);
        print $out $uline, "\n\n" or die;
@@ -102,17 +103,19 @@ sub mime2txt {
 }
 
 sub mime2html {
-       my ($out, $mime, $ctx) = @_;
-       my $smsg = bless { mime => $mime }, 'PublicInbox::Smsg';
-       print $out PublicInbox::View::index_entry($smsg, $ctx, 1) or die;
+       my ($out, $eml, $ctx) = @_;
+       my $smsg = $ctx->{smsg} = bless {}, 'PublicInbox::Smsg';
+       $smsg->populate($eml);
+       $ctx->{msgs} = [ 1 ]; # for <hr> in eml_entry
+       print $out PublicInbox::View::eml_entry($ctx, $eml) or die;
 }
 
 sub html_start {
        my ($out, $ctx) = @_;
        require PublicInbox::WwwStream;
        $ctx->{www} = My::MockObject->new(style => '');
-       my $www_stream = PublicInbox::WwwStream->new($ctx);
-       print $out $www_stream->_html_top, '<pre>' or die;
+       my $www_stream = PublicInbox::WwwStream::init($ctx);
+       print $out $www_stream->html_top, '<pre>' or die;
 }
 
 sub html_end {
@@ -130,7 +133,7 @@ sub atom_start {
        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 +149,10 @@ EOF
 }
 
 sub mime2atom  {
-       my ($out, $astream, $mime, $ctx) = @_;
-       my $smsg = bless { mime => $mime }, 'PublicInbox::Smsg';
-       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;
        }
 }