User may have bought gift as a gold and not have gold themself. The
user receiving the gold will get a PM once the transaction is complete
and that message will let them know about the gold lounge.
The "explore-page" css class was removed at some point but it's needed for
correct placement of the "Explore" title (since this page doesn't have hot,
new, etc tabs.)
get_recommendations was recently changed to accept id36s instead of subreddit
objects for the omit list. This change updates the recommender api endpoint
to match. It also makes the VSRByNames() validator return an empty dict in
case of error so it's safe to call .values() on the result.
Note: Fixes the broken "more suggestions" link in multi recommendations.
I've received multiple requests from people to confirm why their site
isn't scraping properly despite being set up with embedly. The reason is
the scraper_q wasn't restarted recently and therefore it was still using
an old service list.
Since the service list is memoized, it doesn't really matter if we
"fetch" it on every iteration. This also allows the lookup to be moved
out of the higher layers of the queue which shouldn't have knowledge of
embedly down to the correct place.
Shows a mix of content from:
- subreddits recommended for the user (based on subscriptions and multis)
- rising threads
- items from discovery-focused subreddits
Listing items emphasize the subreddit name and have feedback controls.
The AccountSRPrefs class builds a user preferences model on-the-fly from
subscriptions, multireddits, and a record of recent user feedback.
The AccountSRFeedback column family stores a user's recent interactions with
the recommendation UI. For example, it records which srs the user dismissed
as uninteresting, and keeps track of which srs were recommended recently to
make sure we don't show the same ones too often.
Each type of feedback has a ttl after which it disappears from the db.
Consolidate duplicated logic and make methods more direct. There were
many monolithic methods that did many things and were called all over
the place when the desired action was just one piece of the method.