about summary refs log tree commit homepage
path: root/lib/PublicInbox/Feed.pm
diff options
context:
space:
mode:
authorEric Wong (Contractor, The Linux Foundation) <e@80x24.org>2018-04-03 11:09:09 +0000
committerEric Wong (Contractor, The Linux Foundation) <e@80x24.org>2018-04-03 12:06:13 +0000
commitb9534449ecce2c59bb4aebad6051f91c3116b187 (patch)
treeb355db7453fb8916a8b480d35b2ea8fccee78844 /lib/PublicInbox/Feed.pm
parentf91753f00b760c0e06eb0384792e5b18bd99bb0f (diff)
downloadpublic-inbox-b9534449ecce2c59bb4aebad6051f91c3116b187.tar.gz
OFFSET in SQLite gets painful to deal with.  Instead,
rely on timestamps (from Received:) for pagination.
This also sets us up for more precise Date searching
in case we want it.
Diffstat (limited to 'lib/PublicInbox/Feed.pm')
-rw-r--r--lib/PublicInbox/Feed.pm25
1 files changed, 2 insertions, 23 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index ff20d7fa..5cb044bd 100644
--- a/lib/PublicInbox/Feed.pm
+++ b/lib/PublicInbox/Feed.pm
@@ -75,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');
         });
 }
 
@@ -85,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!<a\nhref="?$next"\nrel=next>next</a>!;
-        }
-        if (!$qp) {
-                $latest = qq! <a\nhref='./new.html'>latest</a>!;
-                $next ||= '    ';
-        }
-        "<hr><pre>page: $next$latest</pre>";
-}
-
 sub recent_msgs {
         my ($ctx) = @_;
         my $ibx = $ctx->{-inbox};
@@ -110,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 $msgs = $ibx->recent({ limit => $max, offset => $o });
-                my $next = $o + $max;
-                $ctx->{next_page} = "o=$next" if scalar(@$msgs) == $max;
-                return $msgs;
+                return PublicInbox::View::paginate_recent($ctx);
         }
 
         my $hex = '[a-f0-9]';