mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-28 08:17:58 -05:00
fix errors caused by loading reddit with no subscriptions
This commit is contained in:
@@ -32,6 +32,7 @@ from r2.lib.recommendation import get_recommended
|
||||
from r2.lib.db.thing import Query
|
||||
from r2.lib.strings import Score
|
||||
from r2.lib import organic
|
||||
from r2.lib.utils import iters
|
||||
|
||||
from pylons.i18n import _
|
||||
|
||||
@@ -108,7 +109,7 @@ class ListingController(RedditController):
|
||||
builder_cls = self.builder_cls
|
||||
elif isinstance(self.query_obj, Query):
|
||||
builder_cls = QueryBuilder
|
||||
elif isinstance(self.query_obj, list):
|
||||
elif isinstance(self.query_obj, iters):
|
||||
builder_cls = IDBuilder
|
||||
|
||||
b = builder_cls(self.query_obj,
|
||||
|
||||
@@ -398,24 +398,31 @@ class DefaultSR(FakeSubreddit):
|
||||
subreddits = Subreddit.user_subreddits(user)
|
||||
return (self.c.sr_id == subreddits,)
|
||||
|
||||
def get_links_srs(self, srs, sort, time):
|
||||
def get_links_sr_ids(self, sr_ids, sort, time):
|
||||
from r2.lib.db import queries
|
||||
from r2.models import Link
|
||||
|
||||
if not sr_ids:
|
||||
return []
|
||||
else:
|
||||
srs = Subreddit._byID(sr_ids, return_dict = False)
|
||||
|
||||
if g.use_query_cache:
|
||||
results = []
|
||||
for sr in srs:
|
||||
results.append(queries.get_links(sr, sort, time))
|
||||
return queries.merge_results(*results)
|
||||
else:
|
||||
q = Link._query(sort = queries.db_sort(sort))
|
||||
q = Link._query(Link.c.sr_id == sr_ids,
|
||||
sort = queries.db_sort(sort))
|
||||
if time != 'all':
|
||||
q._filter(queries.db_times[time])
|
||||
return q
|
||||
|
||||
def get_links(self, sort, time):
|
||||
user = c.user if c.user_is_loggedin else None
|
||||
srs = Subreddit._byID(Subreddit.user_subreddits(user), return_dict = False)
|
||||
return self.get_links_srs(srs, sort, time)
|
||||
sr_ids = Subreddit.user_subreddits(user)
|
||||
return self.get_links_sr_ids(sr_ids, sort, time)
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
@@ -450,8 +457,7 @@ class MaskedSR(DefaultSR):
|
||||
sr_ids = Subreddit.user_subreddits(user)
|
||||
sr_ids = [s for s in sr_ids if s not in self.hide_sr]
|
||||
sr_ids.extend(self.show_sr)
|
||||
srs = Subreddit._byID(sr_ids, return_dict = False)
|
||||
return self.get_links_srs(srs, sort, time)
|
||||
return self.get_links_sr_ids(sr_ids, sort, time)
|
||||
|
||||
|
||||
class SubSR(FakeSubreddit):
|
||||
|
||||
Reference in New Issue
Block a user