ListRedditsContent.from_user method replaced with from_func; updated tests accordingly
This commit is contained in:
@@ -388,7 +388,7 @@ class SubredditContent(Content):
|
||||
# Strip leading, trailing, and redundant backslashes
|
||||
name_list = [seg for seg in name.strip(' /').split('/') if seg]
|
||||
name_order = None
|
||||
if name_list[0] in ['r', 'u', 'user', 'domain'] and len(name_list) > 1:
|
||||
if len(name_list) > 1 and name_list[0] in ['r', 'u', 'user', 'domain']:
|
||||
listing, name_list = name_list[0], name_list[1:]
|
||||
if len(name_list) == 2:
|
||||
name, name_order = name_list
|
||||
@@ -540,8 +540,8 @@ class ListRedditsContent(Content):
|
||||
raise exceptions.ListRedditsError('No {}'.format(self.name))
|
||||
|
||||
@classmethod
|
||||
def from_user(cls, name, reddits, loader):
|
||||
reddits = (r for r in reddits)
|
||||
def from_func(cls, name, func, loader):
|
||||
reddits = (r for r in func())
|
||||
return cls(name, reddits, loader)
|
||||
|
||||
def get(self, index, n_cols=70):
|
||||
|
||||
@@ -14,12 +14,13 @@ class ListRedditsController(PageController):
|
||||
|
||||
class ListRedditsPage(Page):
|
||||
|
||||
def __init__(self, reddit, name, reddits, term, config, oauth):
|
||||
def __init__(self, reddit, name, func, term, config, oauth):
|
||||
super(ListRedditsPage, self).__init__(reddit, term, config, oauth)
|
||||
|
||||
self.controller = ListRedditsController(self, keymap=config.keymap)
|
||||
self.name = name
|
||||
self.content = ListRedditsContent.from_user(name, reddits, term.loader)
|
||||
self.func = func
|
||||
self.content = ListRedditsContent.from_func(name, func, term.loader)
|
||||
self.nav = Navigator(self.content.get)
|
||||
self.reddit_data = None
|
||||
|
||||
@@ -33,8 +34,8 @@ class ListRedditsPage(Page):
|
||||
return
|
||||
|
||||
with self.term.loader():
|
||||
self.content = ListRedditsContent.from_user(self.name, self.reddit,
|
||||
self.term.loader)
|
||||
self.content = ListRedditsContent.from_func(self.name,
|
||||
self.func, self.term.loader)
|
||||
if not self.term.loader.exception:
|
||||
self.nav = Navigator(self.content.get)
|
||||
|
||||
|
||||
@@ -156,10 +156,10 @@ class SubredditPage(Page):
|
||||
def open_subscriptions(self):
|
||||
"Open user subscriptions page"
|
||||
|
||||
func = lambda : self.reddit.get_my_subreddits(limit=None)
|
||||
with self.term.loader('Loading subscriptions'):
|
||||
page = ListRedditsPage(self.reddit, 'My Subscriptions',
|
||||
self.reddit.get_my_subreddits(limit=None), self.term,
|
||||
self.config, self.oauth)
|
||||
page = ListRedditsPage(self.reddit, 'My Subscriptions', func,
|
||||
self.term, self.config, self.oauth)
|
||||
if self.term.loader.exception:
|
||||
return
|
||||
|
||||
@@ -176,10 +176,10 @@ class SubredditPage(Page):
|
||||
def open_multireddit_subscriptions(self):
|
||||
"Open user multireddit subscriptions page"
|
||||
|
||||
func = lambda : self.reddit.get_my_multireddits()
|
||||
with self.term.loader('Loading multireddits'):
|
||||
page = ListRedditsPage(self.reddit,
|
||||
'My Multireddits', self.reddit.get_my_multireddits(),
|
||||
self.term, self.config, self.oauth)
|
||||
'My Multireddits', func, self.term, self.config, self.oauth)
|
||||
if self.term.loader.exception:
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user