When user edits a multi, a box below the edit control shows a list of
subreddits recommended based on the items already in the multi. A "more
suggestions" link pages through the list, showing a list of subreddit
discovery links after all suggestions have been dismissed.
This change allows you to pass a list of srid36s and get back recommendations
for all of them at once, which is useful for multireddit suggestions.
A function that accepted a single subreddit id as an argument and memoized the
results was removed and its functionality replaced by sgm caching, which sets
multiple items in memcache at once.
A source prefix is added to the row key so multiple sets of recs can be stored
in the same column family.
Adult items are filtered unless one of the original subreddits was over_18.
Recommendations for a set of subreddits are merged and sorted by the number of
items matched. (User feedback showed that people perceive recommendations as
incorrect if they don't match the "theme" of a large multi, and recs that
match several srs in the multi instead of just one are more likely to fit the
theme, so we show those first.)
This does several things to subreddit stylesheets:
- stores them on the thumbs buckets rather than the main static bucket.
(this was not desirable before on reddit.com due to CDN configuration)
- enforces a new restriction of custom (%%style%%) images only in
stylesheets to make secure urls easier to resolve. existing subreddits
are grandfathered in for now.
- writes, if possible as above, a second stylesheet that references
subreddit images over https.
At some point in the future, the thumbs buckets should be directly accessible
on HTTPS via the same URLs which would remove the need for the second
stylesheet to be created and uploaded. The custom image rules and other changes
would still be good.
Previously, unicode domain names were only checked for validity, and the
coversion was dropped. This can cause problems down the line where we expect
URL's to be ascii.
Previously, c.secure status was determined based on the domain used.
This allows for the status to vary independently of domain for greater
flexibility.
Note: it is critical that the load balancer strips any X-Forwarded-Proto
headers that may've been sent by the client.
These are media objects that can be embedded safely in an HTTPS page.
Only a handful of services support this through embedly right now, and
that list is hardcoded until embedly's service API is updated.