Merge branch 'mardiqt push origin masterwop-master'

This commit is contained in:
Michael Lazar
2016-07-20 21:36:00 -07:00
6 changed files with 3121 additions and 2 deletions

View File

@@ -41,6 +41,7 @@ In subreddit mode you can browse through the top submissions on either the front
:``o`` or ``ENTER``: Open the submission link with your web browser
:``/``: Open a prompt to switch subreddits
:``f``: Open a prompt to search the current subreddit
:``p``: Toggle between the front page and the last visited subreddit
The ``/`` prompt accepts subreddits in the following formats

View File

@@ -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
'p' : Toggle between the front page and last visited subreddit
[Submission Mode]
`h` or `LEFT` : Return to subreddit mode

View File

@@ -121,6 +121,7 @@ SUBREDDIT_POST = c
SUBREDDIT_OPEN = l, <KEY_RIGHT>
SUBREDDIT_OPEN_IN_BROWSER = o, <LF>, <KEY_ENTER>, <KEY_ENTER>
SUBREDDIT_OPEN_SUBSCRIPTIONS = s
SUBREDDIT_FRONTPAGE = p
; Subscription page
SUBSCRIPTION_SELECT = l, <LF>, <KEY_ENTER>, <KEY_RIGHT>

View File

@@ -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 = None
@SubredditController.register(Command('REFRESH'))
def refresh_content(self, order=None, name=None):
@@ -73,6 +74,23 @@ 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, remember it and head back to the front page.
If this was pressed on the front page, go back to the last subreddit.
"""
if not self.content.name == '/r/front':
target = '/r/front'
self._toggled_subreddit = self.content.name
else:
target = self._toggled_subreddit
# target still may be empty string if this command hasn't yet been used
if target is not None:
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"
@@ -220,4 +238,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)
self.term.add_line(win, text, attr=Color.RED)

File diff suppressed because it is too large Load Diff

View File

@@ -225,4 +225,14 @@ def test_subreddit_draw_header(subreddit_page, refresh_token, terminal):
subreddit_page.refresh_content(name='/r/me/new')
subreddit_page.draw()
text = 'My Submissions'.encode('utf-8')
terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text)
terminal.stdscr.subwin.addstr.assert_any_call(0, 0, text)
def test_subreddit_frontpage_toggle(subreddit_page, terminal):
with mock.patch.object(terminal, 'prompt_input'):
terminal.prompt_input.return_value = 'aww'
subreddit_page.controller.trigger('/')
assert subreddit_page.content.name == '/r/aww'
subreddit_page.controller.trigger('p')
assert subreddit_page.content.name == '/r/front'