From 0da69a193501107ba36aeb567b90c90d52dc6d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Piboub=C3=A8s?= Date: Mon, 10 Aug 2015 00:33:48 +0200 Subject: [PATCH] Ability to open highlighted subreddit and go back --- rtv/subreddit.py | 1 - rtv/subscriptions.py | 27 +++++++++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/rtv/subreddit.py b/rtv/subreddit.py index 4c9e448..5b2ca41 100644 --- a/rtv/subreddit.py +++ b/rtv/subreddit.py @@ -169,7 +169,6 @@ class SubredditPage(BasePage): page = SubscriptionPage(self.stdscr, self.reddit) page.loop() - self.refresh_content() @staticmethod def draw_item(win, data, inverted=False): diff --git a/rtv/subscriptions.py b/rtv/subscriptions.py index 81b3e5a..39f9c87 100644 --- a/rtv/subscriptions.py +++ b/rtv/subscriptions.py @@ -37,16 +37,23 @@ class SubscriptionPage(BasePage): def refresh_content(self): "Re-download all subscriptions and reset the page index" - try: - self.content = SubscriptionContent.get_list(self.reddit, self.loader) - except AccountError: - show_notification(self.stdscr, ['Not logged in']) - except SubredditError: - show_notification(self.stdscr, ['Invalid subreddit']) - except requests.HTTPError: - show_notification(self.stdscr, ['Could not reach subreddit']) - else: - self.nav = Navigator(self.content.get) + self.content = SubscriptionContent.get_list(self.reddit, self.loader) + self.nav = Navigator(self.content.get) + + @SubscriptionController.register(curses.KEY_ENTER, 10) + def open_selected_subreddit(self): + "Open the selected subreddit" + + from .subreddit import SubredditPage + data = self.content.get(self.nav.absolute_index) + page = SubredditPage(self.stdscr, self.reddit, data['name'][2:]) # Strip the leading /r + page.loop() + + @SubscriptionController.register(curses.KEY_LEFT) + def close_subscriptions(self): + "Close subscriptions and return to the subreddit page" + + self.active = False @staticmethod def draw_item(win, data, inverted=False):