about summary refs log tree commit diff
path: root/app/models/feed.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2018-10-02 12:01:40 +0200
committerGitHub <noreply@github.com>2018-10-02 12:01:40 +0200
commit35e9d099b3febd75d1613dfc8a494e769a98c3a6 (patch)
tree2aceaee757bd292e3d05811673a7bfe419e7b064 /app/models/feed.rb
parent4e60a0d5433f5dfa4f71a452cc5c6ceb0f21ceab (diff)
parent6ad76069096005d7b55d9c63a567f843997a8068 (diff)
Merge pull request #758 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/models/feed.rb')
-rw-r--r--app/models/feed.rb16
1 files changed, 10 insertions, 6 deletions
diff --git a/app/models/feed.rb b/app/models/feed.rb
index d99f1ffb2..5bce88f25 100644
--- a/app/models/feed.rb
+++ b/app/models/feed.rb
@@ -6,16 +6,20 @@ class Feed
     @id   = id
   end
 
-  def get(limit, max_id = nil, since_id = nil)
-    from_redis(limit, max_id, since_id)
+  def get(limit, max_id = nil, since_id = nil, min_id = nil)
+    from_redis(limit, max_id, since_id, min_id)
   end
 
   protected
 
-  def from_redis(limit, max_id, since_id)
-    max_id     = '+inf' if max_id.blank?
-    since_id   = '-inf' if since_id.blank?
-    unhydrated = redis.zrevrangebyscore(key, "(#{max_id}", "(#{since_id}", limit: [0, limit], with_scores: true).map(&:first).map(&:to_i)
+  def from_redis(limit, max_id, since_id, min_id)
+    if min_id.blank?
+      max_id     = '+inf' if max_id.blank?
+      since_id   = '-inf' if since_id.blank?
+      unhydrated = redis.zrevrangebyscore(key, "(#{max_id}", "(#{since_id}", limit: [0, limit], with_scores: true).map(&:first).map(&:to_i)
+    else
+      unhydrated = redis.zrangebyscore(key, "(#{min_id}", '+inf', limit: [0, limit], with_scores: true).map(&:first).map(&:to_i)
+    end
 
     Status.where(id: unhydrated).cache_ids
   end