X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FFeed.pm;h=d7df07ee9c4577a1d15fe5410f68e6bdd68ee3e2;hb=be4d92e74dd0b1c8de85bc08c3c522af2d8d8656;hp=f2285a686d22f2a019da6c859d52ff84f860c962;hpb=956abe9ad5f13a0d1755262be412d6a54fda72e9;p=public-inbox.git diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index f2285a68..d7df07ee 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -27,14 +27,13 @@ sub generate { sub generate_thread_atom { my ($ctx) = @_; my $mid = $ctx->{mid}; - my $res = $ctx->{srch}->get_thread($mid); - return _no_thread() unless $res->{total}; + my $msgs = $ctx->{srch}->get_thread($mid); + return _no_thread() unless @$msgs; my $ibx = $ctx->{-inbox}; my $html_url = $ibx->base_url($ctx->{env}); $html_url .= PublicInbox::Hval->new_msgid($mid)->{href}; $ctx->{-html_url} = $html_url; - my $msgs = $res->{msgs}; PublicInbox::WwwAtomStream->response($ctx, 200, sub { while (my $smsg = shift @$msgs) { $ibx->smsg_mime($smsg) and return $smsg; @@ -76,7 +75,7 @@ sub new_html { my $more = scalar @$msgs; return PublicInbox::View::index_entry($m, $ctx, $more); } - new_html_footer($ctx); + PublicInbox::View::pagination_footer($ctx, './new.html'); }); } @@ -86,21 +85,6 @@ sub _no_thread () { [404, ['Content-Type', 'text/plain'], ["No feed found for thread\n"]]; } -sub new_html_footer { - my ($ctx) = @_; - my $qp = delete $ctx->{qp} or return; - my $latest = ''; - my $next = delete $ctx->{next_page} || ''; - if ($next) { - $next = qq!next!; - } - if (!$qp) { - $latest = qq! latest!; - $next ||= ' '; - } - "
page: $next$latest
"; -} - sub recent_msgs { my ($ctx) = @_; my $ibx = $ctx->{-inbox}; @@ -111,13 +95,7 @@ sub recent_msgs { die "BUG: unsupported inbox version: $v\n"; } if (my $srch = $ibx->search) { - my $o = $qp ? $qp->{o} : 0; - $o += 0; - $o = 0 if $o < 0; - my $res = $srch->query('', { limit => $max, offset => $o }); - my $next = $o + $max; - $ctx->{next_page} = "o=$next" if $res->{total} >= $next; - return $res->{msgs}; + return PublicInbox::View::paginate_recent($ctx, $max); } my $hex = '[a-f0-9]';