"""
def __init__(self, client):
self.client = client
+ def can_extend(self):
+ return False
+ def extend_past(self):
+ return False
+ def extend_future(self):
+ return False
class IncrementalServerFeed(Feed):
"""A Feed that fetches something from the server via get_incremental."""
def __getitem__(self, n):
return self.data[n + self.origin]
+ def can_extend(self):
+ return True
def extend_past(self):
if not self.started:
return None
def __getitem__(self, n):
return self.data[n]
- def extend_past(self):
- return False
- def extend_future(self):
- return False
-
class EgoFeed(IncrementalServerFeed):
def __init__(self, client):
super().__init__(client, "notifications", {
self.header = text.FileHeader(title)
self.constructor = constructor
- self.history_closed = False
+ self.history_closed = not self.feed.can_extend()
self.minpos = self.feed.min_index()
self.maxpos = self.feed.max_index()
self.statuses = {i: self.constructor(self.feed[i], cc)
def up_screen(self):
success = self.move_by(-max(1, self.cc.scr_h - 3))
- if not success:
+ if not success and not self.history_closed:
if not self.primed_to_extend:
self.primed_to_extend = True
else:
- self.feed.extend_past()
+ if self.feed.extend_past() is False: # None does not count
+ self.history_closed = True
self.primed_to_extend = False
def unprime(self):
self.primed_to_extend = False