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