about summary refs log tree commit homepage
path: root/lib/PublicInbox/Over.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/Over.pm')
-rw-r--r--lib/PublicInbox/Over.pm24
1 files changed, 20 insertions, 4 deletions
diff --git a/lib/PublicInbox/Over.pm b/lib/PublicInbox/Over.pm
index a7fd1315..b230d44a 100644
--- a/lib/PublicInbox/Over.pm
+++ b/lib/PublicInbox/Over.pm
@@ -109,10 +109,26 @@ SELECT COUNT(num) $cond
 }
 
 sub recent {
-        my ($self, $opts) = @_;
-        my $msgs = do_get($self, <<'', $opts);
-SELECT * FROM over WHERE num > 0
-ORDER BY ts DESC
+        my ($self, $opts, $after, $before) = @_;
+        my ($s, @v);
+        if (defined($before)) {
+                if (defined($after)) {
+                        $s = 'num > 0 AND ts >= ? AND ts <= ? ORDER BY ts DESC';
+                        @v = ($after, $before);
+                } else {
+                        $s = 'num > 0 AND ts <= ? ORDER BY ts DESC';
+                        @v = ($before);
+                }
+        } else {
+                if (defined($after)) {
+                        $s = 'num > 0 AND ts >= ? ORDER BY ts ASC';
+                        @v = ($after);
+                } else {
+                        $s = 'num > 0 ORDER BY ts DESC';
+                }
+        }
+        my $msgs = do_get($self, <<"", $opts, @v);
+SELECT * FROM over WHERE $s
 
         return $msgs unless wantarray;