From 92809297030fd23f6f31d37736f64c6809e5fd2f Mon Sep 17 00:00:00 2001 From: mardiqwop Date: Tue, 5 Jul 2016 14:11:52 -0400 Subject: [PATCH] Added a new keybind (defaults to q) that toggles between the Frontpage and your most recently viewed subreddit. --- rtv/docs.py | 1 + rtv/rtv.cfg | 1 + rtv/subreddit.py | 31 ++++++++++++++++++++++++++++++- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/rtv/docs.py b/rtv/docs.py index c1542a8..7b15310 100644 --- a/rtv/docs.py +++ b/rtv/docs.py @@ -39,6 +39,7 @@ HELP = """ `l` or `RIGHT` : Enter the selected submission `/` : Open a prompt to switch subreddits `f` : Open a prompt to search the current subreddit + 'q' : Toggles between FrontPage and last visited subreddit [Submission Mode] `h` or `LEFT` : Return to subreddit mode diff --git a/rtv/rtv.cfg b/rtv/rtv.cfg index cb15877..2b2cded 100644 --- a/rtv/rtv.cfg +++ b/rtv/rtv.cfg @@ -121,6 +121,7 @@ SUBREDDIT_POST = c SUBREDDIT_OPEN = l, SUBREDDIT_OPEN_IN_BROWSER = o, , , SUBREDDIT_OPEN_SUBSCRIPTIONS = s +SUBREDDIT_FRONTPAGE = p ; Subscription page SUBSCRIPTION_SELECT = l, , , diff --git a/rtv/subreddit.py b/rtv/subreddit.py index b2c9e9d..c15fa62 100644 --- a/rtv/subreddit.py +++ b/rtv/subreddit.py @@ -30,6 +30,7 @@ class SubredditPage(Page): self.controller = SubredditController(self, keymap=config.keymap) self.content = SubredditContent.from_name(reddit, name, term.loader) self.nav = Navigator(self.content.get) + self._toggled_subreddit = '' @SubredditController.register(Command('REFRESH')) def refresh_content(self, order=None, name=None): @@ -73,6 +74,24 @@ class SubredditPage(Page): if name is not None: self.refresh_content(order='ignore', name=name) + @SubredditController.register(Command('SUBREDDIT_FRONTPAGE')) + def show_frontpage(self): + """ + If on a subreddit, remeber it and head back to the front page. + If this was pressed on the front page, go back to the last subreddit. + """ + + target ='' + if not self.on_frontpage(): + target = '/r/front' + self.set_last_subreddit() + else: + target = self.get_last_subreddit() + + # target still may be emptystring if this command hasn't yet been used + if not target == '': + self.refresh_content(order='ignore',name=target) + @SubredditController.register(Command('SUBREDDIT_OPEN')) def open_submission(self, url=None): "Select the current submission to view posts" @@ -170,6 +189,16 @@ class SubredditPage(Page): self.refresh_content(order='ignore', name=page.subreddit_data['name']) + def on_frontpage(self): + "Returns whether the current page is the front page" + return self.content.name == '/r/front' + + def set_last_subreddit(self): + self._toggled_subreddit = self.content.name + + def get_last_subreddit(self): + return self._toggled_subreddit + def _draw_item(self, win, data, inverted): n_rows, n_cols = win.getmaxyx() @@ -220,4 +249,4 @@ class SubredditPage(Page): self.term.add_line(win, text, attr=Color.YELLOW) if data['flair']: text = ' {flair}'.format(**data) - self.term.add_line(win, text, attr=Color.RED) \ No newline at end of file + self.term.add_line(win, text, attr=Color.RED)