Fixed refresh so it stays on the currently selected timeline

Fixes issue #337
This commit is contained in:
Daniel Schwarz 2023-03-09 17:30:04 -05:00 committed by Ivan Habunek
parent 9006517cc7
commit 9999d975b4
No known key found for this signature in database
GPG Key ID: CDBD63C43A30BB95
1 changed files with 21 additions and 3 deletions

View File

@ -493,7 +493,7 @@ class TUI(urwid.Frame):
def goto_public_timeline(self, local):
self.timeline_generator = api.public_timeline_generator(
self.app, self.user, local=local, limit=40)
promise = self.async_load_timeline(is_initial=True, timeline_name="public")
promise = self.async_load_timeline(is_initial=True, timeline_name="local public" if local else "global public")
promise.add_done_callback(lambda *args: self.close_overlay())
def goto_bookmarks(self):
@ -733,8 +733,26 @@ class TUI(urwid.Frame):
elif key == ',':
if not self.overlay:
self.timeline_generator = api.home_timeline_generator(
self.app, self.user, limit=40)
if self.timeline.name == 'bookmarks':
return # no point in refreshing the bookmarks timeline
if self.timeline.name.startswith("#"):
self.timeline_generator = api.tag_timeline_generator(
self.app, self.user, self.timeline.name[1:], limit=40)
else:
if self.timeline.name.endswith('public'):
self.timeline_generator = api.public_timeline_generator(
self.app, self.user, local=self.timeline.name.startswith('local'), limit=40)
elif self.timeline.name == 'notifications':
self.timeline_generator = api.notification_timeline_generator(
self.app, self.user, limit=40)
elif self.timeline.name == 'conversations':
self.timeline_generator = api.conversation_timeline_generator(
self.app, self.user, limit=40)
else:
# default to home timeline
self.timeline_generator = api.home_timeline_generator(
self.app, self.user, limit=40)
self.async_load_timeline(is_initial=True, timeline_name=self.timeline.name)
elif key == 'esc':