No longer leave submission/subscription page when entering an invalid subreddit.
This commit is contained in:
@@ -5,7 +5,7 @@ import time
|
||||
import curses
|
||||
|
||||
from . import docs
|
||||
from .content import SubmissionContent
|
||||
from .content import SubmissionContent, SubredditContent
|
||||
from .page import Page, PageController, logged_in
|
||||
from .objects import Navigator, Color, Command
|
||||
from .exceptions import TemporaryFileError
|
||||
@@ -27,7 +27,7 @@ class SubmissionPage(Page):
|
||||
self.content = SubmissionContent(submission, term.loader)
|
||||
# Start at the submission post, which is indexed as -1
|
||||
self.nav = Navigator(self.content.get, page_index=-1)
|
||||
self.subreddit_name = None
|
||||
self.selected_subreddit = None
|
||||
|
||||
@SubmissionController.register(Command('SUBMISSION_TOGGLE_COMMENT'))
|
||||
def toggle_comment(self):
|
||||
@@ -74,8 +74,12 @@ class SubmissionPage(Page):
|
||||
|
||||
name = self.term.prompt_input('Enter page: /')
|
||||
if name is not None:
|
||||
self.subreddit_name = name
|
||||
self.active = False
|
||||
with self.term.loader('Loading page'):
|
||||
content = SubredditContent.from_name(
|
||||
self.reddit, name, self.term.loader)
|
||||
if not self.term.loader.exception:
|
||||
self.selected_subreddit = content
|
||||
self.active = False
|
||||
|
||||
@SubmissionController.register(Command('SUBMISSION_OPEN_IN_BROWSER'))
|
||||
def open_link(self):
|
||||
|
||||
@@ -30,7 +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
|
||||
self.toggled_subreddit = None
|
||||
|
||||
@SubredditController.register(Command('REFRESH'))
|
||||
def refresh_content(self, order=None, name=None):
|
||||
@@ -83,9 +83,9 @@ class SubredditPage(Page):
|
||||
|
||||
if self.content.name != '/r/front':
|
||||
target = '/r/front'
|
||||
self._toggled_subreddit = self.content.name
|
||||
self.toggled_subreddit = self.content.name
|
||||
else:
|
||||
target = self._toggled_subreddit
|
||||
target = self.toggled_subreddit
|
||||
|
||||
# target still may be empty string if this command hasn't yet been used
|
||||
if target is not None:
|
||||
@@ -111,9 +111,9 @@ class SubredditPage(Page):
|
||||
if data.get('url_type') == 'selfpost':
|
||||
self.config.history.add(data['url_full'])
|
||||
|
||||
if page.subreddit_name is not None:
|
||||
self.refresh_content(order='ignore',
|
||||
name=page.subreddit_name)
|
||||
if page.selected_subreddit is not None:
|
||||
self.content = page.selected_subreddit
|
||||
self.nav = Navigator(self.content.get)
|
||||
else:
|
||||
self.refresh_content()
|
||||
|
||||
@@ -173,9 +173,9 @@ class SubredditPage(Page):
|
||||
|
||||
page.loop()
|
||||
|
||||
if page.subreddit_name is not None:
|
||||
self.refresh_content(order='ignore',
|
||||
name=page.subreddit_name)
|
||||
if page.selected_subreddit is not None:
|
||||
self.content = page.selected_subreddit
|
||||
self.nav = Navigator(self.content.get)
|
||||
else:
|
||||
self.refresh_content()
|
||||
|
||||
@@ -194,9 +194,11 @@ class SubredditPage(Page):
|
||||
|
||||
# When the user has chosen a subreddit in the subscriptions list,
|
||||
# refresh content with the selected subreddit
|
||||
if page.subreddit_name is not None:
|
||||
self.refresh_content(order='ignore',
|
||||
name=page.subreddit_name)
|
||||
if page.selected_subreddit is not None:
|
||||
self.content = page.selected_subreddit
|
||||
self.nav = Navigator(self.content.get)
|
||||
else:
|
||||
self.refresh_content()
|
||||
|
||||
@SubredditController.register(Command('SUBREDDIT_OPEN_MULTIREDDITS'))
|
||||
@logged_in
|
||||
@@ -213,9 +215,11 @@ class SubredditPage(Page):
|
||||
|
||||
# When the user has chosen a subreddit in the subscriptions list,
|
||||
# refresh content with the selected subreddit
|
||||
if page.subreddit_name is not None:
|
||||
self.refresh_content(order='ignore',
|
||||
name=page.subreddit_name)
|
||||
if page.selected_subreddit is not None:
|
||||
self.content = page.selected_subreddit
|
||||
self.nav = Navigator(self.content.get)
|
||||
else:
|
||||
self.refresh_content()
|
||||
|
||||
def _draw_item(self, win, data, inverted):
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ from __future__ import unicode_literals
|
||||
import curses
|
||||
|
||||
from .page import Page, PageController
|
||||
from .content import SubscriptionContent
|
||||
from .content import SubscriptionContent, SubredditContent
|
||||
from .objects import Color, Navigator, Command
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ class SubscriptionPage(Page):
|
||||
reddit, term.loader, content_type)
|
||||
self.nav = Navigator(self.content.get)
|
||||
self.content_type = content_type
|
||||
self.subreddit_name = None
|
||||
self.selected_subreddit = None
|
||||
|
||||
@SubscriptionController.register(Command('REFRESH'))
|
||||
def refresh_content(self, order=None, name=None):
|
||||
@@ -45,15 +45,24 @@ class SubscriptionPage(Page):
|
||||
|
||||
name = self.term.prompt_input('Enter page: /')
|
||||
if name is not None:
|
||||
self.subreddit_name = name
|
||||
self.active = False
|
||||
with self.term.loader('Loading page'):
|
||||
content = SubredditContent.from_name(
|
||||
self.reddit, name, self.term.loader)
|
||||
if not self.term.loader.exception:
|
||||
self.selected_subreddit = content
|
||||
self.active = False
|
||||
|
||||
@SubscriptionController.register(Command('SUBSCRIPTION_SELECT'))
|
||||
def select_subreddit(self):
|
||||
"Store the selected subreddit and return to the subreddit page"
|
||||
|
||||
self.subreddit_name = self.content.get(self.nav.absolute_index)['name']
|
||||
self.active = False
|
||||
name = self.content.get(self.nav.absolute_index)['name']
|
||||
with self.term.loader('Loading page'):
|
||||
content = SubredditContent.from_name(
|
||||
self.reddit, name, self.term.loader)
|
||||
if not self.term.loader.exception:
|
||||
self.selected_subreddit = content
|
||||
self.active = False
|
||||
|
||||
@SubscriptionController.register(Command('SUBSCRIPTION_EXIT'))
|
||||
def close_subscriptions(self):
|
||||
|
||||
Reference in New Issue
Block a user