From def0e5441e5c54e6e1322e373f42e1bbd9609ea0 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Wed, 6 Dec 2023 07:33:31 +0000 Subject: [PATCH] UNTESTED: beep and go to [ESC][R] on a message. --- client.py | 10 ++++++---- cursesclient.py | 12 +++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/client.py b/client.py index 8e29ae0..317dbfb 100644 --- a/client.py +++ b/client.py @@ -190,22 +190,24 @@ class IncrementalServerFeed(Feed): 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): diff --git a/cursesclient.py b/cursesclient.py index 5d2106a..e057d42 100644 --- a/cursesclient.py +++ b/cursesclient.py @@ -144,7 +144,17 @@ class CursesUI(client.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( -- 2.30.2