Unify ModContribSR and MultiReddit interfaces and simplify downstream.

This commit is contained in:
Neil Williams
2012-03-27 13:12:11 -07:00
parent 3e40a58d42
commit e6b88800f1
4 changed files with 10 additions and 16 deletions

View File

@@ -398,11 +398,8 @@ class FrontController(RedditController):
if not c.user_is_loggedin:
return self.abort404()
if isinstance(c.site, ModSR) or isinstance(c.site, MultiReddit):
if isinstance(c.site, ModSR):
srs = Subreddit._byID(c.site.sr_ids(), return_dict=False)
else:
srs = Subreddit._byID(c.site.sr_ids, return_dict=False)
if isinstance(c.site, (MultiReddit, ModSR)):
srs = Subreddit._byID(c.site.sr_ids, return_dict=False)
# check that user is mod on all requested srs
if not Subreddit.user_mods_all(c.user, srs) and not c.user_is_admin:

View File

@@ -314,7 +314,7 @@ def get_spam_comments(sr):
def get_spam(sr):
if isinstance(sr, ModContribSR):
srs = Subreddit._byID(sr.sr_ids(), return_dict=False)
srs = Subreddit._byID(sr.sr_ids, return_dict=False)
results = [ get_spam_links(sr) for sr in srs ]
return merge_results(*results)
else:
@@ -337,7 +337,7 @@ def get_reported_comments(sr):
def get_reported(sr):
if isinstance(sr, ModContribSR):
srs = Subreddit._byID(sr.sr_ids(), return_dict=False)
srs = Subreddit._byID(sr.sr_ids, return_dict=False)
results = []
results.extend(get_reported_links(sr) for sr in srs)
results.extend(get_reported_comments(sr) for sr in srs)
@@ -389,7 +389,7 @@ def get_trials_links(sr):
def get_trials(sr):
if isinstance(sr, ModContribSR):
srs = Subreddit._byID(sr.sr_ids(), return_dict=False)
srs = Subreddit._byID(sr.sr_ids, return_dict=False)
return get_trials_links(srs)
else:
return get_trials_links(sr)
@@ -397,7 +397,7 @@ def get_trials(sr):
def get_modqueue(sr):
results = []
if isinstance(sr, ModContribSR):
srs = Subreddit._byID(sr.sr_ids(), return_dict=False)
srs = Subreddit._byID(sr.sr_ids, return_dict=False)
results.append(get_trials_links(srs))
for sr in srs:

View File

@@ -95,9 +95,8 @@ class IndextankQuery(object):
# q.append(self._req_fs(
# Subreddit.user_subreddits(c.user,over18=c.over18,
# ids=True, limit=None)))
elif isinstance(self.sr, MultiReddit):
q.append(self._req_fs(
self.sr.sr_ids))
elif isinstance(self.sr, (MultiReddit, ModContribSR)):
q.append(self._req_fs(self.sr.sr_ids))
elif isinstance(self.sr, DomainSR):
q.append('+site:%s' % (self.sr.domain))
elif self.sr == Friends and c.user_is_loggedin and c.user.friends:
@@ -110,9 +109,6 @@ class IndextankQuery(object):
q.append(self._req_fs(
friend_names, field='author'))
elif isinstance(self.sr, ModContribSR):
q.append(self._req_fs(
self.sr.sr_ids()))
elif not isinstance(self.sr, FakeSubreddit):
q.append(self._req_fs([self.sr._id]))

View File

@@ -926,6 +926,7 @@ class ModContribSR(_DefaultSR):
def path(self):
return '/r/' + self.real_path
@property
def sr_ids(self):
if c.user_is_loggedin:
return Subreddit.special_reddits(c.user, self.query_param)
@@ -933,7 +934,7 @@ class ModContribSR(_DefaultSR):
return []
def get_links(self, sort, time):
return self.get_links_sr_ids(self.sr_ids(), sort, time)
return self.get_links_sr_ids(self.sr_ids, sort, time)
class ModSR(ModContribSR):
name = "communities you moderate"