use PublicInbox::MIME;
use PublicInbox::View;
use PublicInbox::WwwAtomStream;
+use PublicInbox::SearchMsg; # this loads w/o Search::Xapian
# main function
sub generate {
my ($ctx) = @_;
- my $oids = recent_blobs($ctx);
- return _no_thread() unless @$oids;
+ my $msgs = recent_msgs($ctx);
+ return _no_thread() unless @$msgs;
- my $git = $ctx->{-inbox}->git;
+ my $ibx = $ctx->{-inbox};
PublicInbox::WwwAtomStream->response($ctx, 200, sub {
- while (my $oid = shift @$oids) {
- my $msg = $git->cat_file($oid) or next;
- return PublicInbox::MIME->new($msg);
+ while (my $smsg = shift @$msgs) {
+ $ibx->smsg_mime($smsg) and return $smsg;
}
});
}
$ctx->{-html_url} = $html_url;
my $msgs = $res->{msgs};
PublicInbox::WwwAtomStream->response($ctx, 200, sub {
- while (my $msg = shift @$msgs) {
- $msg = $ibx->msg_by_smsg($msg) and
- return PublicInbox::MIME->new($msg);
+ while (my $smsg = shift @$msgs) {
+ $ibx->smsg_mime($smsg) and return $smsg;
}
});
}
sub new_html {
my ($ctx) = @_;
- my $oids = recent_blobs($ctx);
- if (!@$oids) {
+ my $msgs = recent_msgs($ctx);
+ if (!@$msgs) {
return [404, ['Content-Type', 'text/plain'],
["No messages, yet\n"] ];
}
$ctx->{-html_tip} = '<pre>';
$ctx->{-upfx} = '';
$ctx->{-hr} = 1;
- my $git = $ctx->{-inbox}->git;
+ my $ibx = $ctx->{-inbox};
PublicInbox::WwwStream->response($ctx, 200, sub {
- while (my $oid = shift @$oids) {
- my $msg = $git->cat_file($oid) or next;
- my $m = PublicInbox::MIME->new($msg);
- my $more = scalar @$oids;
+ while (my $smsg = shift @$msgs) {
+ my $m = $ibx->smsg_mime($smsg) or next;
+ my $more = scalar @$msgs;
return PublicInbox::View::index_entry($m, $ctx, $more);
}
new_html_footer($ctx);
"<hr><pre>page: $next$latest</pre>";
}
-sub recent_blobs {
+sub recent_msgs {
my ($ctx) = @_;
my $ibx = $ctx->{-inbox};
my $max = $ibx->{feedmax};
my $res = $srch->query('', { limit => $max, offset => $o });
my $next = $o + $max;
$ctx->{next_page} = "o=$next" if $res->{total} >= $next;
- return [ map { $_->{blob} } @{$res->{msgs}} ];
+ return $res->{msgs};
}
my $hex = '[a-f0-9]';
}
$ctx->{next_page} = "r=$last_commit" if $last_commit;
- \@oids;
+ [ map { bless {blob => $_ }, 'PublicInbox::SearchMsg' } @oids ];
}
1;