}
$ctx->{-html_tip} = '<pre>';
$ctx->{-upfx} = '';
- my $res = PublicInbox::WwwStream->new($ctx, sub {
+ PublicInbox::WwwStream->response($ctx, 200, sub {
while (my $path = shift @paths) {
my $m = do_cat_mail($ctx->{-inbox}, $path) or next;
my $more = scalar @paths;
}
undef;
});
- [ 200, ['Content-Type', 'text/html; charset=UTF-8'], $res ]
}
# private subs
$cb = mset_summary($ctx, $mset, $q);
}
}
-
- [ $code, ['Content-Type', 'text/html; charset=UTF-8'],
- PublicInbox::WwwStream->new($ctx, $cb) ];
+ PublicInbox::WwwStream->response($ctx, $code, $cb);
}
# display non-threaded search results similar to what users expect from
my ($ctx, $mime, $footer) = @_;
my $hdr = $mime->header_obj;
my $tip = _msg_html_prepare($hdr, $ctx);
- PublicInbox::WwwStream->new($ctx, sub {
+ PublicInbox::WwwStream->response($ctx, 200, sub {
my ($nr, undef) = @_;
if ($nr == 1) {
$tip . multipart_text_as_html($mime, '') .
$mime = Email::MIME->new($mime);
$ctx->{-title_html} = ascii_html($mime->header('Subject'));
$ctx->{-html_tip} = thread_index_entry($ctx, $level, $mime);
- my $body = PublicInbox::WwwStream->new($ctx, sub {
+ PublicInbox::WwwStream->response($ctx, 200, sub {
return unless $ctx;
while (@q) {
$level = shift @q;
$ctx = undef;
$ret;
});
- [ 200, ['Content-Type', 'text/html; charset=UTF-8'], $body ];
}
sub thread_html {
$ctx->{-title_html} = ascii_html($mime->header('Subject'));
$ctx->{-html_tip} = '<pre>'.index_entry($mime, $ctx, scalar @$msgs);
$mime = undef;
- my $body = PublicInbox::WwwStream->new($ctx, sub {
+ PublicInbox::WwwStream->response($ctx, 200, sub {
return unless $msgs;
while ($mime = shift @$msgs) {
$mid = mid_clean(mid_mime($mime));
$msgs = undef;
'</pre>'.$skel;
});
- [ 200, ['Content-Type', 'text/html; charset=UTF-8'], $body ];
}
sub multipart_text_as_html {
require Email::MIME;
my $mime = Email::MIME->new($x);
searcher($ctx);
- [ 200, [ 'Content-Type' => 'text/html; charset=UTF-8' ],
- PublicInbox::View::msg_html($ctx, $mime, $foot) ];
+ PublicInbox::View::msg_html($ctx, $mime, $foot);
}
# /$INBOX/$MESSAGE_ID/t/
bless { nr => 0, cb => $cb, ctx => $ctx }, $class;
}
+sub response {
+ my ($class, $ctx, $code, $cb) = @_;
+ [ $code, [ 'Content-Type', 'text/html; charset=UTF-8' ],
+ $class->new($ctx, $cb) ]
+}
+
sub _html_top ($) {
my ($self) = @_;
my $ctx = $self->{ctx};
my ($mime) = @_;
my $s = '';
- my $body = PublicInbox::View::msg_html($ctx, $mime);
+ my $r = PublicInbox::View::msg_html($ctx, $mime);
+ my $body = $r->[2];
while (defined(my $buf = $body->getline)) {
$s .= $buf;
}