- my ($first, $more);
- my $smsg;
- if (my $over = $ibx->over) {
- my ($id, $prev);
- $smsg = $over->next_by_mid($mid, \$id, \$prev);
- $first = $ibx->msg_by_smsg($smsg) if $smsg;
- if ($first) {
- my $next = $over->next_by_mid($mid, \$id, \$prev);
- $more = [ $id, $prev, $next ] if $next;
- }
- return unless $first;
- } else {
- $first = $ibx->msg_by_mid($mid) or return;
- }
- msg_html($ctx, PublicInbox::MIME->new($first), $more, $smsg);
-}
-
-sub msg_html_more {
- my ($ctx, $more, $nr) = @_;
- my $str = eval {
- my ($id, $prev, $smsg) = @$more;
- my $mid = $ctx->{mid};
- my $ibx = $ctx->{-inbox};
- $smsg = $ibx->smsg_mime($smsg);
- my $next = $ibx->over->next_by_mid($mid, \$id, \$prev);
- @$more = $next ? ($id, $prev, $next) : ();
- if ($smsg) {
- my $mime = $smsg->{mime};
- my $upfx = '../' . mid_escape($smsg->mid) . '/';
- _msg_html_prepare($mime->header_obj, $ctx, $more, $nr) .
- multipart_text_as_html($mime, $upfx, $ctx) .
- '</pre><hr>'
- } else {
- '';
- }
- };
- if ($@) {
- warn "Error lookup up additional messages: $@\n";
- $str = '<pre>Error looking up additional messages</pre>';
- }
- $str;
+ $ctx->{-obfs_ibx} = $ibx->{obfuscate} ? $ibx : undef;
+ my $over = $ctx->{over} = $ibx->over or return no_over_html($ctx);
+ my ($id, $prev);
+ my $next_arg = $ctx->{next_arg} = [ $ctx->{mid}, \$id, \$prev ];
+ $ctx->{smsg} = $over->next_by_mid(@$next_arg) or return; # undef == 404
+ PublicInbox::WwwStream::aresponse($ctx, 200, \&msg_page_i);