diff --git a/rtv/content.py b/rtv/content.py index f77c7a9..2586d89 100644 --- a/rtv/content.py +++ b/rtv/content.py @@ -153,7 +153,7 @@ class BaseContent(object): data = {} data['object'] = subscription data['type'] = 'Subscription' - data['name'] = "/r/" + subscription._case_name + data['name'] = "/r/" + subscription.display_name data['title'] = subscription.title return data diff --git a/rtv/subreddit.py b/rtv/subreddit.py index 5b2ca41..eaecef9 100644 --- a/rtv/subreddit.py +++ b/rtv/subreddit.py @@ -167,9 +167,15 @@ class SubredditPage(BasePage): show_notification(self.stdscr, ['Not logged in']) return + # Open subscriptions page page = SubscriptionPage(self.stdscr, self.reddit) page.loop() + # When user has chosen a subreddit in the subscriptions list, refresh content with the selected subreddit + chosen_subreddit = page.get_selected_subreddit_data() + if chosen_subreddit is not None: + self.refresh_content(name=chosen_subreddit['name']) + @staticmethod def draw_item(win, data, inverted=False): diff --git a/rtv/subscriptions.py b/rtv/subscriptions.py index 8097871..1bddf1a 100644 --- a/rtv/subscriptions.py +++ b/rtv/subscriptions.py @@ -17,6 +17,7 @@ class SubscriptionPage(BasePage): def __init__(self, stdscr, reddit): self.controller = SubscriptionController(self) self.loader = LoadScreen(stdscr) + self.selected_subreddit_data = None content = SubscriptionContent.get_list(reddit, self.loader) super(SubscriptionPage, self).__init__(stdscr, reddit, content) @@ -30,6 +31,9 @@ class SubscriptionPage(BasePage): cmd = self.stdscr.getch() self.controller.trigger(cmd) + def get_selected_subreddit_data(self): + return self.selected_subreddit_data + @SubscriptionController.register(curses.KEY_F5, 'r') def refresh_content(self): "Re-download all subscriptions and reset the page index" @@ -38,13 +42,11 @@ class SubscriptionPage(BasePage): self.nav = Navigator(self.content.get) @SubscriptionController.register(curses.KEY_ENTER, 10, curses.KEY_RIGHT) - def open_selected_subreddit(self): - "Open the selected subreddit" + def store_selected_subreddit(self): + "Store the selected subreddit and return to the subreddit page" - 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() + self.selected_subreddit_data = self.content.get(self.nav.absolute_index) + self.active = False @SubscriptionController.register(curses.KEY_LEFT, 's') def close_subscriptions(self):