Merge remote-tracking branch 'upstream/master'

Refactoring
This commit is contained in:
David Foucher
2016-07-24 01:27:11 +02:00
76 changed files with 62359 additions and 13645 deletions

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):
@@ -55,7 +56,7 @@ class SubredditPage(Page):
name = name or self.content.name
query = self.term.prompt_input('Search {0}:'.format(name))
query = self.term.prompt_input('Search {0}: '.format(name))
if not query:
return
@@ -69,10 +70,27 @@ class SubredditPage(Page):
def prompt_subreddit(self):
"Open a prompt to navigate to a different subreddit"
name = self.term.prompt_input('Enter Subreddit: /r/')
name = self.term.prompt_input('Enter 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"
@@ -157,8 +175,27 @@ class SubredditPage(Page):
"Open user subscriptions page"
with self.term.loader('Loading subscriptions'):
page = SubscriptionPage(
self.reddit, self.term, self.config, self.oauth)
page = SubscriptionPage(self.reddit, self.term, self.config,
self.oauth, content_type='subreddit')
if self.term.loader.exception:
return
page.loop()
# When the user has chosen a subreddit in the subscriptions list,
# refresh content with the selected subreddit
if page.subreddit_data is not None:
self.refresh_content(order='ignore',
name=page.subreddit_data['name'])
@SubredditController.register(Command('SUBREDDIT_OPEN_MULTIREDDITS'))
@logged_in
def open_multireddit_subscriptions(self):
"Open user multireddit subscriptions page"
with self.term.loader('Loading multireddits'):
page = SubscriptionPage(self.reddit, self.term, self.config,
self.oauth, content_type='multireddit')
if self.term.loader.exception:
return