#!/usr/bin/perl -w
-# Copyright (C) 2019 all contributors <meta@public-inbox.org>
+# Copyright (C) 2019-2020 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
# Generates NEWS, NEWS.atom, and NEWS.html files using release emails
# 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);
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;
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
}
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);
- 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 {
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
}
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;
}
}