def extend_past(self):
if not self.started:
- return
+ return None
data, links = self.client.get_incremental_cont(self.next_link)
if len(data) == 0:
- return
+ return False
self.data[0:0] = list(self.get(d) for d in reversed(data))
self.origin += len(data)
self.next_link = links['next']
+ return len(data) > 0
def extend_future(self):
if not self.started:
- return
+ return None
data, links = self.client.get_incremental_cont(self.prev_link)
if len(data) == 0:
- return
+ return False
self.data.extend(self.get(d) for d in reversed(data))
self.prev_link = links['prev']
+ return len(data) > 0
class HomeTimelineFeed(IncrementalServerFeed):
def __init__(self, client):
def extend_both():
home_feed.extend_future()
- mentions_feed.extend_future()
+ if mentions_feed.extend_future():
+ curses.beep()
+ # FIXME: should we try to replicate Mono's ~1s delay
+ # before throwing you into messages?
+
+ # FIXME: this is also the point to check if the
+ # topmost activity is uninterruptible, e.g. an editor
+ if not any(a is self.mentions_feed
+ for a in self.activity_stack):
+ self.activity_stack.append(self.mentions_feed)
+
self.add_streaming_selfpipe("streaming/user", extend_both)
self.home_timeline = StatusFile(