mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-05 03:00:15 -04:00
Some subreddits incorrectly filtered from search
Don't remove Subreddits whose creators deleted their accounts from the search results
This commit is contained in:
@@ -692,8 +692,9 @@ class FrontController(RedditController):
|
||||
"""Search reddits by title and description."""
|
||||
q = SubredditSearchQuery(query)
|
||||
|
||||
num, t, spane = self._search(q, num = num, reverse = reverse,
|
||||
after = after, count = count)
|
||||
num, t, spane = self._search(q, num=num, reverse=reverse,
|
||||
after=after, count=count,
|
||||
skip_deleted_authors=False)
|
||||
|
||||
res = SubredditsPage(content=spane,
|
||||
prev_search = query,
|
||||
@@ -770,14 +771,16 @@ class FrontController(RedditController):
|
||||
except SearchException + (socket.error,) as e:
|
||||
return self.search_fail(e)
|
||||
|
||||
def _search(self, query_obj, num, after, reverse, count=0):
|
||||
def _search(self, query_obj, num, after, reverse, count=0,
|
||||
skip_deleted_authors=True):
|
||||
"""Helper function for interfacing with search. Basically a
|
||||
thin wrapper for SearchBuilder."""
|
||||
|
||||
builder = SearchBuilder(query_obj,
|
||||
after = after, num = num, reverse = reverse,
|
||||
count = count,
|
||||
wrap = ListingController.builder_wrapper)
|
||||
wrap = ListingController.builder_wrapper,
|
||||
skip_deleted_authors=skip_deleted_authors)
|
||||
|
||||
listing = LinkListing(builder, show_nums=True)
|
||||
|
||||
|
||||
@@ -460,6 +460,10 @@ class IDBuilder(QueryBuilder):
|
||||
return done, new_items
|
||||
|
||||
class SearchBuilder(IDBuilder):
|
||||
def __init__(self, query, wrap=Wrapped, keep_fn=None, skip=False,
|
||||
skip_deleted_authors=True, **kw):
|
||||
IDBuilder.__init__(self, query, wrap, keep_fn, skip, **kw)
|
||||
self.skip_deleted_authors = skip_deleted_authors
|
||||
def init_query(self):
|
||||
self.skip = True
|
||||
|
||||
@@ -482,7 +486,8 @@ class SearchBuilder(IDBuilder):
|
||||
# TODO: Consider a flag to disable this (and see listingcontroller.py)
|
||||
if item._spam or item._deleted:
|
||||
return False
|
||||
elif getattr(item, "author", None) and item.author._deleted:
|
||||
elif (self.skip_deleted_authors and
|
||||
getattr(item, "author", None) and item.author._deleted):
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user