package PublicInbox::Feed;
use strict;
use warnings;
-use PublicInbox::MIME;
use PublicInbox::View;
use PublicInbox::WwwAtomStream;
use PublicInbox::Smsg; # this loads w/o Search::Xapian
sub generate_i {
my ($ctx) = @_;
- while (my $smsg = shift @{$ctx->{msgs}}) {
- $ctx->{-inbox}->smsg_mime($smsg) and return $smsg;
- }
+ shift @{$ctx->{msgs}};
}
# main function
}
sub new_html_i {
- my ($nr, $ctx) = @_;
- my $msgs = $ctx->{msgs};
- while (my $smsg = shift @$msgs) {
- my $m = $ctx->{-inbox}->smsg_mime($smsg) or next;
- my $more = scalar @$msgs;
- return PublicInbox::View::index_entry($m, $ctx, $more);
- }
- PublicInbox::View::pagination_footer($ctx, './new.html');
+ my ($ctx, $eml) = @_;
+ $ctx->zmore($ctx->html_top) if exists $ctx->{-html_tip};
+
+ $eml and return PublicInbox::View::eml_entry($ctx, $eml);
+ my $smsg = shift @{$ctx->{msgs}} or
+ $ctx->zmore(PublicInbox::View::pagination_footer(
+ $ctx, './new.html'));
+ $smsg;
}
sub new_html {
$ctx->{-html_tip} = '<pre>';
$ctx->{-upfx} = '';
$ctx->{-hr} = 1;
- PublicInbox::WwwStream->response($ctx, 200, \&new_html_i);
+ PublicInbox::WwwStream::aresponse($ctx, 200, \&new_html_i);
}
# private subs