From e6b88800f13dcabd68293f4d6cc042c07d3f4c05 Mon Sep 17 00:00:00 2001 From: Neil Williams Date: Tue, 27 Mar 2012 13:12:11 -0700 Subject: [PATCH] Unify ModContribSR and MultiReddit interfaces and simplify downstream. --- r2/r2/controllers/front.py | 7 ++----- r2/r2/lib/db/queries.py | 8 ++++---- r2/r2/lib/indextank.py | 8 ++------ r2/r2/models/subreddit.py | 3 ++- 4 files changed, 10 insertions(+), 16 deletions(-) diff --git a/r2/r2/controllers/front.py b/r2/r2/controllers/front.py index e7f76efaa..101e98390 100644 --- a/r2/r2/controllers/front.py +++ b/r2/r2/controllers/front.py @@ -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: diff --git a/r2/r2/lib/db/queries.py b/r2/r2/lib/db/queries.py index 381876868..026ca9e94 100644 --- a/r2/r2/lib/db/queries.py +++ b/r2/r2/lib/db/queries.py @@ -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: diff --git a/r2/r2/lib/indextank.py b/r2/r2/lib/indextank.py index 8152c6081..ae8d7498c 100644 --- a/r2/r2/lib/indextank.py +++ b/r2/r2/lib/indextank.py @@ -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])) diff --git a/r2/r2/models/subreddit.py b/r2/r2/models/subreddit.py index 041450626..9f6432433 100644 --- a/r2/r2/models/subreddit.py +++ b/r2/r2/models/subreddit.py @@ -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"